Compare commits

...

794 Commits

Author SHA1 Message Date
Todd Baert 52f344fa01
chore: fix CODEOWNERS
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-08-18 11:34:22 -04:00
Todd Baert f9ce46f103
feat: multi-project support via selectors and flagSetId namespacing (#1702)
Sorry for how big this PR seems (a lot of the change lines are not
significant (DB schema or tests), so I've tried to highlight the
important parts. This is a substantial PR that builds on our recent
changes to use go-memdb for storage. It primarily supports 2 new crucial
features:

- support for duplicate flag keys from multiple sources (namespaced by
`flagSetId`) as described in [this
ADR](https://github.com/open-feature/flagd/blob/main/docs/architecture-decisions/duplicate-flag-keys.md)
- support for a robust query syntax in the "selector" fields and
headers, as proposed by @tangenti in [this
ADR](https://github.com/open-feature/flagd/blob/main/docs/architecture-decisions/decouple-flag-source-and-set.md)

Both of these were accomplished using the new go-memdb module. **The
built-in "watcher" functionality also allows us to _completely delete_
our "mux" layer, which was responsible for fanning out changes from
sync-sources to listeners**; this is something the go-memdb module
providers for free (the ability to watch a query for changes). Now, we
completely rely on this feature for all change notifications.
Additionally, unlike before, change notifications are now scoped to
particular _selectors_ (ie: if a client is only interested in changes
for flags from `flagSetId: x` or `source: y`, they will only get change
notifications pertaining to that selection. Currently, the only
supported query fields for the `selector` are `"source"` and
`"flagSetId"`, but this functionality can easily be extended. By
default, if no `selector` is specified, the previous key-overwrite by
source priority apples (this logic has also been simplified using the
new database). Most of the new functionality is tested
[here](https://github.com/open-feature/flagd/pull/1702/files#diff-0cdd4fe716f4b8a94466279fd1b11187fcf4d74e6434727c33d57ed78c89fe27R163-R478).

Selector in action for `Sync` API:


![demo](https://github.com/user-attachments/assets/9a4fd33e-80ef-4b5b-80d1-4fa3fc92b8e7)

Selector in action for `Evaluation` API:


![demo2](https://github.com/user-attachments/assets/abf49f9c-2247-4a03-9b8f-15b6f540aad1)

To test, run the new make target `make run-flagd-selector-demo`, then
use the OFREP or gRPC endpoints to experiment. This new functionality is
available on all APIs and endpoints. The command I ran in the gifs above
are:

streaming:
```shell
grpcurl -d '{"selector":"flagSetId=example"}' -import-path schemas/protobuf/flagd/sync/v1/ -proto sync.proto -plaintext localhost:8015 flagd.sync.v1.FlagSyncService/SyncFlags | jq
grpcurl -d '{"selector":"flagSetId=example,source=../config/samples/example_flags.flagd.json"}' -import-path schemas/protobuf/flagd/sync/v1/ -proto sync.proto -plaintext localhost:8015 flagd.sync.v1.FlagSyncService/SyncFlags | jq
grpcurl -d '{"selector":"flagSetId=other"}' -import-path schemas/protobuf/flagd/sync/v1/ -proto sync.proto -plaintext localhost:8015 flagd.sync.v1.FlagSyncService/SyncFlags | jq
```

single-evaluations:
```shell
curl -X POST  -d '{"context":{}}' 'http://localhost:8016/ofrep/v1/evaluate/flags' | jq
curl -X POST -H 'flagd-selector:flagSetId=other'  -d '{"context":{}}' 'http://localhost:8016/ofrep/v1/evaluate/flags' | jq
```

⚠️ There's no breaking changes here. Besides the new features,
there is one behavioral change - the top level "metadata" object
returned for bulk evaluations (and failed evaluations) was previously
very nonsensical in it's behavior (we basically just aggregated the
metadata from all sources, discarding duplicates, and sent it back. This
field was used by providers for telemetry purposes. Now, since flag
evaluations and subscripts are "query based" and can aggregate data from
multiple sources, we've opted to simply reflect the selector queries
contents here.

So if you used a selector like `"flagSetId=1234,source=../my/source"`,
the top-level metadata object in the response would be:

```
"metadata": {
  "flagSetId": 1234,
  "source": "../my/source"
}
```

This is useful for the provider's ability to report errors, etc in
telemetry.

Fixes: https://github.com/open-feature/flagd/issues/1675
Fixes: https://github.com/open-feature/flagd/issues/1695
Fixes: https://github.com/open-feature/flagd/issues/1611
Fixes: https://github.com/open-feature/flagd/issues/1700
Fixes: https://github.com/open-feature/flagd/issues/1610

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: chrfwow <christian.lutnik@dynatrace.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2025-08-13 16:03:07 -04:00
NeaguGeorgiana23 3228ad8951
chore!: removes the `fractionalEvaluation` operator since it has been replaced with `fractional`. (#1704)
## This PR
<!-- add the description of the PR here -->

- adds this new feature

### Related Issues
- removes the `fractionalEvaluation` operator since it has been replaced
with `fractional`.

Fixes #1677

---------

Signed-off-by: NeaguGeorgiana23 <115723925+NeaguGeorgiana23@users.noreply.github.com>
2025-08-06 17:50:43 -04:00
Todd Baert 5c5c1cfe84
chore(refactor): use memdb for flag storage (#1697)
This PR contains no behavioral changes, and no breaking changes.

It lays the groundwork for some of the upcoming improvements we want in
flagd, as specified in recent ADRs. It does this by re-implementing our
storage layer to use [go-memdb](https://github.com/hashicorp/go-memdb),
an open source in-memory database developed by Hashicorp and used in
[Consul](https://developer.hashicorp.com/consul) (as well as MANY other
projects).

### Why?

This will allow us to easily support:

- duplicate flag keys (namespaced by flagSetId), as mentioned in [this
ADR](https://github.com/open-feature/flagd/blob/main/docs/architecture-decisions/duplicate-flag-keys.md)
- robust flag selectors, as mentioned in [this
ADR](https://github.com/open-feature/flagd/pull/1644), by supporting
"watchers" which allow us to "listen" to change in flags returned by a
given query 🕺
- robust (and possibly, in the future, even customizable) indexing on
arbitrary attributes (to easily support fetching "all boolean flags", or
"flags with metadata = xyz", etc)
- cross-"table" transactions

I have already PoC'd that these are all practical.

### Changes in implementation

- the `store` package's `State` is no longer just a struct; it's a
object with methods wrapping the internal db
- the `store` package's `State` was renamed to `Store` and the file was
renamed from `flags.go` to `store.go`, since it's ceased to be a simple
stateful object, and for consistency
- a non-serialized (used only internally) `Key` field was added to the
flag type (for indexing)
- a new constructor for the `Store` was added which takes a logger and
returns an error, the old was deprecated to avoid breaking changes in
consumers (the Go flagd provider, mostly)

Note that the go-memdb dependency is MPL2, which is not allowed by the
CNCF, however, go-memdb is already used in CNCF projects and has a
[special
exception](347a55dc0a/license-exceptions/cncf-exceptions-2023-08-31.json (L7-L11)).

### Perfromance

There was no significant change in performance, see benchmark diff vs
main below:

<details>
  <summary>Benchmark diff vs main</summary>

```diff
-BenchmarkFractionalEvaluation/test_c@faas.com-16         	  559051	     13832 ns/op	    7229 B/op	     135 allocs/op
-BenchmarkFractionalEvaluation/test_d@faas.com-16         	  611665	     13106 ns/op	    7229 B/op	     135 allocs/op
-BenchmarkFractionalEvaluation/test_a@faas.com-16         	  383074	     13433 ns/op	    7229 B/op	     135 allocs/op
-BenchmarkFractionalEvaluation/test_b@faas.com-16         	  529185	     12190 ns/op	    7229 B/op	     135 allocs/op
-BenchmarkResolveBooleanValue/test_staticBoolFlag-16      	 3929409	      1712 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveBooleanValue/test_targetingBoolFlag-16   	  812671	     10276 ns/op	    6065 B/op	      87 allocs/op
-BenchmarkResolveBooleanValue/test_staticObjectFlag-16    	 4398327	      1700 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveBooleanValue/test_missingFlag-16         	 4541409	      1494 ns/op	     784 B/op	      12 allocs/op
-BenchmarkResolveBooleanValue/test_disabledFlag-16        	 2998599	      1815 ns/op	    1072 B/op	      13 allocs/op
-BenchmarkResolveStringValue/test_staticStringFlag-16     	 4378830	      1698 ns/op	    1040 B/op	      13 allocs/op
-BenchmarkResolveStringValue/test_targetingStringFlag-16  	  849668	      9165 ns/op	    6097 B/op	      89 allocs/op
-BenchmarkResolveStringValue/test_staticObjectFlag-16     	 4560192	      1363 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveStringValue/test_missingFlag-16          	 5283511	      1196 ns/op	     784 B/op	      12 allocs/op
-BenchmarkResolveStringValue/test_disabledFlag-16         	 4393116	      1446 ns/op	    1072 B/op	      13 allocs/op
-BenchmarkResolveFloatValue/test:_staticFloatFlag-16      	 4264772	      1501 ns/op	    1024 B/op	      13 allocs/op
-BenchmarkResolveFloatValue/test:_targetingFloatFlag-16   	  776436	      8191 ns/op	    6081 B/op	      89 allocs/op
-BenchmarkResolveFloatValue/test:_staticObjectFlag-16     	 4685841	      1285 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveFloatValue/test:_missingFlag-16          	 5001636	      1376 ns/op	     784 B/op	      12 allocs/op
-BenchmarkResolveFloatValue/test:_disabledFlag-16         	 3707120	      1897 ns/op	    1072 B/op	      13 allocs/op
-BenchmarkResolveIntValue/test_staticIntFlag-16           	 3770362	      1677 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveIntValue/test_targetingNumberFlag-16     	  739861	     11142 ns/op	    6065 B/op	      87 allocs/op
-BenchmarkResolveIntValue/test_staticObjectFlag-16        	 4221418	      1913 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveIntValue/test_missingFlag-16             	 4289516	      1488 ns/op	     768 B/op	      12 allocs/op
-BenchmarkResolveIntValue/test_disabledFlag-16            	 4027533	      1829 ns/op	    1072 B/op	      13 allocs/op
-BenchmarkResolveObjectValue/test_staticObjectFlag-16     	 1588855	      3880 ns/op	    2243 B/op	      37 allocs/op
-BenchmarkResolveObjectValue/test_targetingObjectFlag-16  	  562364	     11580 ns/op	    7283 B/op	     109 allocs/op
-BenchmarkResolveObjectValue/test_staticBoolFlag-16       	 5026976	      1791 ns/op	    1008 B/op	      11 allocs/op
-BenchmarkResolveObjectValue/test_missingFlag-16          	 4254043	      1553 ns/op	     784 B/op	      12 allocs/op
-BenchmarkResolveObjectValue/test_disabledFlag-16         	 3051976	      2250 ns/op	    1072 B/op	      13 allocs/op
+BenchmarkFractionalEvaluation/test_a@faas.com-16         	  478593	     14527 ns/op	    7467 B/op	     143 allocs/op
+BenchmarkFractionalEvaluation/test_b@faas.com-16         	  429560	     14728 ns/op	    7467 B/op	     143 allocs/op
+BenchmarkFractionalEvaluation/test_c@faas.com-16         	  574078	     14230 ns/op	    7467 B/op	     143 allocs/op
+BenchmarkFractionalEvaluation/test_d@faas.com-16         	  411690	     15296 ns/op	    7467 B/op	     143 allocs/op
+BenchmarkResolveBooleanValue/test_staticBoolFlag-16      	 4133443	      1973 ns/op	     960 B/op	      18 allocs/op
+BenchmarkResolveBooleanValue/test_targetingBoolFlag-16   	  822934	     10981 ns/op	    6033 B/op	      94 allocs/op
+BenchmarkResolveBooleanValue/test_staticObjectFlag-16    	 3955728	      1964 ns/op	     976 B/op	      18 allocs/op
+BenchmarkResolveBooleanValue/test_missingFlag-16         	 3068791	      2294 ns/op	    1064 B/op	      21 allocs/op
+BenchmarkResolveBooleanValue/test_disabledFlag-16        	 3500334	      2225 ns/op	    1024 B/op	      20 allocs/op
+BenchmarkResolveStringValue/test_staticStringFlag-16     	 3935048	      1781 ns/op	    1008 B/op	      20 allocs/op
+BenchmarkResolveStringValue/test_targetingStringFlag-16  	  770565	     10765 ns/op	    6065 B/op	      96 allocs/op
+BenchmarkResolveStringValue/test_staticObjectFlag-16     	 3896060	      2084 ns/op	     976 B/op	      18 allocs/op
+BenchmarkResolveStringValue/test_missingFlag-16          	 3103950	      2141 ns/op	    1064 B/op	      21 allocs/op
+BenchmarkResolveStringValue/test_disabledFlag-16         	 3717013	      2092 ns/op	    1024 B/op	      20 allocs/op
+BenchmarkResolveFloatValue/test:_staticFloatFlag-16      	 3971438	      2003 ns/op	     976 B/op	      20 allocs/op
+BenchmarkResolveFloatValue/test:_targetingFloatFlag-16   	  782996	     10153 ns/op	    6049 B/op	      96 allocs/op
+BenchmarkResolveFloatValue/test:_staticObjectFlag-16     	 3469644	      2115 ns/op	     976 B/op	      18 allocs/op
+BenchmarkResolveFloatValue/test:_missingFlag-16          	 3376167	      2157 ns/op	    1064 B/op	      21 allocs/op
+BenchmarkResolveFloatValue/test:_disabledFlag-16         	 3610095	      2032 ns/op	    1024 B/op	      20 allocs/op
+BenchmarkResolveIntValue/test_staticIntFlag-16           	 3883299	      1941 ns/op	     960 B/op	      18 allocs/op
+BenchmarkResolveIntValue/test_targetingNumberFlag-16     	  823038	     10725 ns/op	    6033 B/op	      94 allocs/op
+BenchmarkResolveIntValue/test_staticObjectFlag-16        	 3697454	      2028 ns/op	     976 B/op	      18 allocs/op
+BenchmarkResolveIntValue/test_missingFlag-16             	 3326895	      1986 ns/op	    1048 B/op	      21 allocs/op
+BenchmarkResolveIntValue/test_disabledFlag-16            	 3327046	      2142 ns/op	    1024 B/op	      20 allocs/op
+BenchmarkResolveObjectValue/test_staticObjectFlag-16     	 1534627	      4885 ns/op	    2211 B/op	      44 allocs/op
+BenchmarkResolveObjectValue/test_targetingObjectFlag-16  	  509614	     14640 ns/op	    7251 B/op	     116 allocs/op
+BenchmarkResolveObjectValue/test_staticBoolFlag-16       	 3871867	      1978 ns/op	     960 B/op	      18 allocs/op
+BenchmarkResolveObjectValue/test_missingFlag-16          	 3484065	      2080 ns/op	    1064 B/op	      21 allocs/op
+BenchmarkResolveObjectValue/test_disabledFlag-16         	 4013230	      2158 ns/op	    1024 B/op	      20 allocs/op
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/evaluator	233.286s
+ok  	github.com/open-feature/flagd/core/pkg/evaluator	261.212s
 ?   	github.com/open-feature/flagd/core/pkg/evaluator/mock	[no test files]
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/logger	0.003s
+ok  	github.com/open-feature/flagd/core/pkg/logger	0.002s
 ?   	github.com/open-feature/flagd/core/pkg/model	[no test files]
 ?   	github.com/open-feature/flagd/core/pkg/service	[no test files]
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/service/ofrep	0.003s
+ok  	github.com/open-feature/flagd/core/pkg/service/ofrep	0.002s
 PASS
 ok  	github.com/open-feature/flagd/core/pkg/store	0.002s
 ?   	github.com/open-feature/flagd/core/pkg/sync	[no test files]
@@ -51,9 +51,9 @@ PASS
 ok  	github.com/open-feature/flagd/core/pkg/sync/builder	0.020s
 ?   	github.com/open-feature/flagd/core/pkg/sync/builder/mock	[no test files]
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/sync/file	1.007s
+ok  	github.com/open-feature/flagd/core/pkg/sync/file	1.006s
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/sync/grpc	8.014s
+ok  	github.com/open-feature/flagd/core/pkg/sync/grpc	8.013s
 PASS
 ok  	github.com/open-feature/flagd/core/pkg/sync/grpc/credentials	0.004s
 ?   	github.com/open-feature/flagd/core/pkg/sync/grpc/credentials/mock	[no test files]
@@ -61,10 +61,10 @@ ok  	github.com/open-feature/flagd/core/pkg/sync/grpc/credentials	0.004s
 PASS
 ok  	github.com/open-feature/flagd/core/pkg/sync/grpc/nameresolvers	0.002s
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/sync/http	4.008s
+ok  	github.com/open-feature/flagd/core/pkg/sync/http	4.007s
 ?   	github.com/open-feature/flagd/core/pkg/sync/http/mock	[no test files]
 PASS
-ok  	github.com/open-feature/flagd/core/pkg/sync/kubernetes	0.015s
+ok  	github.com/open-feature/flagd/core/pkg/sync/kubernetes	0.016s
 ?   	github.com/open-feature/flagd/core/pkg/sync/testing	[no test files]
 PASS
 ok  	github.com/open-feature/flagd/core/pkg/telemetry	0.016s
```

</details>

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-30 09:08:47 -04:00
Todd Baert 2f49ea7ed7
Update decouple-flag-source-and-set.md
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-29 12:18:07 -04:00
Todd Baert 2d40e28b92
Update duplicate-flag-keys.md
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-29 12:16:03 -04:00
Hugo Huang 849ce39827
docs(ADR): decouple flag sources and flag sets (#1644)
The ADR proposes a different approach to solve the problems stated in
https://github.com/open-feature/flagd/pull/1634.

It's quite concise and simple at the point, assuming the reviewers
already have the context from the original discussions.

Will add more details after the initial feedback and inputs.

---------

Signed-off-by: Hugo Huang <lorqor@gmail.com>
2025-07-29 12:14:12 -04:00
github-actions[bot] 1ee636aa03
chore: release main (#1696)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.9</summary>

##
[0.12.9](https://github.com/open-feature/flagd/compare/flagd/v0.12.8...flagd/v0.12.9)
(2025-07-28)


###  New Features

* Add toggle for disabling getMetadata request
([#1693](https://github.com/open-feature/flagd/issues/1693))
([e8fd680](e8fd680860))
</details>

<details><summary>core: 0.12.1</summary>

##
[0.12.1](https://github.com/open-feature/flagd/compare/core/v0.12.0...core/v0.12.1)
(2025-07-28)


### 🧹 Chore

* add back file-delete test
([#1694](https://github.com/open-feature/flagd/issues/1694))
([750aa17](750aa176b5))
* fix benchmark
([#1698](https://github.com/open-feature/flagd/issues/1698))
([5e2d7d7](5e2d7d7176))
</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>
2025-07-28 16:00:14 -04:00
Todd Baert 5e2d7d7176
chore: fix benchmark (#1698)
This was out of date. I've updated it to use the correct format, and
update the asserts accordingly.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-28 14:30:13 -04:00
lea konvalinka e8fd680860
feat: Add toggle for disabling getMetadata request (#1693)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- adds a toggle `disable-sync-metadata` for the Sync Service to disable
or enable the deprecated `getMetadata` request

### Related Issues
[#1688 [FEATURE] Temporary Context Enrichment
toggle](https://github.com/open-feature/flagd/issues/1688)

---------

Signed-off-by: Konvalinka <lea.konvalinka@dynatrace.com>
2025-07-28 15:33:31 +02:00
Todd Baert 750aa176b5
chore: add back file-delete test (#1694)
Adds back a test that was inappropriately removed (as explained
[here](https://github.com/beeme1mr/flagd/pull/16/files#r2223712589)).

Also fixes some typos.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-24 07:21:36 -04:00
github-actions[bot] c0a2940aef
chore: release main (#1686)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.8</summary>

##
[0.12.8](https://github.com/open-feature/flagd/compare/flagd/v0.12.7...flagd/v0.12.8)
(2025-07-21)


### 🐛 Bug Fixes

* update to latest otel semconv
([#1668](https://github.com/open-feature/flagd/issues/1668))
([81855d7](81855d76f9))


### 🧹 Chore

* **deps:** update module github.com/open-feature/flagd/core to v0.11.8
([#1685](https://github.com/open-feature/flagd/issues/1685))
([c07ffba](c07ffba554))
</details>

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

##
[0.8.0](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.7.6...flagd-proxy/v0.8.0)
(2025-07-21)


### ⚠ BREAKING CHANGES

* remove sync.Type
([#1691](https://github.com/open-feature/flagd/issues/1691))

###  New Features

* remove sync.Type
([#1691](https://github.com/open-feature/flagd/issues/1691))
([ac647e0](ac647e0656))


### 🧹 Chore

* **deps:** update module github.com/open-feature/flagd/core to v0.11.8
([#1685](https://github.com/open-feature/flagd/issues/1685))
([c07ffba](c07ffba554))
</details>

<details><summary>core: 0.12.0</summary>

##
[0.12.0](https://github.com/open-feature/flagd/compare/core/v0.11.8...core/v0.12.0)
(2025-07-21)


### ⚠ BREAKING CHANGES

* remove sync.Type
([#1691](https://github.com/open-feature/flagd/issues/1691))

### 🐛 Bug Fixes

* update to latest otel semconv
([#1668](https://github.com/open-feature/flagd/issues/1668))
([81855d7](81855d76f9))


###  New Features

* Add support for HTTP eTag header and 304 no change response
([#1645](https://github.com/open-feature/flagd/issues/1645))
([ea3be4f](ea3be4f901))
* remove sync.Type
([#1691](https://github.com/open-feature/flagd/issues/1691))
([ac647e0](ac647e0656))
</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>
2025-07-23 16:39:41 -04:00
Zhiwei Liang ea3be4f901
feat: Add support for HTTP eTag header and 304 no change response (#1645)
## This PR
- adds the support for the `eTag` request header and `304 Not Modified`
response.

### Related Issues
Fixes #1558

### Notes
This proposal includes some significant behavior changes; therefore, any
feedback, opinions, or objections are welcome and appreciated.

### How to test
```bash
make build
cd bin && ./flagd start --port 8013 --uri https://raw.githubusercontent.com/open-feature/flagd/main/samples/example_flags.flagd.json --debug
```

More specific test cases to be added when we all agree on proceeding
with the implementation of the change in this PR.

---------

Signed-off-by: Zhiwei Liang <zhiwei.liang27@pm.me>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-21 08:30:22 -04:00
Todd Baert ac647e0656
feat!: remove sync.Type (#1691)
The PR removes the obsolete `sync.Type`. This was intended to be used to
support partial updates from sync sources, but it's never been used and
it's lagging behind on features and would not work fully if implemented
by a source (`metadata` is not properly implemented). Moreover, we're
not convinced the value is worth the complexity it adds.

Specifically:

- removes `sync.Type` and all references
- removes tests for `sync.Type` and updates assertions for unrelated
tests which previously asserted on `sync.Type` (now we use the
payload/source in assertions)
- (unrelated) updates `CONTRIBUTING.md` to include a bunch of helpful
manual testing steps

Note that this is a breaking change, but only for the `flagd/core`
library, NOT for flagd or any sync source itself in terms of their
behavior. Since there was no change in `flagd/`, this will not show up
in the CHANGELOG.

Resolves: https://github.com/open-feature/flagd/issues/1678

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-21 08:01:56 -04:00
Michael Beemer 81855d76f9
fix: update to latest otel semconv (#1668)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-07-17 12:36:02 -04:00
renovate[bot] c07ffba554
chore(deps): update module github.com/open-feature/flagd/core to v0.11.8 (#1685)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.11.6` -> `v0.11.8` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.6/v0.11.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 06:38:56 +00:00
github-actions[bot] 0f732e2217
chore: release main (#1684)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.7</summary>

##
[0.12.7](https://github.com/open-feature/flagd/compare/flagd/v0.12.6...flagd/v0.12.7)
(2025-07-15)


### 🧹 Chore

* **deps:** update module github.com/open-feature/flagd/core to v0.11.6
([#1683](https://github.com/open-feature/flagd/issues/1683))
([b6da282](b6da282f8a))
</details>

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

##
[0.7.6](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.7.5...flagd-proxy/v0.7.6)
(2025-07-15)


### 🧹 Chore

* **deps:** update module github.com/open-feature/flagd/core to v0.11.6
([#1683](https://github.com/open-feature/flagd/issues/1683))
([b6da282](b6da282f8a))
</details>

<details><summary>core: 0.11.8</summary>

##
[0.11.8](https://github.com/open-feature/flagd/compare/core/v0.11.7...core/v0.11.8)
(2025-07-15)


### 🧹 Chore

* **deps:** update github.com/open-feature/flagd-schemas digest to
08b4c52 ([#1682](https://github.com/open-feature/flagd/issues/1682))
([68d04e2](68d04e21e6))
</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>
2025-07-15 14:55:40 -04:00
renovate[bot] b6da282f8a
chore(deps): update module github.com/open-feature/flagd/core to v0.11.6 (#1683)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.11.5` -> `v0.11.6` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.5/v0.11.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 14:50:43 -04:00
renovate[bot] 68d04e21e6
chore(deps): update github.com/open-feature/flagd-schemas digest to 08b4c52 (#1682)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd-schemas](https://redirect.github.com/open-feature/flagd-schemas)
| require | digest | `9b0ee43` -> `08b4c52` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4yMy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMjMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 14:40:45 -04:00
github-actions[bot] 4a822fc83a
chore: release main (#1681)
🤖 I have created a release *beep* *boop*
---


<details><summary>core: 0.11.7</summary>

##
[0.11.7](https://github.com/open-feature/flagd/compare/core/v0.11.6...core/v0.11.7)
(2025-07-15)


### 🐛 Bug Fixes

* general err if targeting variant not in variants
([#1680](https://github.com/open-feature/flagd/issues/1680))
([6cabfc8](6cabfc8ff3))
</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>
2025-07-15 14:32:13 -04:00
Todd Baert 6cabfc8ff3
fix: general err if targeting variant not in variants (#1680)
This makes the RPC mode consistent with our in-process evaluations when
a variant is returned from targeting which is not in the variants list.

Relates to
758fbd5b84

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-15 14:19:15 -04:00
github-actions[bot] 961f9a6e13
chore: release main (#1661)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.6</summary>

##
[0.12.6](https://github.com/open-feature/flagd/compare/flagd/v0.12.5...flagd/v0.12.6)
(2025-07-10)


### 🐛 Bug Fixes

* **security:** update module github.com/go-viper/mapstructure/v2 to
v2.3.0 [security]
([#1667](https://github.com/open-feature/flagd/issues/1667))
([caa0ed0](caa0ed04eb))


###  New Features

* add sync_context to SyncFlags
([#1642](https://github.com/open-feature/flagd/issues/1642))
([07a45d9](07a45d9b22))
</details>

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

##
[0.7.5](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.7.4...flagd-proxy/v0.7.5)
(2025-07-10)


### 🐛 Bug Fixes

* **security:** update module github.com/go-viper/mapstructure/v2 to
v2.3.0 [security]
([#1667](https://github.com/open-feature/flagd/issues/1667))
([caa0ed0](caa0ed04eb))


###  New Features

* add sync_context to SyncFlags
([#1642](https://github.com/open-feature/flagd/issues/1642))
([07a45d9](07a45d9b22))
</details>

<details><summary>core: 0.11.6</summary>

##
[0.11.6](https://github.com/open-feature/flagd/compare/core/v0.11.5...core/v0.11.6)
(2025-07-10)


###  New Features

* add sync_context to SyncFlags
([#1642](https://github.com/open-feature/flagd/issues/1642))
([07a45d9](07a45d9b22))
* allowing null/missing defaultValue
([#1659](https://github.com/open-feature/flagd/issues/1659))
([3f6b78c](3f6b78c8cc))
</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>
2025-07-14 08:03:09 -04:00
Todd Baert 2f330af516
chore: rename rejected ADR
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-10 14:27:12 -04:00
Dave Josephsen b604574adf
docs: first draft multi-sync-sources ADR (#1636)
Intent of this PR is to add the first draft of the multi-synch-sources
ADR, this is a docs-only change

---------

Signed-off-by: Dave Josephsen <dave.josephsen@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-09 16:12:03 -04:00
Todd Baert b6384416e8
docs(ADR): propose support for flag set selection (#1634)
The goal of this decision document is to establish flag sets as a first
class concept in `flagd`, and support the dynamic
addition/update/removal of flag sets at runtime.

See document for all justifications and background.

@dominikhaska @tangenti @cupofcat 

Alternative proposal here:
https://github.com/open-feature/flagd/pull/1644#discussion_r2149723952

---------

Signed-off-by: Alexandra Oberaigner <alexandra.oberaigner@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Alexandra Oberaigner <alexandra.oberaigner@dynatrace.com>
Co-authored-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-07-09 15:46:04 -04:00
Rahul Baradol 3f6b78c8cc
feat: allowing null/missing defaultValue (#1659)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
- adds support for null/missing default values 

### Related Issues
Fixes #1647 

### Notes
Points to be noted...
- If there is no `defaultValue` and no targetting rules, then
`FlagNotFound` is returned
- If targetting doesn't resolve a variant, and there is no
`defaultValue`, then `FlagNotFound` is returned

---------

Signed-off-by: Rahul Baradol <rahul.baradol.14@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-09 15:25:30 -04:00
Hugo Huang 797b48294b
docs(ADR): support flags with duplicate keys. (#1660)
This is proposal for support flags with duplicate keys, as a follow up
of the discussion on #1634 and #1644.

The selector semantics change proposed in #1644 will be addressed in a
separate ADR.

---------

Signed-off-by: Hugo Huang <lorqor@gmail.com>
2025-07-08 08:35:54 -04:00
renovate[bot] caa0ed04eb
fix(security): update module github.com/go-viper/mapstructure/v2 to v2.3.0 [security] (#1667)
This PR contains the following updates:

| Package | Change | Age | Confidence |
|---|---|---|---|
|
[github.com/go-viper/mapstructure/v2](https://redirect.github.com/go-viper/mapstructure)
| `v2.2.1` -> `v2.3.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgo-viper%2fmapstructure%2fv2/v2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgo-viper%2fmapstructure%2fv2/v2.2.1/v2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

### GitHub Vulnerability Alerts

####
[GHSA-fv92-fjc5-jj9h](https://redirect.github.com/go-viper/mapstructure/security/advisories/GHSA-fv92-fjc5-jj9h)

### Summary

Use of this library in a security-critical context may result in leaking
sensitive information, if used to process sensitive fields.

### Details

OpenBao (and presumably HashiCorp Vault) have surfaced error messages
from `mapstructure` as follows:


98c3a59c04/sdk/framework/field_data.go (L43-L50)

```go
			_, _, err := d.getPrimitive(field, schema)
			if err != nil {
				return fmt.Errorf("error converting input for field %q: %w", field, err)
			}
```

where this calls `mapstructure.WeakDecode(...)`:
98c3a59c04/sdk/framework/field_data.go (L181-L193)

```go

func (d *FieldData) getPrimitive(k string, schema *FieldSchema) (interface{}, bool, error) {
	raw, ok := d.Raw[k]
	if !ok {
		return nil, false, nil
	}

	switch t := schema.Type; t {
	case TypeBool:
		var result bool
		if err := mapstructure.WeakDecode(raw, &result); err != nil {
			return nil, false, err
		}
		return result, true, nil
```

Notably, `WeakDecode(...)` eventually calls one of the decode helpers,
which surfaces the original value:


1a66224d5e/mapstructure.go (L679-L686)


1a66224d5e/mapstructure.go (L726-L730)


1a66224d5e/mapstructure.go (L783-L787)

& more.

### PoC

To reproduce with OpenBao:

```
$ podman run -p 8300:8300 openbao/openbao:latest server -dev -dev-root-token-id=root -dev-listen-address=0.0.0.0:8300
```

and in a new tab:

```
$ BAO_TOKEN=root BAO_ADDR=http://localhost:8300 bao auth enable userpass
Success! Enabled userpass auth method at: userpass/
$ curl -X PUT -H "X-Vault-Request: true" -H "X-Vault-Token: root" -d '{"password":{"asdf":"my-sensitive-value"}}' "http://localhost:8300/v1/auth/userpass/users/adsf"
{"errors":["error converting input for field \"password\": '' expected type 'string', got unconvertible type 'map[string]interface {}', value: 'map[asdf:my-sensitive-value]'"]}
```

### Impact

This is an information disclosure bug with little mitigation. See
https://discuss.hashicorp.com/t/hcsec-2025-09-vault-may-expose-sensitive-information-in-error-logs-when-processing-malformed-data-with-the-kv-v2-plugin/74717
for a previous version. That version was fixed, but this is in the
second part of that error message (starting at `'' expected a map, got
'string'` -- when the field type is `string` and a `map` is provided, we
see the above information leak -- the previous example had a `map` type
field with a `string` value provided).

This was rated 4.5 Medium by HashiCorp in the past iteration.

---

### Release Notes

<details>
<summary>go-viper/mapstructure
(github.com/go-viper/mapstructure/v2)</summary>

###
[`v2.3.0`](https://redirect.github.com/go-viper/mapstructure/releases/tag/v2.3.0)

[Compare
Source](https://redirect.github.com/go-viper/mapstructure/compare/v2.2.1...v2.3.0)

#### What's Changed

- build(deps): bump actions/checkout from 4.1.7 to 4.2.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/46](https://redirect.github.com/go-viper/mapstructure/pull/46)
- build(deps): bump golangci/golangci-lint-action from 6.1.0 to 6.1.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/47](https://redirect.github.com/go-viper/mapstructure/pull/47)
- \[enhancement] Add check for `reflect.Value` in
`ComposeDecodeHookFunc` by
[@&#8203;mahadzaryab1](https://redirect.github.com/mahadzaryab1) in
[https://github.com/go-viper/mapstructure/pull/52](https://redirect.github.com/go-viper/mapstructure/pull/52)
- build(deps): bump actions/setup-go from 5.0.2 to 5.1.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/51](https://redirect.github.com/go-viper/mapstructure/pull/51)
- build(deps): bump actions/checkout from 4.2.0 to 4.2.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/50](https://redirect.github.com/go-viper/mapstructure/pull/50)
- build(deps): bump actions/setup-go from 5.1.0 to 5.2.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/55](https://redirect.github.com/go-viper/mapstructure/pull/55)
- build(deps): bump actions/setup-go from 5.2.0 to 5.3.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/58](https://redirect.github.com/go-viper/mapstructure/pull/58)
- ci: add Go 1.24 to the test matrix by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/go-viper/mapstructure/pull/74](https://redirect.github.com/go-viper/mapstructure/pull/74)
- build(deps): bump golangci/golangci-lint-action from 6.1.1 to 6.5.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/72](https://redirect.github.com/go-viper/mapstructure/pull/72)
- build(deps): bump golangci/golangci-lint-action from 6.5.0 to 6.5.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/76](https://redirect.github.com/go-viper/mapstructure/pull/76)
- build(deps): bump actions/setup-go from 5.3.0 to 5.4.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/78](https://redirect.github.com/go-viper/mapstructure/pull/78)
- feat: add decode hook for netip.Prefix by
[@&#8203;tklauser](https://redirect.github.com/tklauser) in
[https://github.com/go-viper/mapstructure/pull/85](https://redirect.github.com/go-viper/mapstructure/pull/85)
- Updates by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/go-viper/mapstructure/pull/86](https://redirect.github.com/go-viper/mapstructure/pull/86)
- build(deps): bump github/codeql-action from 2.13.4 to 3.28.15 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/87](https://redirect.github.com/go-viper/mapstructure/pull/87)
- build(deps): bump actions/setup-go from 5.4.0 to 5.5.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/93](https://redirect.github.com/go-viper/mapstructure/pull/93)
- build(deps): bump github/codeql-action from 3.28.15 to 3.28.17 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/92](https://redirect.github.com/go-viper/mapstructure/pull/92)
- build(deps): bump github/codeql-action from 3.28.17 to 3.28.19 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/97](https://redirect.github.com/go-viper/mapstructure/pull/97)
- build(deps): bump ossf/scorecard-action from 2.4.1 to 2.4.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/96](https://redirect.github.com/go-viper/mapstructure/pull/96)
- Update README.md by
[@&#8203;peczenyj](https://redirect.github.com/peczenyj) in
[https://github.com/go-viper/mapstructure/pull/90](https://redirect.github.com/go-viper/mapstructure/pull/90)
- Add omitzero tag. by
[@&#8203;Crystalix007](https://redirect.github.com/Crystalix007) in
[https://github.com/go-viper/mapstructure/pull/98](https://redirect.github.com/go-viper/mapstructure/pull/98)
- Use error structs instead of duplicated strings by
[@&#8203;m1k1o](https://redirect.github.com/m1k1o) in
[https://github.com/go-viper/mapstructure/pull/102](https://redirect.github.com/go-viper/mapstructure/pull/102)
- build(deps): bump github/codeql-action from 3.28.19 to 3.29.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/go-viper/mapstructure/pull/101](https://redirect.github.com/go-viper/mapstructure/pull/101)
- feat: add common error interface by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/go-viper/mapstructure/pull/105](https://redirect.github.com/go-viper/mapstructure/pull/105)
- update linter by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/go-viper/mapstructure/pull/106](https://redirect.github.com/go-viper/mapstructure/pull/106)
- Feature allow unset pointer by
[@&#8203;rostislaved](https://redirect.github.com/rostislaved) in
[https://github.com/go-viper/mapstructure/pull/80](https://redirect.github.com/go-viper/mapstructure/pull/80)

#### New Contributors

- [@&#8203;tklauser](https://redirect.github.com/tklauser) made their
first contribution in
[https://github.com/go-viper/mapstructure/pull/85](https://redirect.github.com/go-viper/mapstructure/pull/85)
- [@&#8203;peczenyj](https://redirect.github.com/peczenyj) made their
first contribution in
[https://github.com/go-viper/mapstructure/pull/90](https://redirect.github.com/go-viper/mapstructure/pull/90)
- [@&#8203;Crystalix007](https://redirect.github.com/Crystalix007) made
their first contribution in
[https://github.com/go-viper/mapstructure/pull/98](https://redirect.github.com/go-viper/mapstructure/pull/98)
- [@&#8203;rostislaved](https://redirect.github.com/rostislaved) made
their first contribution in
[https://github.com/go-viper/mapstructure/pull/80](https://redirect.github.com/go-viper/mapstructure/pull/80)

**Full Changelog**:
https://github.com/go-viper/mapstructure/compare/v2.2.1...v2.3.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMTcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-05 02:51:18 +00:00
renovate[bot] 76ac517446
fix(security): update vulnerable-dependencies (#1664)
This PR contains the following updates:

| Package | Change | Age | Confidence | Type | Update |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.18.1-20250127221518-be6d1143b690.1` ->
`v1.18.1-20250529171031-ebdc14163473.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.18.1-20250529171031-ebdc14163473.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.18.1-20250127221518-be6d1143b690.1/v1.18.1-20250529171031-ebdc14163473.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.5.1-20250127221518-be6d1143b690.2` ->
`v1.5.1-20250529171031-ebdc14163473.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20250529171031-ebdc14163473.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20250127221518-be6d1143b690.2/v1.5.1-20250529171031-ebdc14163473.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.36.5-20250127221518-be6d1143b690.1` ->
`v1.36.6-20250529171031-ebdc14163473.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.6-20250529171031-ebdc14163473.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.5-20250127221518-be6d1143b690.1/v1.36.6-20250529171031-ebdc14163473.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/diegoholiveira/jsonlogic/v3](https://redirect.github.com/diegoholiveira/jsonlogic)
| `v3.7.4` -> `v3.8.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.8.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.4/v3.8.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/fsnotify/fsnotify](https://redirect.github.com/fsnotify/fsnotify)
| `v1.8.0` -> `v1.9.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ffsnotify%2ffsnotify/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ffsnotify%2ffsnotify/v1.8.0/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.11.2` -> `v0.11.5` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.2/v0.11.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/open-feature/open-feature-operator/apis](https://redirect.github.com/open-feature/open-feature-operator)
| `v0.2.44` -> `v0.2.45` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.44/v0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.21.1` -> `v1.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.21.1/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [github.com/spf13/viper](https://redirect.github.com/spf13/viper) |
`v1.19.0` -> `v1.20.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fspf13%2fviper/v1.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fspf13%2fviper/v1.19.0/v1.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | `1.24.2` -> `1.24.4`
|
[![age](https://developer.mend.io/api/mc/badges/age/golang-version/go/1.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/golang-version/go/1.24.2/1.24.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| toolchain | patch |
|
[go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp](https://redirect.github.com/open-telemetry/opentelemetry-go-contrib)
| `v0.60.0` -> `v0.62.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcontrib%2finstrumentation%2fnet%2fhttp%2fotelhttp/v0.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcontrib%2finstrumentation%2fnet%2fhttp%2fotelhttp/v0.60.0/v0.62.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.35.0` -> `v1.37.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.35.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.35.0` -> `v1.37.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.35.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.35.0` -> `v1.37.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.35.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.35.0` -> `v1.37.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.35.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel/exporters/prometheus](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v0.57.0` -> `v0.59.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.59.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.57.0/v0.59.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.35.0` -> `v1.37.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.35.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.35.0` -> `v1.37.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.35.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel/sdk/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.35.0` -> `v1.37.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.35.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[go.opentelemetry.io/otel/trace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.35.0` -> `v1.37.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.35.0/v1.37.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [go.uber.org/mock](https://redirect.github.com/uber/mock) | `v0.5.0`
-> `v0.5.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.uber.org%2fmock/v0.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.uber.org%2fmock/v0.5.0/v0.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | patch |
| [gocloud.dev](https://redirect.github.com/google/go-cloud) | `v0.40.0`
-> `v0.42.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/gocloud.dev/v0.42.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/gocloud.dev/v0.40.0/v0.42.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| golang.org/x/crypto | `v0.33.0` -> `v0.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.33.0/v0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| indirect | minor |
| golang.org/x/crypto | `v0.33.0` -> `v0.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.33.0/v0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| golang.org/x/mod | `v0.23.0` -> `v0.25.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.23.0/v0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| golang.org/x/net | `v0.35.0` -> `v0.38.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.35.0/v0.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| golang.org/x/net | `v0.35.0` -> `v0.38.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.35.0/v0.38.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| indirect | minor |
| golang.org/x/sync | `v0.11.0` -> `v0.15.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsync/v0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsync/v0.11.0/v0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.71.0` -> `v1.73.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.73.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.71.0/v1.73.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
|
[k8s.io/apimachinery](https://redirect.github.com/kubernetes/apimachinery)
| `v0.31.4` -> `v0.33.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.33.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.31.4/v0.33.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |
| [k8s.io/client-go](https://redirect.github.com/kubernetes/client-go) |
`v0.31.4` -> `v0.33.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.33.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.31.4/v0.33.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
| require | minor |

### GitHub Vulnerability Alerts

#### [CVE-2025-22869](https://nvd.nist.gov/vuln/detail/CVE-2025-22869)

SSH servers which implement file transfer protocols are vulnerable to a
denial of service attack from clients which complete the key exchange
slowly, or not at all, causing pending content to be read into memory,
but never transmitted.

#### [CVE-2025-22870](https://nvd.nist.gov/vuln/detail/CVE-2025-22870)

Matching of hosts against proxy patterns can improperly treat an IPv6
zone ID as a hostname component. For example, when the NO_PROXY
environment variable is set to "*.example.com", a request to
"[::1%25.example.com]:80` will incorrectly match and not be proxied.

#### [CVE-2025-22872](https://nvd.nist.gov/vuln/detail/CVE-2025-22872)

The tokenizer incorrectly interprets tags with unquoted attribute values
that end with a solidus character (/) as self-closing. When directly
using Tokenizer, this can result in such tags incorrectly being marked
as self-closing, and when using the Parse functions, this can result in
content following such tags as being placed in the wrong scope during
DOM construction, but only when tags are in foreign content (e.g.
<math>, <svg>, etc contexts).

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.8.4`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.8.4)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.8.3...v3.8.4)

#### What's Changed

- operation.go: guard global mem from concurent writes on startup and
config by [@&#8203;Moisi](https://redirect.github.com/Moisi) in
[https://github.com/diegoholiveira/jsonlogic/pull/124](https://redirect.github.com/diegoholiveira/jsonlogic/pull/124)

#### New Contributors

- [@&#8203;Moisi](https://redirect.github.com/Moisi) made their first
contribution in
[https://github.com/diegoholiveira/jsonlogic/pull/124](https://redirect.github.com/diegoholiveira/jsonlogic/pull/124)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.8.3...v3.8.4

###
[`v3.8.3`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.8.3)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.8.2...v3.8.3)

#### What's Changed

- fix(122): Negating an empty slice should return true by
[@&#8203;juannorris](https://redirect.github.com/juannorris) in
[https://github.com/diegoholiveira/jsonlogic/pull/123](https://redirect.github.com/diegoholiveira/jsonlogic/pull/123)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.8.2...v3.8.3

###
[`v3.8.2`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.8.2)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.8.1...v3.8.2)

#### What's Changed

- fix: allow 'map primitives' in ValidateJsonLogic by
[@&#8203;juannorris](https://redirect.github.com/juannorris) in
[https://github.com/diegoholiveira/jsonlogic/pull/121](https://redirect.github.com/diegoholiveira/jsonlogic/pull/121)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.8.1...v3.8.2

###
[`v3.8.1`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.8.1)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.8.0...v3.8.1)

#### What's Changed

- Enhancement proposal for test names in TestRulesFromJsonLogic test
suite by [@&#8203;juannorris](https://redirect.github.com/juannorris) in
[https://github.com/diegoholiveira/jsonlogic/pull/116](https://redirect.github.com/diegoholiveira/jsonlogic/pull/116)
- disable setup-go dependency cache by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/117](https://redirect.github.com/diegoholiveira/jsonlogic/pull/117)
- Make IF operator behave lazily (like AND and OR) by
[@&#8203;juannorris](https://redirect.github.com/juannorris) in
[https://github.com/diegoholiveira/jsonlogic/pull/118](https://redirect.github.com/diegoholiveira/jsonlogic/pull/118)
- Remove some unused code by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/119](https://redirect.github.com/diegoholiveira/jsonlogic/pull/119)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.8.0...v3.8.1

###
[`v3.8.0`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.8.0)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.7.5...v3.8.0)

#### What's Changed

##### Performance Enhancements

- Reduced memory usage by ~2% across all operations
- Decreased allocation count by ~5% through better memory pre-allocation
- Improved execution time by ~2.5% on average
- Most significant speedups in equality operations (+10%) and complex
condition evaluation (+8%)

To better understand this numbers, I published the benchmark suite in
https://github.com/diegoholiveira/jsonlogic/tree/main/benchmark

##### Code Improvements

- Renamed 'arrays.go' to 'lists.go' for better semantic clarity
- Added pre-allocation of slices with appropriate capacity for improved
performance
- Optimized common operations with early returns for empty or
single-element arrays
- Enhanced memory efficiency in list operations (filter, map, merge)
- Improved type handling and nil checks in equality operations
- Added optimized paths for sum and concatenation operations

This release focuses on performance optimization and code quality
improvements, making the library more efficient while maintaining full
compatibility with the JSONLogic specification.

###
[`v3.7.5`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.7.5)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.7.4...v3.7.5)

#### What's Changed

- create the javascript package to encapsulate specific JS behavior by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/106](https://redirect.github.com/diegoholiveira/jsonlogic/pull/106)
- create the `typing` package with types conversion helpers by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/107](https://redirect.github.com/diegoholiveira/jsonlogic/pull/107)
- Improve go docs by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/108](https://redirect.github.com/diegoholiveira/jsonlogic/pull/108)
- fix: ensure default values are used only when required by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/111](https://redirect.github.com/diegoholiveira/jsonlogic/pull/111)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.7.4...v3.7.5

</details>

<details>
<summary>fsnotify/fsnotify (github.com/fsnotify/fsnotify)</summary>

###
[`v1.9.0`](https://redirect.github.com/fsnotify/fsnotify/releases/tag/v1.9.0)

[Compare
Source](https://redirect.github.com/fsnotify/fsnotify/compare/v1.8.0...v1.9.0)

##### Changes and fixes

- all: make BufferedWatcher buffered again ([#&#8203;657])

- inotify: fix race when adding/removing watches while a watched path is
being deleted ([#&#8203;678], [#&#8203;686])

- inotify: don't send empty event if a watched path is unmounted
([#&#8203;655])

- inotify: don't register duplicate watches when watching both a symlink
and its target; previously that would get "half-added" and removing the
second would panic ([#&#8203;679])

- kqueue: fix watching relative symlinks ([#&#8203;681])

- kqueue: correctly mark pre-existing entries when watching a link to a
dir on kqueue ([#&#8203;682])

- illumos: don't send error if changed file is deleted while processing
the event ([#&#8203;678])

[#&#8203;657]: https://redirect.github.com/fsnotify/fsnotify/pull/657

[#&#8203;678]: https://redirect.github.com/fsnotify/fsnotify/pull/678

[#&#8203;686]: https://redirect.github.com/fsnotify/fsnotify/pull/686

[#&#8203;655]: https://redirect.github.com/fsnotify/fsnotify/pull/655

[#&#8203;681]: https://redirect.github.com/fsnotify/fsnotify/pull/681

[#&#8203;679]: https://redirect.github.com/fsnotify/fsnotify/pull/679

[#&#8203;682]: https://redirect.github.com/fsnotify/fsnotify/pull/682

</details>

<details>
<summary>prometheus/client_golang
(github.com/prometheus/client_golang)</summary>

###
[`v1.22.0`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.22.0):
- 2025-04-07

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.21.1...v1.22.0)

⚠️ This release contains potential breaking change if you use
experimental `zstd` support introduce in
[#&#8203;1496](https://redirect.github.com/prometheus/client_golang/issues/1496)
⚠️

Experimental support for `zstd` on scrape was added, controlled by the
request `Accept-Encoding` header.
It was enabled by default since version 1.20, but now you need to add a
blank import to enable it.
The decision to make it opt-in by default was originally made because
the Go standard library was expected to have default zstd support added
soon,

[https://github.com/golang/go/issues/62513](https://redirect.github.com/golang/go/issues/62513)
however, the work took longer than anticipated and it will be postponed
to upcoming major Go versions.

e.g.:

> ```go
> import (
>   _ "github.com/prometheus/client_golang/prometheus/promhttp/zstd"
> )
> ```

- \[FEATURE] prometheus: Add new CollectorFunc utility
[#&#8203;1724](https://redirect.github.com/prometheus/client_golang/issues/1724)
- \[CHANGE] Minimum required Go version is now 1.22 (we also test
client\_golang against latest go version - 1.24)
[#&#8203;1738](https://redirect.github.com/prometheus/client_golang/issues/1738)
- \[FEATURE] api: `WithLookbackDelta` and `WithStats` options have been
added to API client.
[#&#8203;1743](https://redirect.github.com/prometheus/client_golang/issues/1743)
- \[CHANGE] ⚠️ promhttp: Isolate zstd support and
klauspost/compress library use to promhttp/zstd package.
[#&#8203;1765](https://redirect.github.com/prometheus/client_golang/issues/1765)

<details>
<summary> All Changes </summary>

- build(deps): bump golang.org/x/sys from 0.28.0 to 0.29.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1720](https://redirect.github.com/prometheus/client_golang/pull/1720)0
- build(deps): bump google.golang.org/protobuf from 1.36.1 to 1.36.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1719](https://redirect.github.com/prometheus/client_golang/pull/1719)9
- Update RELEASE.md by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1721](https://redirect.github.com/prometheus/client_golang/pull/1721)1
- chore(docs): Add links for the upstream PRs by
[@&#8203;kakkoyun](https://redirect.github.com/kakkoyun) in
[https://github.com/prometheus/client_golang/pull/1722](https://redirect.github.com/prometheus/client_golang/pull/1722)2
- Added tips on releasing client and checking with k8s. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1723](https://redirect.github.com/prometheus/client_golang/pull/1723)3
- feat: Add new CollectorFunc utility by
[@&#8203;Saumya40-codes](https://redirect.github.com/Saumya40-codes) in
[https://github.com/prometheus/client_golang/pull/1724](https://redirect.github.com/prometheus/client_golang/pull/1724)4
- build(deps): bump google.golang.org/protobuf from 1.36.3 to 1.36.4 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1725](https://redirect.github.com/prometheus/client_golang/pull/1725)5
- build(deps): bump the github-actions group with 5 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1726](https://redirect.github.com/prometheus/client_golang/pull/1726)6
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1727](https://redirect.github.com/prometheus/client_golang/pull/1727)7
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1731](https://redirect.github.com/prometheus/client_golang/pull/1731)1
- build(deps): bump golang.org/x/sys from 0.29.0 to 0.30.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1739](https://redirect.github.com/prometheus/client_golang/pull/1739)9
- build(deps): bump google.golang.org/protobuf from 1.36.4 to 1.36.5 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1740](https://redirect.github.com/prometheus/client_golang/pull/1740)0
- Cleanup dependabot config by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1741](https://redirect.github.com/prometheus/client_golang/pull/1741)1
- Upgrade Golang version v1.24 by
[@&#8203;dongjiang1989](https://redirect.github.com/dongjiang1989) in
[https://github.com/prometheus/client_golang/pull/1738](https://redirect.github.com/prometheus/client_golang/pull/1738)8
- build(deps): bump the github-actions group with 2 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1742](https://redirect.github.com/prometheus/client_golang/pull/1742)2
- Merging 1.21 release back to main. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1744](https://redirect.github.com/prometheus/client_golang/pull/1744)4
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1745](https://redirect.github.com/prometheus/client_golang/pull/1745)5
- Add support for undocumented query options for API by
[@&#8203;mahendrapaipuri](https://redirect.github.com/mahendrapaipuri)
in
[https://github.com/prometheus/client_golang/pull/1743](https://redirect.github.com/prometheus/client_golang/pull/1743)3
- exp/api: Add experimental exp module; Add remote API with write client
and handler. by [@&#8203;bwplotka](https://redirect.github.com/bwplotka)
in
[https://github.com/prometheus/client_golang/pull/1658](https://redirect.github.com/prometheus/client_golang/pull/1658)8
- exp/api: Add accepted msg type validation to handler by
[@&#8203;saswatamcode](https://redirect.github.com/saswatamcode) in
[https://github.com/prometheus/client_golang/pull/1750](https://redirect.github.com/prometheus/client_golang/pull/1750)0
- build(deps): bump the github-actions group with 5 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1751](https://redirect.github.com/prometheus/client_golang/pull/1751)1
- build(deps): bump github.com/klauspost/compress from 1.17.11 to 1.18.0
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1752](https://redirect.github.com/prometheus/client_golang/pull/1752)2
- build(deps): bump github.com/google/go-cmp from 0.6.0 to 0.7.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1753](https://redirect.github.com/prometheus/client_golang/pull/1753)3
- exp: Reset snappy buf by
[@&#8203;saswatamcode](https://redirect.github.com/saswatamcode) in
[https://github.com/prometheus/client_golang/pull/1756](https://redirect.github.com/prometheus/client_golang/pull/1756)6
- Merge release 1.21.1 to main. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1762](https://redirect.github.com/prometheus/client_golang/pull/1762)2
- exp: Add dependabot config by
[@&#8203;saswatamcode](https://redirect.github.com/saswatamcode) in
[https://github.com/prometheus/client_golang/pull/1754](https://redirect.github.com/prometheus/client_golang/pull/1754)4
- build(deps): bump peter-evans/create-pull-request from 7.0.7 to 7.0.8
in the github-actions group by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1764](https://redirect.github.com/prometheus/client_golang/pull/1764)4
- promhttp: Isolate zstd support and klauspost/compress library use to
promhttp/zstd package by
[@&#8203;liggitt](https://redirect.github.com/liggitt) in
[https://github.com/prometheus/client_golang/pull/1765](https://redirect.github.com/prometheus/client_golang/pull/1765)5
- Cut 1.22.0-rc.0 by
[@&#8203;kakkoyun](https://redirect.github.com/kakkoyun) in
[https://github.com/prometheus/client_golang/pull/1768](https://redirect.github.com/prometheus/client_golang/pull/1768)8

</details>

#### New Contributors
* @&#8203;Saumya40-codes made their first
contributi[https://github.com/prometheus/client_golang/pull/1724](https://redirect.github.com/prometheus/client_golang/pull/1724)l/1724
* @&#8203;mahendrapaipuri made their first
contributi[https://github.com/prometheus/client_golang/pull/1743](https://redirect.github.com/prometheus/client_golang/pull/1743)l/1743
* @&#8203;liggitt made their first
contributi[https://github.com/prometheus/client_golang/pull/1765](https://redirect.github.com/prometheus/client_golang/pull/1765)l/1765

**Full Changelog**:
https://github.com/prometheus/client\_golang/compare/v1.21.1...v1.22.0-rc.0

</details>

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

###
[`v1.20.1`](https://redirect.github.com/spf13/viper/releases/tag/v1.20.1)

[Compare
Source](https://redirect.github.com/spf13/viper/compare/v1.20.0...v1.20.1)

<!-- Release notes generated using configuration in .github/release.yml
at v1.20.1 -->

##### What's Changed

##### Bug Fixes 🐛

- Backport config type fixes to 1.20.x by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/2005](https://redirect.github.com/spf13/viper/pull/2005)

**Full Changelog**:
https://github.com/spf13/viper/compare/v1.20.0...v1.20.1

###
[`v1.20.0`](https://redirect.github.com/spf13/viper/releases/tag/v1.20.0)

[Compare
Source](https://redirect.github.com/spf13/viper/compare/v1.19.0...v1.20.0)

<!-- Release notes generated using configuration in .github/release.yml
at v1.20.0 -->

> \[!WARNING]
> This release includes a few minor breaking changes. Read the [upgrade
guide](https://redirect.github.com/spf13/viper/blob/master/UPGRADE.md#v120x)
for details.

#### What's Changed

##### Exciting New Features 🎉

- New encoding layer by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1869](https://redirect.github.com/spf13/viper/pull/1869)

##### Enhancements 🚀

- Drop Go 1.20 support by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1846](https://redirect.github.com/spf13/viper/pull/1846)
- Drop slog shim by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1848](https://redirect.github.com/spf13/viper/pull/1848)
- Replace file searching API with a finder by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1849](https://redirect.github.com/spf13/viper/pull/1849)
- Finder feature flag by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1852](https://redirect.github.com/spf13/viper/pull/1852)
- Allow setting options on the global Viper instance by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1856](https://redirect.github.com/spf13/viper/pull/1856)
- Add experimental flag for bind struct by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1854](https://redirect.github.com/spf13/viper/pull/1854)
- Make the remote package a separate module by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1860](https://redirect.github.com/spf13/viper/pull/1860)
- Add decoder hook option by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1872](https://redirect.github.com/spf13/viper/pull/1872)
- Encoder improvements by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1885](https://redirect.github.com/spf13/viper/pull/1885)
- Get uint8 by
[@&#8203;martinconic](https://redirect.github.com/martinconic) in
[https://github.com/spf13/viper/pull/1894](https://redirect.github.com/spf13/viper/pull/1894)

##### Bug Fixes 🐛

- Fix missing config type when reading from a buffer by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1857](https://redirect.github.com/spf13/viper/pull/1857)
- fix: do not allow setting dependencies to nil values by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1871](https://redirect.github.com/spf13/viper/pull/1871)
- feat: copy keydelim from parent chart in viper.Sub() by
[@&#8203;obs-gh-alexlew](https://redirect.github.com/obs-gh-alexlew) in
[https://github.com/spf13/viper/pull/1887](https://redirect.github.com/spf13/viper/pull/1887)

##### Breaking Changes 🛠

- Drop encoding formats: HCL, Java properties, INI by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1870](https://redirect.github.com/spf13/viper/pull/1870)

##### Dependency Updates ⬆️

- chore: update mapstructure by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1723](https://redirect.github.com/spf13/viper/pull/1723)
- chore: update crypt by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1834](https://redirect.github.com/spf13/viper/pull/1834)
- build(deps): bump github/codeql-action from 3.25.7 to 3.25.8 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1853](https://redirect.github.com/spf13/viper/pull/1853)
- Revert to go-difflib and go-spew releases by
[@&#8203;skitt](https://redirect.github.com/skitt) in
[https://github.com/spf13/viper/pull/1861](https://redirect.github.com/spf13/viper/pull/1861)
- build(deps): bump actions/dependency-review-action from 4.3.2 to 4.3.3
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1862](https://redirect.github.com/spf13/viper/pull/1862)
- build(deps): bump github/codeql-action from 3.25.8 to 3.25.10 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1865](https://redirect.github.com/spf13/viper/pull/1865)
- build(deps): bump actions/checkout from 4.1.6 to 4.1.7 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1864](https://redirect.github.com/spf13/viper/pull/1864)
- chore: update crypt by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1866](https://redirect.github.com/spf13/viper/pull/1866)
- build(deps): bump github/codeql-action from 3.25.10 to 3.25.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1876](https://redirect.github.com/spf13/viper/pull/1876)
- build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 in
/remote by [@&#8203;dependabot](https://redirect.github.com/dependabot)
in
[https://github.com/spf13/viper/pull/1878](https://redirect.github.com/spf13/viper/pull/1878)
- build(deps): bump actions/setup-go from 5.0.1 to 5.0.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1879](https://redirect.github.com/spf13/viper/pull/1879)
- build(deps): bump actions/dependency-review-action from 4.3.3 to 4.3.4
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1881](https://redirect.github.com/spf13/viper/pull/1881)
- build(deps): bump github/codeql-action from 3.25.11 to 3.25.12 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1880](https://redirect.github.com/spf13/viper/pull/1880)
- build(deps): bump github/codeql-action from 3.25.12 to 3.25.13 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1883](https://redirect.github.com/spf13/viper/pull/1883)
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1884](https://redirect.github.com/spf13/viper/pull/1884)
- chore: update dependencies by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1888](https://redirect.github.com/spf13/viper/pull/1888)
- build(deps): bump github.com/go-viper/mapstructure/v2 from 2.0.0 to
2.1.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1901](https://redirect.github.com/spf13/viper/pull/1901)
- build(deps): bump github.com/spf13/cast from 1.6.0 to 1.7.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1899](https://redirect.github.com/spf13/viper/pull/1899)
- build(deps): bump github/codeql-action from 3.25.13 to 3.26.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1897](https://redirect.github.com/spf13/viper/pull/1897)
- build(deps): bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1893](https://redirect.github.com/spf13/viper/pull/1893)
- build(deps): bump github/codeql-action from 3.26.0 to 3.26.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1903](https://redirect.github.com/spf13/viper/pull/1903)
- build(deps): bump github/codeql-action from 3.26.2 to 3.26.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1905](https://redirect.github.com/spf13/viper/pull/1905)
- build(deps): bump github/codeql-action from 3.26.3 to 3.26.5 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1909](https://redirect.github.com/spf13/viper/pull/1909)
- Update Go by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1913](https://redirect.github.com/spf13/viper/pull/1913)
- chore: update crypt package by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1914](https://redirect.github.com/spf13/viper/pull/1914)
- build(deps): bump github/codeql-action from 3.26.5 to 3.26.6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1915](https://redirect.github.com/spf13/viper/pull/1915)
- build(deps): bump mheap/github-action-required-labels from 5.4.1 to
5.4.2 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1916](https://redirect.github.com/spf13/viper/pull/1916)
- build(deps): bump cachix/install-nix-action from 27 to 28 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1919](https://redirect.github.com/spf13/viper/pull/1919)
- build(deps): bump github/codeql-action from 3.26.6 to 3.26.7 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1920](https://redirect.github.com/spf13/viper/pull/1920)
- chore: update crypt by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1921](https://redirect.github.com/spf13/viper/pull/1921)
- build(deps): bump github/codeql-action from 3.26.7 to 3.26.8 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1923](https://redirect.github.com/spf13/viper/pull/1923)
- build(deps): bump github.com/go-viper/mapstructure/v2 from 2.1.0 to
2.2.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1925](https://redirect.github.com/spf13/viper/pull/1925)
- build(deps): bump github/codeql-action from 3.26.8 to 3.26.11 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1932](https://redirect.github.com/spf13/viper/pull/1932)
- build(deps): bump golangci/golangci-lint-action from 6.1.0 to 6.1.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1930](https://redirect.github.com/spf13/viper/pull/1930)
- build(deps): bump actions/checkout from 4.1.7 to 4.2.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1928](https://redirect.github.com/spf13/viper/pull/1928)
- build(deps): bump actions/checkout from 4.2.0 to 4.2.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1936](https://redirect.github.com/spf13/viper/pull/1936)
- build(deps): bump github/codeql-action from 3.26.11 to 3.27.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1948](https://redirect.github.com/spf13/viper/pull/1948)
- build(deps): bump github.com/fsnotify/fsnotify from 1.7.0 to 1.8.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1944](https://redirect.github.com/spf13/viper/pull/1944)
- build(deps): bump actions/setup-go from 5.0.2 to 5.1.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1942](https://redirect.github.com/spf13/viper/pull/1942)
- build(deps): bump actions/dependency-review-action from 4.3.4 to 4.4.0
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1943](https://redirect.github.com/spf13/viper/pull/1943)
- build(deps): bump actions/checkout from 4.2.1 to 4.2.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1941](https://redirect.github.com/spf13/viper/pull/1941)
- build(deps): bump github/codeql-action from 3.27.2 to 3.27.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1949](https://redirect.github.com/spf13/viper/pull/1949)
- build(deps): bump github/codeql-action from 3.27.3 to 3.27.7 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1958](https://redirect.github.com/spf13/viper/pull/1958)
- build(deps): bump mheap/github-action-required-labels from 5.4.2 to
5.5.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1957](https://redirect.github.com/spf13/viper/pull/1957)
- build(deps): bump actions/dependency-review-action from 4.4.0 to 4.5.0
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1953](https://redirect.github.com/spf13/viper/pull/1953)
- build(deps): bump actions/setup-go from 5.1.0 to 5.2.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1959](https://redirect.github.com/spf13/viper/pull/1959)
- build(deps): bump github.com/stretchr/testify from 1.9.0 to 1.10.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1954](https://redirect.github.com/spf13/viper/pull/1954)
- build(deps): bump golang.org/x/crypto from 0.27.0 to 0.31.0 in /remote
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1960](https://redirect.github.com/spf13/viper/pull/1960)
- build(deps): bump github/codeql-action from 3.27.7 to 3.27.9 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1964](https://redirect.github.com/spf13/viper/pull/1964)
- chore: update afero by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1973](https://redirect.github.com/spf13/viper/pull/1973)
- build(deps): bump github.com/spf13/cast from 1.7.0 to 1.7.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1968](https://redirect.github.com/spf13/viper/pull/1968)
- build(deps): bump github.com/spf13/pflag from 1.0.5 to 1.0.6 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/spf13/viper/pull/1979](https://redirect.github.com/spf13/viper/pull/1979)
- ci: add Go 1.24 to the test matrix by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1983](https://redirect.github.com/spf13/viper/pull/1983)

##### Other Changes

- refactor: move remote code to separate file by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1847](https://redirect.github.com/spf13/viper/pull/1847)
- refactor: cleanup unused encoding code by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1889](https://redirect.github.com/spf13/viper/pull/1889)
- Fix issues reported by testifylint by
[@&#8203;deining](https://redirect.github.com/deining) in
[https://github.com/spf13/viper/pull/1965](https://redirect.github.com/spf13/viper/pull/1965)
- docs: add update instructions for 1.20 by
[@&#8203;sagikazarmark](https://redirect.github.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1992](https://redirect.github.com/spf13/viper/pull/1992)

#### New Contributors

- [@&#8203;obs-gh-alexlew](https://redirect.github.com/obs-gh-alexlew)
made their first contribution in
[https://github.com/spf13/viper/pull/1887](https://redirect.github.com/spf13/viper/pull/1887)
- [@&#8203;martinconic](https://redirect.github.com/martinconic) made
their first contribution in
[https://github.com/spf13/viper/pull/1894](https://redirect.github.com/spf13/viper/pull/1894)
- [@&#8203;deining](https://redirect.github.com/deining) made their
first contribution in
[https://github.com/spf13/viper/pull/1965](https://redirect.github.com/spf13/viper/pull/1965)

**Full Changelog**:
https://github.com/spf13/viper/compare/v1.19.0...v1.20.0

</details>

<details>
<summary>golang/go (go)</summary>

###
[`v1.24.4`](https://redirect.github.com/golang/go/compare/go1.24.3...go1.24.4)

###
[`v1.24.3`](https://redirect.github.com/golang/go/compare/go1.24.2...go1.24.3)

</details>

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.37.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v1.37.0):
/v0.59.0/v0.13.0

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.36.0...v1.37.0)

##### Added

- The `go.opentelemetry.io/otel/semconv/v1.33.0` package.
The package contains semantic conventions from the `v1.33.0` version of
the OpenTelemetry Semantic Conventions.
See the [migration documentation](./semconv/v1.33.0/MIGRATION.md) for
information on how to upgrade from
`go.opentelemetry.io/otel/semconv/v1.32.0.`([#&#8203;6799](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6799))
- The `go.opentelemetry.io/otel/semconv/v1.34.0` package.
The package contains semantic conventions from the `v1.34.0` version of
the OpenTelemetry Semantic Conventions.
([#&#8203;6812](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6812))
- Add metric's schema URL as `otel_scope_schema_url` label in
`go.opentelemetry.io/otel/exporters/prometheus`.
([#&#8203;5947](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5947))
- Add metric's scope attributes as `otel_scope_[attribute]` labels in
`go.opentelemetry.io/otel/exporters/prometheus`.
([#&#8203;5947](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5947))
- Add `EventName` to `EnabledParameters` in
`go.opentelemetry.io/otel/log`.
([#&#8203;6825](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6825))
- Add `EventName` to `EnabledParameters` in
`go.opentelemetry.io/otel/sdk/log`.
([#&#8203;6825](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6825))
- Changed handling of `go.opentelemetry.io/otel/exporters/prometheus`
metric renaming to add unit suffixes when it doesn't match one of the
pre-defined values in the unit suffix map.
([#&#8203;6839](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6839))

##### Changed

- The semantic conventions have been upgraded from `v1.26.0` to
`v1.34.0` in `go.opentelemetry.io/otel/bridge/opentracing`.
([#&#8203;6827](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6827))
- The semantic conventions have been upgraded from `v1.26.0` to
`v1.34.0` in `go.opentelemetry.io/otel/exporters/zipkin`.
([#&#8203;6829](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6829))
- The semantic conventions have been upgraded from `v1.26.0` to
`v1.34.0` in `go.opentelemetry.io/otel/metric`.
([#&#8203;6832](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6832))
- The semantic conventions have been upgraded from `v1.26.0` to
`v1.34.0` in `go.opentelemetry.io/otel/sdk/resource`.
([#&#8203;6834](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6834))
- The semantic conventions have been upgraded from `v1.26.0` to
`v1.34.0` in `go.opentelemetry.io/otel/sdk/trace`.
([#&#8203;6835](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6835))
- The semantic conventions have been upgraded from `v1.26.0` to
`v1.34.0` in `go.opentelemetry.io/otel/trace`.
([#&#8203;6836](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6836))
- `Record.Resource` now returns `*resource.Resource` instead of
`resource.Resource` in `go.opentelemetry.io/otel/sdk/log`.
([#&#8203;6864](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6864))
- Retry now shows error cause for context timeout in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`,
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`,
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`,
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`,
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`,
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.
([#&#8203;6898](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6898))

##### Fixed

- Stop stripping trailing slashes from configured endpoint URL in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`.
([#&#8203;6710](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6710))
- Stop stripping trailing slashes from configured endpoint URL in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;6710](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6710))
- Stop stripping trailing slashes from configured endpoint URL in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
([#&#8203;6710](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6710))
- Stop stripping trailing slashes from configured endpoint URL in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;6710](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6710))
- Validate exponential histogram scale range for Prometheus
compatibility in `go.opentelemetry.io/otel/exporters/prometheus`.
([#&#8203;6822](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6822))
- Context cancellation during metric pipeline produce does not corrupt
data in `go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;6914](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6914))

##### Removed

- `go.opentelemetry.io/otel/exporters/prometheus` no longer exports
`otel_scope_info` metric.
([#&#8203;6770](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6770))

#### What's Changed

- Fix dependencies to unreleased sdk/logtest by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6800](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6800)
- Release experimental logs 0.12.1 by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6802](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6802)
- Fix broken link in changelog by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6805](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6805)
- Retract v0.12.0 for log exporters by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6804](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6804)
- chore(deps): update python:3.13.3-slim-bullseye docker digest to
[`45338d2`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/45338d2)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6807](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6807)
- remove internal/matchers by
[@&#8203;codeimmortal](https://redirect.github.com/codeimmortal) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6777](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6777)
- Release log/v0.12.2 by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6806](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6806)
- chore(deps): update python:3.13.3-slim-bullseye docker digest to
[`f0acec6`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/f0acec6)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6810](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6810)
- Update the required approvals policy by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6783](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6783)
- Generate `semconv/v1.33.0` by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6799](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6799)
- chore(deps): update module github.com/jgautheron/goconst to v1.8.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6815](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6815)
- chore(deps): update module

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNy4yIiwidXBkYXRlZEluVmVyIjoiNDEuMTcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-04 16:10:16 -04:00
Todd Baert 7a7977555d
Update renovate.json
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-04 14:59:00 -04:00
Brianna Bland 07a45d9b22
feat: add sync_context to SyncFlags (#1642)
## This PR

- adds comment about `GetMetadata` being deprecated in future release
- implements the `sync_context` field to the `SyncFlags` of
`flag-sync/handler.go`

### Related Issues

Fixes #1635

---------

Signed-off-by: bbland1 <104288486+bbland1@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-07-03 15:36:07 -04:00
Todd Baert 1ccc07e98d
docs: adr for fractional (#1640)
Adds ADR for fractional.

_As written_ this is historical, however, we can modify this one in this
PR if you would like. I know @tangenti @dominikhaska @cupofcat are
interested in some changes here. Feel free to suggest them and if we
have a consensus we can turn the changes into roadmap items.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-06-26 16:09:45 -04:00
Todd Baert 607290951d
docs: add flag config adr (#1637)
Another "retrospective" ADR, like the cucumber one.

This explains our JSONLogic choice, shared `$evaluators`, as well as the
the semantics of flagd's use of OpenFeature's [resolution
reasons](https://openfeature.dev/specification/types#resolution-reason).

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-06-26 16:09:25 -04:00
Michael Beemer c90c91f730
docs: refines the code default adr (#1648)
## This PR

- updates the code default ADR to use `FLAG_NOT_FOUND` errors codes
instead of an undefined value.

### Notes

This update will have nearly identical end results but will be easier to
implement and more consistent. Core to this change is switching from
using an empty value as the indicator to using the `FLAG_NOT_FOUND`
error code. While this may seem odd at first, it's in line with the
behavior a user sees when first releasing a disabled flag. This will
allow users to `create a new disabled flag` -> `enable the flag for a
subset of users without impacting others` -> `enable the flag for
everyone` -> `deprecate the flag`.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-06-24 19:23:10 -04:00
Michael Beemer 0642ac8c70
docs: add code default adr (#1639)
## This PR

- ADR to add support for explicitly deferring to the code default.

### Notes

This has been a challenge for users because enabling a feature for
targeting requires a default variant to be used, which may not match the
default used in code.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-06-24 12:23:15 -04:00
github-actions[bot] 23e15540a7
chore: release main (#1643)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.5</summary>

##
[0.12.5](https://github.com/open-feature/flagd/compare/flagd/v0.12.4...flagd/v0.12.5)
(2025-06-13)


###  New Features

* add server-side deadline to sync service
([#1638](https://github.com/open-feature/flagd/issues/1638))
([b70fa06](b70fa06b66))
* updating context using headers
([#1641](https://github.com/open-feature/flagd/issues/1641))
([ba34815](ba348152b6))
</details>

<details><summary>core: 0.11.5</summary>

##
[0.11.5](https://github.com/open-feature/flagd/compare/core/v0.11.4...core/v0.11.5)
(2025-06-13)


###  New Features

* add server-side deadline to sync service
([#1638](https://github.com/open-feature/flagd/issues/1638))
([b70fa06](b70fa06b66))
* updating context using headers
([#1641](https://github.com/open-feature/flagd/issues/1641))
([ba34815](ba348152b6))
</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>
2025-06-19 11:04:29 -04:00
alexandraoberaigner b70fa06b66
feat: add server-side deadline to sync service (#1638)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- adds server side deadline for sync and event streams configurable via
cmd argument `--stream-deadline`

### Related Issues

#1582

### Notes
<!-- any additional notes for this PR -->


### How to test

1. Run flagd with `--stream-deadline 3s` // 3s can be replaced with any
duration the deadline should have
2. Test Event Stream deadline: run `grpcurl -v --proto
schemas/protobuf/flagd/evaluation/v1/evaluation.proto -plaintext
localhost:8013 flagd.evaluation.v1.Service/EventStream` or similar
depending on your flagd settings to check if the deadline exceeded is
returned after the specified duration
3. Test Sync Service Stream deadline: run `grpcurl -v --proto
schemas/protobuf/flagd/sync/v1/sync.proto -plaintext localhost:8015
flagd.sync.v1.FlagSyncService/SyncFlags` or similar depending on your
flagd settings to check if the deadline exceeded is returned after the
specified duration

Signed-off-by: alexandra.oberaigner <alexandra.oberaigner@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-06-13 15:50:48 -04:00
Rahul Baradol ba348152b6
feat: updating context using headers (#1641)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

Able to update context map using headers present in 
- OFREP requests
- Connect Requests (via Flag Evaluator V2 service)

### Related Issues
Fixes #1583 

### Notes
Context values passed via headers is high priority

If same context key is updated via
- Headers
- Request Body
- Static Config

_Context via Headers will be considered_

### Usage 
```
flagd start --port 8013 --uri file:./samples/example_flags.flagd.json -H Header=contextKey
```
or
```
flagd start --port 8013 --uri file:./samples/example_flags.flagd.json --context-from-header Header=contextKey
```

---------

Signed-off-by: Rahul Baradol <rahul.baradol.14@gmail.com>
2025-06-13 10:02:35 -04:00
Todd Baert bf10ff30dc
docs(ADR): add gherkin ADR (#1631)
Adds an ADR based on the new template, explaining the reasoning behind
the use of cucumber/gherkin.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: André Silva <2493377+askpt@users.noreply.github.com>
2025-06-05 14:52:57 -04:00
github-actions[bot] cb2b8eeb9c
chore: release main (#1605)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.4</summary>

##
[0.12.4](https://github.com/open-feature/flagd/compare/flagd/v0.12.3...flagd/v0.12.4)
(2025-05-28)


### 🐛 Bug Fixes

* Bump OpenTelemetry instrumentation dependencies
([#1616](https://github.com/open-feature/flagd/issues/1616))
([11db29d](11db29dc3a))


###  New Features

* add traces to ofrep endpoint
([#1593](https://github.com/open-feature/flagd/issues/1593))
([a5d43bc](a5d43bc1de))


### 🧹 Chore

* **deps:** update dependency go to v1.24.1
([#1559](https://github.com/open-feature/flagd/issues/1559))
([cd46044](cd4604471b))
* **security:** upgrade dependency versions
([#1632](https://github.com/open-feature/flagd/issues/1632))
([761d870](761d870a3c))
</details>

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

##
[0.7.4](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.7.3...flagd-proxy/v0.7.4)
(2025-05-28)


### 🧹 Chore

* **deps:** update dependency go to v1.24.1
([#1559](https://github.com/open-feature/flagd/issues/1559))
([cd46044](cd4604471b))
* **security:** upgrade dependency versions
([#1632](https://github.com/open-feature/flagd/issues/1632))
([761d870](761d870a3c))
</details>

<details><summary>core: 0.11.4</summary>

##
[0.11.4](https://github.com/open-feature/flagd/compare/core/v0.11.3...core/v0.11.4)
(2025-05-28)


### 🐛 Bug Fixes

* incorrect comparison used for time
([#1608](https://github.com/open-feature/flagd/issues/1608))
([8c5ac2f](8c5ac2f2c3))


### 🧹 Chore

* **deps:** update dependency go to v1.24.1
([#1559](https://github.com/open-feature/flagd/issues/1559))
([cd46044](cd4604471b))
* **security:** upgrade dependency versions
([#1632](https://github.com/open-feature/flagd/issues/1632))
([761d870](761d870a3c))


### 🔄 Refactoring

* Refactor the cron function in http sync
([#1600](https://github.com/open-feature/flagd/issues/1600))
([babcacf](babcacfe4d))
* removed hardcoded metric export interval and use otel default
([#1621](https://github.com/open-feature/flagd/issues/1621))
([81c66eb](81c66ebf2b))
</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>
2025-06-02 15:47:43 -04:00
i-m-addycoder 761d870a3c
chore(security): upgrade dependency versions (#1632)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- upgrades 2 dependency versions to fix CVEs

### Notes
<!-- any additional notes for this PR -->

Dependency upgrades and corresponding CVEs
- github.com/golang-jwt/jwt/v5 | v5.2.1 -
https://www.cve.org/CVERecord?id=CVE-2025-30204 - `go get
github.com/golang-jwt/jwt/v5@v5.2.2` in core, flagd and flagd-proxy
directories
- golang.org/x/oauth2/jws | v0.25.0 and v0.26.0 -
https://www.cve.org/CVERecord?id=CVE-2025-22868 - `go get
golang.org/x/oauth2@v0.27.0` in core, flagd and flagd-proxy directories

### How to test
<!-- if applicable, add testing instructions under this section -->

1. `make workspace-init`
2. `make test`

Signed-off-by: Aditya Thakur <aditya.t.01011@gmail.com>
2025-05-28 15:44:01 -04:00
Michael Beemer 7566f518c8
docs(ADR): add architecture decision template (#1630)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-05-15 14:09:08 -04:00
Michael Beemer 81c66ebf2b
refactor: removed hardcoded metric export interval and use otel default (#1621)
Signed-off-by: Michael Beemer <michael.beemer@dynatrace.com>
2025-05-06 23:29:06 -04:00
Kyle e8d6d6d892
docs: improve content tab anchors on getting started (#1628)
Signed-off-by: Kyle Julian <38759683+kylejuliandev@users.noreply.github.com>
2025-04-29 14:09:53 -04:00
Kyle e0cf061cb8
docs: add documentation on running flagd within docker-compose (#1626)
Signed-off-by: Kyle Julian <38759683+kylejuliandev@users.noreply.github.com>
2025-04-28 14:38:39 -04:00
Todd Baert 3887a53c49
chore: use publish env
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-04-16 12:42:45 -04:00
Michael Beemer f94ebeed3e
docs: clarify that bucketing keys are strings (#1619)
Signed-off-by: Michael Beemer <michael.beemer@dynatrace.com>
2025-04-10 11:03:31 +02:00
Simon Schrottner a5d43bc1de
feat: add traces to ofrep endpoint (#1593)
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-04-10 09:19:15 +02:00
Jorge Creixell 11db29dc3a
fix: Bump OpenTelemetry instrumentation dependencies (#1616)
Signed-off-by: Jorge Creixell <jorge.creixell@grafana.com>
2025-04-08 23:05:23 +02:00
Simon Schrottner ac52674454
chore: add global maintainers to the codeowners (#1617)
global maintainers approvals etc should have the same effect as the one
of the flagd maintainers

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-04-05 17:16:28 +01:00
Zhiwei Liang babcacfe4d
refactor: Refactor the cron function in http sync (#1600)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
Refactor the cron function in the `Sync` function for the HTTP sync.
This might improve the performance as well because it reduces the number
of HTTP requests.

Signed-off-by: Zhiwei Liang <zhiwei.liang27@pm.me>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-03-27 16:02:48 -04:00
Matthew Wilson 8c5ac2f2c3
fix: incorrect comparison used for time (#1608)
Signed-off-by: Matthew Wilson <54033231+wilson-matthew@users.noreply.github.com>
2025-03-27 14:28:26 -04:00
Michael Beemer ddfa0203ce
docs: add providerId as a configuration option (#1567)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-03-27 12:28:07 -04:00
renovate[bot] cd4604471b
chore(deps): update dependency go to v1.24.1 (#1559)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go](https://go.dev/)
([source](https://redirect.github.com/golang/go)) | toolchain | minor |
`1.22.9` -> `1.24.1` |

---

### Release Notes

<details>
<summary>golang/go (go)</summary>

###
[`v1.24.1`](https://redirect.github.com/golang/go/compare/go1.24.0...go1.24.1)

###
[`v1.24.0`](https://redirect.github.com/golang/go/compare/go1.23.6...go1.24.0)

###
[`v1.23.7`](https://redirect.github.com/golang/go/compare/go1.23.6...go1.23.7)

###
[`v1.23.6`](https://redirect.github.com/golang/go/compare/go1.23.5...go1.23.6)

###
[`v1.23.5`](https://redirect.github.com/golang/go/compare/go1.23.4...go1.23.5)

###
[`v1.23.4`](https://redirect.github.com/golang/go/compare/go1.23.3...go1.23.4)

###
[`v1.23.3`](https://redirect.github.com/golang/go/compare/go1.23.2...go1.23.3)

###
[`v1.23.2`](https://redirect.github.com/golang/go/compare/go1.23.1...go1.23.2)

###
[`v1.23.1`](https://redirect.github.com/golang/go/compare/go1.23.0...go1.23.1)

###
[`v1.23.0`](https://redirect.github.com/golang/go/compare/go1.22.12...go1.23.0)

###
[`v1.22.12`](https://redirect.github.com/golang/go/compare/go1.22.11...go1.22.12)

###
[`v1.22.11`](https://redirect.github.com/golang/go/compare/go1.22.10...go1.22.11)

###
[`v1.22.10`](https://redirect.github.com/golang/go/compare/go1.22.9...go1.22.10)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

---------

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-03-25 14:55:03 -04:00
github-actions[bot] 3f4690e550
chore: release main (#1571)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.3</summary>

##
[0.12.3](https://github.com/open-feature/flagd/compare/flagd/v0.12.2...flagd/v0.12.3)
(2025-03-25)


### 🐛 Bug Fixes

* add support for unix socket connection in sync service
([#1518](https://github.com/open-feature/flagd/issues/1518))
([#1560](https://github.com/open-feature/flagd/issues/1560))
([e2203a1](e2203a13ca))
* **deps:** update module github.com/open-feature/flagd/core to v0.11.2
([#1570](https://github.com/open-feature/flagd/issues/1570))
([e151b1f](e151b1f975))
* **deps:** update module github.com/prometheus/client_golang to v1.21.1
([#1576](https://github.com/open-feature/flagd/issues/1576))
([cd95193](cd95193f71))
* **deps:** update module google.golang.org/grpc to v1.71.0
([#1578](https://github.com/open-feature/flagd/issues/1578))
([5c2c64f](5c2c64f878))
* incorrect metadata returned per source
([#1599](https://github.com/open-feature/flagd/issues/1599))
([b333e11](b333e11ecf))


###  New Features

* accept version numbers which are not strings
([#1589](https://github.com/open-feature/flagd/issues/1589))
([6a13796](6a137967a2))
</details>

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

##
[0.7.3](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.7.2...flagd-proxy/v0.7.3)
(2025-03-25)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.11.2
([#1570](https://github.com/open-feature/flagd/issues/1570))
([e151b1f](e151b1f975))
* **deps:** update module github.com/prometheus/client_golang to v1.21.1
([#1576](https://github.com/open-feature/flagd/issues/1576))
([cd95193](cd95193f71))
* **deps:** update module google.golang.org/grpc to v1.71.0
([#1578](https://github.com/open-feature/flagd/issues/1578))
([5c2c64f](5c2c64f878))
</details>

<details><summary>core: 0.11.3</summary>

##
[0.11.3](https://github.com/open-feature/flagd/compare/core/v0.11.2...core/v0.11.3)
(2025-03-25)


### 🐛 Bug Fixes

* **deps:** update github.com/open-feature/flagd-schemas digest to
9b0ee43 ([#1598](https://github.com/open-feature/flagd/issues/1598))
([0587ce4](0587ce44e6))
* **deps:** update github.com/open-feature/flagd-schemas digest to
e840a03 ([#1587](https://github.com/open-feature/flagd/issues/1587))
([9ee0c57](9ee0c573d6))
* **deps:** update module connectrpc.com/otelconnect to v0.7.2
([#1574](https://github.com/open-feature/flagd/issues/1574))
([6094dce](6094dce5c0))
* **deps:** update module github.com/google/go-cmp to v0.7.0
([#1569](https://github.com/open-feature/flagd/issues/1569))
([6e9dbd2](6e9dbd2dbf))
* **deps:** update module github.com/prometheus/client_golang to v1.21.1
([#1576](https://github.com/open-feature/flagd/issues/1576))
([cd95193](cd95193f71))
* **deps:** update module google.golang.org/grpc to v1.71.0
([#1578](https://github.com/open-feature/flagd/issues/1578))
([5c2c64f](5c2c64f878))
* incorrect metadata returned per source
([#1599](https://github.com/open-feature/flagd/issues/1599))
([b333e11](b333e11ecf))


###  New Features

* accept version numbers which are not strings
([#1589](https://github.com/open-feature/flagd/issues/1589))
([6a13796](6a137967a2))
</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>
2025-03-25 14:38:14 -04:00
renovate[bot] 0587ce44e6
fix(deps): update github.com/open-feature/flagd-schemas digest to 9b0ee43 (#1598)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd-schemas](https://redirect.github.com/open-feature/flagd-schemas)
| require | digest | `e840a03` -> `9b0ee43` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-25 17:57:33 +00:00
Todd Baert b333e11ecf
fix: incorrect metadata returned per source (#1599)
This PR fixes an issue where the wrong metadata is returned when a
selector is used.

This bug is easy to fix, but was also easy to write. We eventually need
to refactor the flag memory store (`flags.go`) to store all flags per
source. This was retrofitted in to support selectors, from a
single-flagSet model.

To test, do the manual test specified in
https://github.com/open-feature/flagd/issues/1597.

Fixes: https://github.com/open-feature/flagd/issues/1597

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-03-25 09:44:23 -04:00
renovate[bot] 9ee0c573d6
fix(deps): update github.com/open-feature/flagd-schemas digest to e840a03 (#1587)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd-schemas](https://redirect.github.com/open-feature/flagd-schemas)
| require | digest | `bb76343` -> `e840a03` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE5NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-14 15:22:39 +00:00
chrfwow 6a137967a2
feat: accept version numbers which are not strings (#1589)
## This PR
Fixes errors when the provided version is not a string but a number
(e.g. versions like 1.0, 2, ...) and improves the test suite to use our
`parseSemverEvaluationData` function. Furthermore, logging now includes
erroneous inputs.

---------

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Co-authored-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-03-14 11:38:20 +01:00
renovate[bot] 779e8f929a
fix(deps): update opentelemetry-go monorepo (#1581)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.34.0` -> `v1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.34.0` -> `v1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.34.0` -> `v1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.34.0` -> `v1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v0.56.0` -> `v0.57.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.56.0/v0.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.56.0/v0.57.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.34.0` -> `v1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.34.0` -> `v1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.34.0` -> `v1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.34.0` -> `v1.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.34.0/v1.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.35.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v1.35.0):
/v0.57.0/v0.11.0

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0)

#### Overview

This release is the last to support [Go 1.22].
The next release will require at least [Go 1.23].

##### Added

- Add `ValueFromAttribute` and `KeyValueFromAttribute` in
`go.opentelemetry.io/otel/log`.
([#&#8203;6180](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6180))
- Add `EventName` and `SetEventName` to `Record` in
`go.opentelemetry.io/otel/log`.
([#&#8203;6187](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6187))
- Add `EventName` to `RecordFactory` in
`go.opentelemetry.io/otel/log/logtest`.
([#&#8203;6187](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6187))
- `AssertRecordEqual` in `go.opentelemetry.io/otel/log/logtest` checks
`Record.EventName`.
([#&#8203;6187](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6187))
- Add `EventName` and `SetEventName` to `Record` in
`go.opentelemetry.io/otel/sdk/log`.
([#&#8203;6193](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6193))
- Add `EventName` to `RecordFactory` in
`go.opentelemetry.io/otel/sdk/log/logtest`.
([#&#8203;6193](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6193))
- Emit `Record.EventName` field in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`.
([#&#8203;6211](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6211))
- Emit `Record.EventName` field in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.
([#&#8203;6211](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6211))
- Emit `Record.EventName` field in
`go.opentelemetry.io/otel/exporters/stdout/stdoutlog`
([#&#8203;6210](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6210))
-   The `go.opentelemetry.io/otel/semconv/v1.28.0` package.
The package contains semantic conventions from the `v1.28.0` version of
the OpenTelemetry Semantic Conventions.
See the [migration documentation](./semconv/v1.28.0/MIGRATION.md) for
information on how to upgrade from
`go.opentelemetry.io/otel/semconv/v1.27.0`([#&#8203;6236](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6236))
-   The `go.opentelemetry.io/otel/semconv/v1.30.0` package.
The package contains semantic conventions from the `v1.30.0` version of
the OpenTelemetry Semantic Conventions.
See the [migration documentation](./semconv/v1.30.0/MIGRATION.md) for
information on how to upgrade from
`go.opentelemetry.io/otel/semconv/v1.28.0`([#&#8203;6240](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6240))
-   Document the pitfalls of using `Resource` as a comparable type.
`Resource.Equal` and `Resource.Equivalent` should be used instead.
([#&#8203;6272](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6272))
- Support \[Go 1.24].
([#&#8203;6304](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6304))
- Add `FilterProcessor` and `EnabledParameters` in
`go.opentelemetry.io/otel/sdk/log`.
It replaces
`go.opentelemetry.io/otel/sdk/log/internal/x.FilterProcessor`.
Compared to previous version it additionally gives the possibility to
filter by resource and instrumentation scope.
([#&#8203;6317](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6317))

##### Changed

- Update `github.com/prometheus/common` to `v0.62.0`, which changes the
`NameValidationScheme` to `NoEscaping`.
This allows metrics names to keep original delimiters (e.g. `.`), rather
than replacing with underscores.
This is controlled by the `Content-Type` header, or can be reverted by
setting `NameValidationScheme` to `LegacyValidation` in
`github.com/prometheus/common/model`.
([#&#8203;6198](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6198))

##### Fixes

- Eliminate goroutine leak for the processor returned by
`NewSimpleSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace` when
`Shutdown` is called and the passed `ctx` is canceled and
`SpanExporter.Shutdown` has not returned.
([#&#8203;6368](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6368))
- Eliminate goroutine leak for the processor returned by
`NewBatchSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace` when
`ForceFlush` is called and the passed `ctx` is canceled and
`SpanExporter.Export` has not returned.
([#&#8203;6369](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6369))

[Go 1.23]: https://go.dev/doc/go1.23

[Go 1.22]: https://go.dev/doc/go1.22

#### What's Changed

- chore(deps): update golang.org/x/telemetry digest to
[`04cd7ba`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/04cd7ba)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6176](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6176)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.26.0 by [@&#8203;renovate](https://redirect.github.com/renovate)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/6186](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6186)
- chore(deps): update module github.com/pjbgf/sha1cd to v0.3.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6188](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6188)
- chore(deps): update dependency codespell to v2.4.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6189](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6189)
- log: Add ValueFromAttribute and KeyValueFromAttribute by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6180](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6180)
- fix(deps): update module github.com/opentracing-contrib/go-grpc to
v0.1.1 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6191](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6191)
- fix(deps): update github.com/opentracing-contrib/go-grpc/test digest
to
[`2f9c7e3`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/2f9c7e3)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6190](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6190)
- log: Add EventName by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6187](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6187)
- sdk/log: Add EventName by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6193](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6193)
- chore(deps): update codecov/codecov-action action to v5.2.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6195](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6195)
- fix(deps): update googleapis to
[`138b5a5`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/138b5a5)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6194](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6194)
- fix(deps): update module go.opentelemetry.io/build-tools/crosslink to
v0.17.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6197](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6197)
- fix(deps): update module go.opentelemetry.io/build-tools/gotmpl to
v0.17.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6199](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6199)
- fix(deps): update module go.opentelemetry.io/build-tools/semconvgen to
v0.17.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6202](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6202)
- fix(deps): update module go.opentelemetry.io/build-tools/multimod to
v0.17.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6200](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6200)
- chore: Group renovate build-tools updates by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6201](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6201)
- Update module github.com/prometheus/common to v0.62.0 and fix tests by
[@&#8203;dashpole](https://redirect.github.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6198](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6198)
- chore(deps): update module github.com/go-git/go-git/v5 to v5.13.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6204](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6204)
- chore(deps): update codecov/codecov-action action to v5.3.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6207](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6207)
- fix(deps): update module google.golang.org/grpc to v1.70.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6208](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6208)
- fix(deps): update googleapis to
[`65684f5`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/65684f5)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6212](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6212)
- chore(deps): update codecov/codecov-action action to v5.3.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6213](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6213)
- fix(deps): update module google.golang.org/protobuf to v1.36.4 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6214](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6214)
- otlplog: Emit Record.EventName field by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6211](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6211)
- chore: Update Logs API design doc by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6206](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6206)
- fix(deps): update googleapis to
[`29210b9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/29210b9)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6217](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6217)
- chore(deps): update module github.com/cyphar/filepath-securejoin to
v0.4.1 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6218](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6218)
- fix(deps): update golang.org/x to
[`e0ece0d`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e0ece0d)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6219](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6219)
- chore(deps): update dependency codespell to v2.4.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6221](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6221)
- fix(deps): update golang.org/x to
[`e0ece0d`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e0ece0d)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6222](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6222)
- stdoutlog: Emit Record.EventName field by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6210](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6210)
- Update codespell target by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6223](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6223)
- chore(deps): update module github.com/spf13/pflag to v1.0.6 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6224](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6224)
- chore(deps): update module github.com/skeema/knownhosts to v1.3.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6231](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6231)
- Weaver by [@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5898](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5898)
- chore(deps): update module github.com/polyfloyd/go-errorlint to v1.7.1
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6237](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6237)
- Generate the `semconv/v1.28.0` package by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6236](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6236)
- Use archive URL for weaver registry by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6235](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6235)
- sdk/log: Assign fltrProcessors on provider creation instead of lazy by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6239](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6239)
- Generate `semconv/v1.30.0` by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6240](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6240)
- Add an auto-instrumentable no-op implementation to the `trace` package
by [@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6203](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6203)
- fix(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6249](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6249)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`29210b9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/29210b9)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6250](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6250)
- chore(deps): update module golang.org/x/text to v0.22.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6252](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6252)
- fix(deps): update googleapis to
[`7023788`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7023788)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6251](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6251)
- chore(deps): update golang.org/x/telemetry digest to
[`3af0d96`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/3af0d96)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6253](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6253)
- chore(deps): update module google.golang.org/grpc to v1.70.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6254](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6254)
- fix(deps): update module go.opentelemetry.io/otel/trace to v1.34.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6256](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6256)
- fix(deps): update module go.opentelemetry.io/collector/pdata to
v1.25.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6255](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6255)
- chore(deps): update module github.com/cloudflare/circl to v1.6.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6259](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6259)
- chore(deps): update lycheeverse/lychee-action action to v2.3.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6258](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6258)
- chore(deps): update module github.com/catenacyber/perfsprint to v0.8.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6261](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6261)
- Create scorecard.yml to enable OSSF Scorecard reporting by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6247](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6247)
- chore(deps): update actions/upload-artifact digest to
[`ff15f03`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/ff15f03)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6262](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6262)
- chore(deps): update actions/checkout action to v4.2.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6263](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6263)
- chore(deps): update golang.org/x/telemetry digest to
[`c67c2d1`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/c67c2d1)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6264](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6264)
- chore(deps): update ossf/scorecard-action action to v2.4.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6265](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6265)
- chore(deps): update actions/upload-artifact action to v4 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6266](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6266)
- fix(deps): update build-tools to v0.18.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6276](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6276)
- fix(deps): update module google.golang.org/protobuf to v1.36.5 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6277](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6277)
- Use renovate best-practices by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6267](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6267)
- chore(deps): pin dependencies by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6278](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6278)
- chore(deps): update golang.org/x/telemetry digest to
[`557cf9c`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/557cf9c)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6279](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6279)
- Fix comment of the RecordOnly sampling decision by
[@&#8203;XSAM](https://redirect.github.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6257](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6257)
- Default github workflow permission read-all by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6268](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6268)
- Add an OpenSSF badge to README.md by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6269](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6269)
- chore(deps): update python docker tag to v3.13.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6283](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6283)
- fix(deps): update golang.org/x to
[`f9890c6`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/f9890c6)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6282](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6282)
- chore(deps): update github/codeql-action digest to
[`9e8d078`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9e8d078)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6287](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6287)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.26.1 by [@&#8203;renovate](https://redirect.github.com/renovate)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/6288](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6288)
- chore(deps): update module golang.org/x/crypto to v0.33.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6290](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6290)
- fix(deps): update googleapis to
[`e9438ea`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e9438ea)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6289](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6289)
- chore(deps): update otel/weaver docker tag to v0.13.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6292](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6292)
- chore(deps): update module 4d63.com/gochecknoglobals to v0.2.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6291](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6291)
- chore(deps): update module go-simpler.org/sloglint to v0.9.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6293](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6293)
- chore(deps): update module github.com/catenacyber/perfsprint to v0.8.1
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6294](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6294)
- Close stale issues and PRs after 2 years of inactivity by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6284](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6284)
- chore(deps): pin actions/stale action to
[`5bef64f`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/5bef64f)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6295](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6295)
- fix(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6297](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6297)
- chore(deps): update module github.com/ldez/exptostd to v0.4.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6300](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6300)
- fix(deps): update module github.com/golangci/golangci-lint to v1.64.2
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6301](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6301)
- Document and check resource comparability by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6272](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6272)
- chore(deps): update module github.com/mgechev/revive to v1.6.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6306](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6306)
- chore(deps): update otel/weaver docker tag to v0.13.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6309](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6309)
- fix(deps): update module github.com/golangci/golangci-lint to v1.64.4
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6310](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6310)
- chore(deps): update golang.org/x/telemetry digest to
[`7530529`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/7530529)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6305](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6305)
- chore(deps): update module github.com/gostaticanalysis/forcetypeassert
to v0.2.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6312](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6312)
- fix(deps): update googleapis to
[`5a70512`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/5a70512)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6308](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6308)
- Add support for Go 1.24 by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6304](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6304)
- Replace tenv with usetesting by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6313](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6313)
- chore(deps): update module github.com/securego/gosec/v2 to v2.22.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6314](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6314)
- \[chore] Fix go-work Make target with the highest required Go version
by [@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6285](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6285)
- chore(deps): update module github.com/tdakkota/asciicheck to v0.4.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6316](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6316)
- fix(deps): update module github.com/golangci/golangci-lint to v1.64.5
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6319](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6319)
- chore(deps): update otel/weaver docker tag to v0.13.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6318](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6318)
- sdk/log: Change BenchmarkLoggerNewRecord to BenchmarkLoggerEmit by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6315](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6315)
- chore(deps): update golang.org/x/telemetry digest to
[`6f9b61d`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/6f9b61d)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6321](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6321)
- chore(deps): update module github.com/tdakkota/asciicheck to v0.4.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6322](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6322)
- chore(deps): update module github.com/tetafro/godot to v1.5.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6323](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6323)
- \[chore] Use public Linux ARM64 runners by
[@&#8203;Kielek](https://redirect.github.com/Kielek) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6320](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6320)
- chore(deps): update module github.com/mgechev/revive to v1.7.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6326](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6326)
- chore(deps): update module github.com/spf13/cobra to v1.9.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6324](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6324)
- chore(deps): update module github.com/4meepo/tagalign to v1.4.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6327](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6327)
- fix(deps): update golang.org/x to
[`eff6e97`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/eff6e97)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6325](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6325)
- fix(deps): update golang.org/x to
[`aa4b98e`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/aa4b98e)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6336](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6336)
- chore(deps): update module github.com/nunnatsa/ginkgolinter to v0.19.1
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6311](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6311)
- sdk/log: Add FilterProcessor and EnabledParameters by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6317](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6317)
- chore(deps): update actions/cache digest to
[`0c907a7`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/0c907a7)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6337](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6337)
- fix(deps): update googleapis to
[`56aae31`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/56aae31)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6338](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6338)
- chore(deps): update module github.com/catenacyber/perfsprint to v0.8.2
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6339](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6339)
- Add FOSSA scanning workflow by
[@&#8203;opentelemetrybot](https://redirect.github.com/opentelemetrybot)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/6331](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6331)
- chore(deps): update module github.com/kisielk/errcheck to v1.9.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6340](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6340)
- \[chore] Add a policy on adding tests by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6334](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6334)
- \[chore] Add OpenSSF Best Practices badge by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6345](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6345)
- chore(deps): update golang.org/x/telemetry digest to
[`165e2f8`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/165e2f8)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6346](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6346)
- chore(deps): update module github.com/quasilyte/go-ruleguard to v0.4.4
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6348](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6348)
- chore(deps): update module github.com/ldez/exptostd to v0.4.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6357](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6357)
- chore(deps): update actions/upload-artifact digest to
[`4cec3d8`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4cec3d8)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6356](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6356)
- chore(deps): update github/codeql-action digest to
[`b56ba49`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/b56ba49)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6354](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6354)
- chore(deps): update ossf/scorecard-action action to v2.4.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6358](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6358)
- fix(deps): update module github.com/google/go-cmp to v0.7.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6359](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6359)
- chore(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6355](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6355)
- chore(deps): update module
github.com/gaijinentertainment/go-exhaustruct/v3 to v3.3.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6361](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6361)
- chore(deps): update python:3.13.2-slim-bullseye docker digest to
[`d3852c9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/d3852c9)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6367](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6367)
- chore(deps): update module golang.org/x/crypto to v0.35.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6366](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6366)
- \[chore] clean up revive configuration by
[@&#8203;mmorel-35](https://redirect.github.com/mmorel-35) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6353](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6353)
- chore(deps): update python:3.13.2-slim-bullseye docker digest to
[`31b581c`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/31b581c)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6370](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6370)
- chore(deps): update module go.opentelemetry.io/build-tools to v0.19.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6374](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6374)
- chore(deps): update module github.com/bombsimon/wsl/v4 to v4.6.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6373](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6373)
- fix(deps): update build-tools to v0.19.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6376](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6376)
- chore(deps): update actions/download-artifact digest to
[`cc20338`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/cc20338)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6377](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6377)
- sdk/trace: Fix goroutine leak in simpleSpanProcessor.Shutdown by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6368](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6368)
- chore(deps): update codecov/codecov-action action to v5.4.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6380](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6380)
- chore(deps): update module github.com/catenacyber/perfsprint to v0.9.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6379](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6379)
- sdk/trace: Fix gorountine leak in batchSpanProcessor.ForceFlush by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6369](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6369)
- chore(deps): update module github.com/protonmail/go-crypto to v1.1.6
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6383](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6383)
- chore(deps): update module github.com/go-git/go-git/v5 to v5.14.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6385](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6385)
- chore(deps): update actions/cache digest to
[`d4323d4`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/d4323d4)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6384](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6384)
- chore(deps): update module github.com/kkhaike/contextcheck to v1.1.6
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6387](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6387)
- chore(deps): update module 4d63.com/gocheckcompilerdirectives to
v1.3.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6388](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6388)
- fix(deps): update golang.org/x to
[`dead583`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/dead583)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6389](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6389)
- chore(deps): update mvdan.cc/unparam digest to
[`0df0534`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/0df0534)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6391](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6391)
- fix(deps): update module github.com/golangci/golangci-lint to v1.64.6
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6394](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6394)
- chore(deps): update github.com/golangci/dupl digest to
[`44c6a0b`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/44c6a0b)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6398](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6398)
- Look at stale issues in ascending order by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6396](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6396)
- fix(deps): update build-tools to v0.20.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6403](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6403)
- Move trace sdk tests from trace_test into trace package by
[@&#8203;dashpole](https://redirect.github.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6400](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6400)
- fix(deps): update module google.golang.org/grpc to v1.71.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6409](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6409)
- chore(deps): update module github.com/ryancurrah/gomodguard to v1.4.1
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6411](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6411)
- chore(deps): update module github.com/securego/gosec/v2 to v2.22.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6412](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6412)
- Release v1.35.0/v0.57.0/v0.11.0 by
[@&#8203;XSAM](https://redirect.github.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6407](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6407)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.34.0...v1.35.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-06 02:58:01 +00:00
renovate[bot] 5c2c64f878
fix(deps): update module google.golang.org/grpc to v1.71.0 (#1578)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.70.0` -> `v1.71.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.71.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.71.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.70.0/v1.71.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.70.0/v1.71.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.71.0`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.71.0):
Release 1.71.0

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.70.0...v1.71.0)

### API Changes

- balancer: Custom LB policies that record metrics must use the new
`MetricsRecorder` method on `Balancer.ClientConn` instead of the removed
`Balancer.BuildOptions.MetricsRecorder` field to obtain a metrics
recorder.
([#&#8203;8027](https://redirect.github.com/grpc/grpc-go/issues/8027))
- balancer: `balancer.ClientConn` implementations must now embed a
delegate implementation. This allows grpc-go to add new methods to the
interface and remain backward compatible.
([#&#8203;8026](https://redirect.github.com/grpc/grpc-go/issues/8026))
- balancer/endpointsharding: The constructor accepts the child
balancer's builder and a struct with optional configuration.
([#&#8203;8052](https://redirect.github.com/grpc/grpc-go/issues/8052))

### New Features

- xds: Add support for dualstack via the
[additional_addresses](df394a41c8/api/envoy/config/endpoint/v3/endpoint_components.proto (L91-L96))
field in the Endpoint resource. To disable this feature, set the
environment variable `GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS=false`.
([#&#8203;8134](https://redirect.github.com/grpc/grpc-go/issues/8134))
- stats/opentelemetry: Add experimental support for OpenTelemetry
tracing.
([#&#8203;7852](https://redirect.github.com/grpc/grpc-go/issues/7852))
- xds/internal/xdsclient: Add counter metrics for valid and invalid
resource updates.
([#&#8203;8038](https://redirect.github.com/grpc/grpc-go/issues/8038))
- balancer/leastrequest, roundrobin: Add dualstack support.
([#&#8203;7969](https://redirect.github.com/grpc/grpc-go/issues/7969),
[#&#8203;7966](https://redirect.github.com/grpc/grpc-go/issues/7966))
- balancer/endpointsharding: Balancers created with the new
`DisableAutoReconnect` option will not attempt to call `ExitIdle`
automatically on their children when the children report idle.
([#&#8203;8052](https://redirect.github.com/grpc/grpc-go/issues/8052))

### Bug Fixes

- client: Fix support for proxies when using `grpc.NewClient` so the
target is resolved by the proxy as expected.
([#&#8203;7881](https://redirect.github.com/grpc/grpc-go/issues/7881))
- Added `WithLocalDNSResolution()` dial option to explicitly force
target resolution on the client instead.
([#&#8203;7881](https://redirect.github.com/grpc/grpc-go/issues/7881))
- weightedtarget: Return erroring picker when no targets are configured.
([#&#8203;8070](https://redirect.github.com/grpc/grpc-go/issues/8070))
- xds: Fail RPCs with `UNAVAILABLE` when the EDS resource is missing or
contains no endpoints
([#&#8203;8070](https://redirect.github.com/grpc/grpc-go/issues/8070))
- xdsclient: Fix a bug where connectivity failures were reported to
resource watchers before trying all listed servers.
([#&#8203;8075](https://redirect.github.com/grpc/grpc-go/issues/8075))
- grpc: Fix the number of bytes reported in the error message when
encoded messages are larger than 4GB.
([#&#8203;8033](https://redirect.github.com/grpc/grpc-go/issues/8033))
- rls: Fix a bug where RLS channel updates could be lost during startup.
([#&#8203;8055](https://redirect.github.com/grpc/grpc-go/issues/8055))
- xds: Fixed a bug preventing tests from creating multiple servers or
channels with different bootstrap configs.
([#&#8203;8050](https://redirect.github.com/grpc/grpc-go/issues/8050))
- grpc: Fix message length checks when compression is enabled and
`maxReceiveMessageSize` is `MaxInt`
([#&#8203;7918](https://redirect.github.com/grpc/grpc-go/issues/7918))
- Special Thanks:
[@&#8203;vinothkumarr227](https://redirect.github.com/vinothkumarr227)

### Documentation

- client: Improve documentation of `grpc.NewClient` and
`ClientConn.CanonicalTarget` by providing examples.
([#&#8203;8078](https://redirect.github.com/grpc/grpc-go/issues/8078))
- examples/features/dualstack: New example demonstrating usage of
endpoints and dualstack functionality.
([#&#8203;8098](https://redirect.github.com/grpc/grpc-go/issues/8098))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-05 02:05:07 +00:00
renovate[bot] cd95193f71
fix(deps): update module github.com/prometheus/client_golang to v1.21.1 (#1576)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.21.0` -> `v1.21.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.21.0/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.21.0/v1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prometheus/client_golang
(github.com/prometheus/client_golang)</summary>

###
[`v1.21.1`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.21.1):
/ 2025-03-04

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.21.0...v1.21.1)

This release addresses a major performance regression introduced in
[#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)
-- thanks to all who [reported this
quickly](https://redirect.github.com/prometheus/client_golang/issues/1748):
[@&#8203;chlunde](https://redirect.github.com/chlunde),
[@&#8203;dethi](https://redirect.github.com/dethi),
[@&#8203;aaronbee](https://redirect.github.com/aaronbee)
[@&#8203;tsuna](https://redirect.github.com/tsuna) 💪🏽. This patch
release also fixes the iOS build.

We will be hardening the release process even further
([#&#8203;1759](https://redirect.github.com/prometheus/client_golang/issues/1759),
[#&#8203;1761](https://redirect.github.com/prometheus/client_golang/issues/1761))
to prevent this in future, sorry for the inconvenience!

The high concurrency optimization is planned to be eventually
reintroduced, however in a much safer manner, potentially in a separate
API.

- \[BUGFIX] prometheus: Revert of `Inc`, `Add` and `Observe` cumulative
metric CAS optimizations
([#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)),
causing regressions on low concurrency cases
[#&#8203;1757](https://redirect.github.com/prometheus/client_golang/issues/1757)
- \[BUGFIX] prometheus: Fix GOOS=ios build, broken due to
process_collector_\* wrong build tags.
[#&#8203;1758](https://redirect.github.com/prometheus/client_golang/issues/1758)

<details>
<summary>All commits</summary>

- Revert "exponential backoff for CAS operations on floats" and cut
1.21.1 by [@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1757](https://redirect.github.com/prometheus/client_golang/pull/1757)
- Fix ios build for 1.21.1 by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1758](https://redirect.github.com/prometheus/client_golang/pull/1758)

</details>

**Full Changelog**:
https://github.com/prometheus/client_golang/compare/v1.21.0...v1.21.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-04 23:02:32 +00:00
renovate[bot] 6094dce5c0
fix(deps): update module connectrpc.com/otelconnect to v0.7.2 (#1574)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[connectrpc.com/otelconnect](https://redirect.github.com/connectrpc/otelconnect-go)
| `v0.7.1` -> `v0.7.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/connectrpc.com%2fotelconnect/v0.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/connectrpc.com%2fotelconnect/v0.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/connectrpc.com%2fotelconnect/v0.7.1/v0.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/connectrpc.com%2fotelconnect/v0.7.1/v0.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>connectrpc/otelconnect-go
(connectrpc.com/otelconnect)</summary>

###
[`v0.7.2`](https://redirect.github.com/connectrpc/otelconnect-go/releases/tag/v0.7.2)

[Compare
Source](https://redirect.github.com/connectrpc/otelconnect-go/compare/v0.7.1...v0.7.2)

#### What's Changed

##### Enhancements

- Reduce unnecessary allocations in interceptors by
[@&#8203;pkwarren](https://redirect.github.com/pkwarren) in
[#&#8203;185](https://redirect.github.com/connectrpc/otelconnect-go/issues/185)

##### Other changes

- Fixup links by
[@&#8203;stefanvanburen](https://redirect.github.com/stefanvanburen) in
[#&#8203;181](https://redirect.github.com/connectrpc/otelconnect-go/issues/181)

#### New Contributors

- [@&#8203;stefanvanburen](https://redirect.github.com/stefanvanburen)
made their first contribution in
[#&#8203;181](https://redirect.github.com/connectrpc/otelconnect-go/issues/181)

**Full Changelog**:
https://github.com/connectrpc/otelconnect-go/compare/v0.7.1...v0.7.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-01 19:37:16 +00:00
alexandraoberaigner e2203a13ca
fix: add support for unix socket connection in sync service (#1518) (#1560)
## This PR
adds support for unix sockets in sync service

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #1518

### How to test
start flagd with the new option `-e /tmp/socketpath` and try to connect
with an in-process provider to the same socket path & request a flag

---------

Signed-off-by: Alexandra Oberaigner <alexandra.oberaigner@dynatrace.com>
Signed-off-by: alexandraoberaigner <82218944+alexandraoberaigner@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-02-24 22:51:39 -05:00
renovate[bot] e151b1f975
fix(deps): update module github.com/open-feature/flagd/core to v0.11.2 (#1570)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.11.1` -> `v0.11.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.1/v0.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.1/v0.11.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-feature/flagd
(github.com/open-feature/flagd/core)</summary>

###
[`v0.11.2`](https://redirect.github.com/open-feature/flagd/releases/tag/flagd/v0.11.2):
flagd: v0.11.2

##### 🐛 Bug Fixes

- **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20240215170432-1e611e2999cc.1
([#&#8203;1372](https://redirect.github.com/open-feature/flagd/issues/1372))
([ae24595](ae2459504f))
- **deps:** update module github.com/open-feature/flagd/core to v0.10.1
([#&#8203;1355](https://redirect.github.com/open-feature/flagd/issues/1355))
([8fcfb14](8fcfb146b0))
- **deps:** update module golang.org/x/net to v0.28.0
([#&#8203;1380](https://redirect.github.com/open-feature/flagd/issues/1380))
([239a432](239a432c18))
- **deps:** update module golang.org/x/sync to v0.8.0
([#&#8203;1378](https://redirect.github.com/open-feature/flagd/issues/1378))
([4804c17](4804c17a67))

##### 🧹 Chore

- **deps:** update dependency go to v1.22.6
([#&#8203;1297](https://redirect.github.com/open-feature/flagd/issues/1297))
([50b92c1](50b92c17cf))
- **deps:** update golang docker tag to v1.23
([#&#8203;1382](https://redirect.github.com/open-feature/flagd/issues/1382))
([abb5ca3](abb5ca3e31))
- improve gRPC sync service shutdown behavior
([#&#8203;1375](https://redirect.github.com/open-feature/flagd/issues/1375))
([79d9085](79d9085a50))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-23 11:27:01 +00:00
renovate[bot] 6e9dbd2dbf
fix(deps): update module github.com/google/go-cmp to v0.7.0 (#1569)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/google/go-cmp](https://redirect.github.com/google/go-cmp)
| `v0.6.0` -> `v0.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fgoogle%2fgo-cmp/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fgoogle%2fgo-cmp/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fgoogle%2fgo-cmp/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fgoogle%2fgo-cmp/v0.6.0/v0.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>google/go-cmp (github.com/google/go-cmp)</summary>

###
[`v0.7.0`](https://redirect.github.com/google/go-cmp/releases/tag/v0.7.0)

[Compare
Source](https://redirect.github.com/google/go-cmp/compare/v0.6.0...v0.7.0)

New API:

- ([#&#8203;367](https://redirect.github.com/google/go-cmp/issues/367))
Support compare functions with SortSlices and SortMaps

Panic messaging:

- ([#&#8203;370](https://redirect.github.com/google/go-cmp/issues/370))
Detect proto.Message types when failing to export a field

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-22 01:53:21 +00:00
github-actions[bot] e199e33d21
chore: release main (#1546)
Signed-off-by: OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>
2025-02-21 15:59:21 -05:00
Michael Beemer 57fcca7d92
docs: add rust provider
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-21 19:50:42 +00:00
katsumata(TK) cd3c3c6e4b
docs: fix url for flags.json (#1553)
Signed-off-by: katsumata <12413150+winor30@users.noreply.github.com>
2025-02-21 08:05:41 -05:00
cupofcat 1a97ca5f81
feat: Adding gRPC dial option override to grpc_sync.go (#1563)
Signed-off-by: Maks Osowski <maks@google.com>
2025-02-20 16:54:30 -05:00
renovate[bot] a3d41625a2
fix(deps): update module github.com/prometheus/client_golang to v1.21.0 (#1568)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.20.5` -> `v1.21.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.20.5/v1.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.20.5/v1.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prometheus/client_golang
(github.com/prometheus/client_golang)</summary>

###
[`v1.21.0`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.21.0):
/ 2025-02-19

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.5...v1.21.0)

⚠️ This release contains potential breaking change if you upgrade
`github.com/prometheus/common` to 0.62+ together with client_golang (and
depend on the strict, legacy validation for the label names). New common
version [changes `model.NameValidationScheme` global
variable](https://redirect.github.com/prometheus/common/pull/724), which
relaxes the validation of label names and metric name, allowing all
UTF-8 characters. Typically, this should not break any user, unless your
test or usage expects strict certain names to panic/fail on
client_golang metric registration, gathering or scrape. In case of
problems change `model.NameValidationScheme` to old
`model.LegacyValidation` value in your project `init` function.
⚠️

- \[BUGFIX] gocollector: Fix help message for runtime/metric metrics.
[#&#8203;1583](https://redirect.github.com/prometheus/client_golang/issues/1583)
- \[BUGFIX] prometheus: Fix `Desc.String()` method for no labels case.
[#&#8203;1687](https://redirect.github.com/prometheus/client_golang/issues/1687)
- \[PERF] prometheus: Optimize popular `prometheus.BuildFQName`
function; now up to 30% faster.
[#&#8203;1665](https://redirect.github.com/prometheus/client_golang/issues/1665)
- \[PERF] prometheus: Optimize `Inc`, `Add` and `Observe` cumulative
metrics; now up to 50% faster under high concurrent contention.
[#&#8203;1661](https://redirect.github.com/prometheus/client_golang/issues/1661)
- \[CHANGE] Upgrade prometheus/common to 0.62.0 which changes
`model.NameValidationScheme` global variable.
[#&#8203;1712](https://redirect.github.com/prometheus/client_golang/issues/1712)
- \[CHANGE] Add support for Go 1.23.
[#&#8203;1602](https://redirect.github.com/prometheus/client_golang/issues/1602)
- \[FEATURE] process_collector: Add support for Darwin systems.
[#&#8203;1600](https://redirect.github.com/prometheus/client_golang/issues/1600)
[#&#8203;1616](https://redirect.github.com/prometheus/client_golang/issues/1616)
[#&#8203;1625](https://redirect.github.com/prometheus/client_golang/issues/1625)
[#&#8203;1675](https://redirect.github.com/prometheus/client_golang/issues/1675)
[#&#8203;1715](https://redirect.github.com/prometheus/client_golang/issues/1715)
- \[FEATURE] api: Add ability to invoke `CloseIdleConnections` on
api.Client using `api.Client.(CloseIdler).CloseIdleConnections()`
casting.
[#&#8203;1513](https://redirect.github.com/prometheus/client_golang/issues/1513)
- \[FEATURE] promhttp: Add
`promhttp.HandlerOpts.EnableOpenMetricsTextCreatedSamples` option to
create OpenMetrics \_created lines. Not recommended unless you want to
use opt-in Created Timestamp feature. Community works on OpenMetrics 2.0
format that should make those lines obsolete (they increase cardinality
significantly).
[#&#8203;1408](https://redirect.github.com/prometheus/client_golang/issues/1408)
- \[FEATURE] prometheus: Add `NewConstNativeHistogram` function.
[#&#8203;1654](https://redirect.github.com/prometheus/client_golang/issues/1654)

<details>
<summary> All commits </summary>
* Merge release-1.20 to main by @&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1582
* gocollector: Tiny fix for help message with runtime/metrics source. by
@&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1583
* ci: bump dagger to the latest version by @&#8203;marcosnils in
https://github.com/prometheus/client_golang/pull/1588
* Merge release-1.20 back to main by @&#8203;ArthurSens in
https://github.com/prometheus/client_golang/pull/1593
* Update linting by @&#8203;SuperQ in
https://github.com/prometheus/client_golang/pull/1603
* Update supported Go versions by @&#8203;SuperQ in
https://github.com/prometheus/client_golang/pull/1602
* build(deps): bump golang.org/x/sys from 0.22.0 to 0.24.0 by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1611
* build(deps): bump github.com/prometheus/common from 0.55.0 to 0.57.0
by @&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1612
* changed the name of all variables with min/max name by
@&#8203;parthlaw in
https://github.com/prometheus/client_golang/pull/1606
* Update Dagger and build. by @&#8203;SuperQ in
https://github.com/prometheus/client_golang/pull/1610
* build(deps): bump github/codeql-action from 3.25.15 to 3.26.6 in the
github-actions group across 1 directory by @&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1614
* examples: Improved GoCollector example. by @&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1589
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1615
* process_collector: fill in most statistics on macOS by
@&#8203;mharbison72 in
https://github.com/prometheus/client_golang/pull/1600
*  http client defer CloseIdleConnections by @&#8203;cuisongliu in
https://github.com/prometheus/client_golang/pull/1513
* Set allow-utf-8 in Format during tests to avoid escaping. by
@&#8203;ywwg in https://github.com/prometheus/client_golang/pull/1618
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1622
* Merge Release 1.20 back to main by @&#8203;ArthurSens in
https://github.com/prometheus/client_golang/pull/1627
* examples: Add custom labels example by @&#8203;ying-jeanne in
https://github.com/prometheus/client_golang/pull/1626
* Refactor default runtime metrics tests for Go collector so that
default runtime metric set autogenerates by @&#8203;vesari in
https://github.com/prometheus/client_golang/pull/1631
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1628
* process_xxx_memory statistics for macOS (cgo) by @&#8203;mharbison72
in https://github.com/prometheus/client_golang/pull/1616
* build(deps): bump github.com/klauspost/compress from 1.17.9 to 1.17.10
by @&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1633
* build(deps): bump golang.org/x/sys from 0.24.0 to 0.25.0 by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1632
* process_collector: Add Platform-Specific Describe for processCollector
by @&#8203;ying-jeanne in
https://github.com/prometheus/client_golang/pull/1625
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1635
* build(deps): bump the github-actions group with 4 updates by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1634
* Optionally print OM created lines by @&#8203;ArthurSens in
https://github.com/prometheus/client_golang/pull/1408
* process_collector: merge wasip1 and js into a single implementation by
@&#8203;ying-jeanne in
https://github.com/prometheus/client_golang/pull/1644
* Merge release 1.20 to main by @&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1647
* Add Arianna as maintainer 💪 by @&#8203;ArthurSens in
https://github.com/prometheus/client_golang/pull/1651
* test add headers round tripper by @&#8203;Manask322 in
https://github.com/prometheus/client_golang/pull/1657
* build(deps): bump github.com/klauspost/compress from 1.17.10 to
1.17.11 by @&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1668
* build(deps): bump golang.org/x/sys from 0.25.0 to 0.26.0 by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1669
* build(deps): bump github.com/prometheus/common from 0.59.1 to 0.60.1
by @&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1667
* build(deps): bump google.golang.org/protobuf from 1.34.2 to 1.35.1 by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1670
* Optimize BuildFQName function by @&#8203;jkroepke in
https://github.com/prometheus/client_golang/pull/1665
* fix: use injected now() instead of time.Now() in summary methods by
@&#8203;imorph in https://github.com/prometheus/client_golang/pull/1672
* process_collector: avoid a compiler warning on macOS (fixes
#&#8203;1660) by @&#8203;mharbison72 in
https://github.com/prometheus/client_golang/pull/1675
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1674
* build(deps): bump the github-actions group across 1 directory with 3
updates by @&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1678
* [chore]: enable perfsprint linter by @&#8203;mmorel-35 in
https://github.com/prometheus/client_golang/pull/1676
* Duplicate of #&#8203;1662 by @&#8203;imorph in
https://github.com/prometheus/client_golang/pull/1673
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1679
* chore: enable usestdlibvars linter by @&#8203;mmorel-35 in
https://github.com/prometheus/client_golang/pull/1680
* Add: exponential backoff for CAS operations on floats by
@&#8203;imorph in https://github.com/prometheus/client_golang/pull/1661
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1683
* [1617] Add ConstnativeHistogram by @&#8203;shivanthzen in
https://github.com/prometheus/client_golang/pull/1654
* fix: replace fmt.Errorf with errors.New by @&#8203;kakkoyun in
https://github.com/prometheus/client_golang/pull/1689
* Add codeowners by @&#8203;kakkoyun in
https://github.com/prometheus/client_golang/pull/1688
* fix: add very small delay between observations in
`TestHistogramAtomicObserve` by @&#8203;imorph in
https://github.com/prometheus/client_golang/pull/1691
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1692
* Fix: handle nil variableLabels in Desc.String() method and add tests
for nil label values by @&#8203;kakkoyun in
https://github.com/prometheus/client_golang/pull/1687
* examples: Follow best practices and established naming conventions by
@&#8203;lilic in https://github.com/prometheus/client_golang/pull/1650
* setup OSSF Scorecard workflow by @&#8203;mmorel-35 in
https://github.com/prometheus/client_golang/pull/1432
* build(deps): bump google.golang.org/protobuf from 1.35.1 to 1.35.2 by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1697
* build(deps): bump golang.org/x/sys from 0.26.0 to 0.27.0 by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1696
* build(deps): bump the github-actions group with 5 updates by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1695
* update links to openmetrics to reference the v1.0.0 release by
@&#8203;dashpole in
https://github.com/prometheus/client_golang/pull/1699
* build(deps): bump google.golang.org/protobuf from 1.35.2 to 1.36.1 by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1706
* build(deps): bump golang.org/x/sys from 0.27.0 to 0.28.0 by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1705
* build(deps): bump the github-actions group with 5 updates by
@&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1707
* build(deps): bump github.com/prometheus/common from 0.60.1 to 0.61.0
by @&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1704
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1703
* Synchronize common files from prometheus/prometheus by @&#8203;prombot
in https://github.com/prometheus/client_golang/pull/1708
* Upgrade to prometheus/common 0.62.0 with breaking change by
@&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1712
* build(deps): bump golang.org/x/net from 0.26.0 to 0.33.0 in
/tutorials/whatsup by @&#8203;dependabot in
https://github.com/prometheus/client_golang/pull/1713
* docs: Add RELEASE.md for the release process by @&#8203;kakkoyun in
https://github.com/prometheus/client_golang/pull/1690
* tutorials/whatsup: Updated deps by @&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1716
* process collector: Fixed pedantic registry failures on darwin with
cgo. by @&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1715
* Revert "ci: daggerize test and lint pipelines (#&#8203;1534)" by
@&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1717
* Cut 1.21.0-rc.0 by @&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1718
* Cut 1.21 by @&#8203;bwplotka in
https://github.com/prometheus/client_golang/pull/1737
</details>

##### New Contributors
* @&#8203;parthlaw made their first
contributi[https://github.com/prometheus/client_golang/pull/1606](https://redirect.github.com/prometheus/client_golang/pull/1606)l/1606
* @&#8203;mharbison72 made their first
contributi[https://github.com/prometheus/client_golang/pull/1600](https://redirect.github.com/prometheus/client_golang/pull/1600)l/1600
* @&#8203;cuisongliu made their first
contributi[https://github.com/prometheus/client_golang/pull/1513](https://redirect.github.com/prometheus/client_golang/pull/1513)l/1513
* @&#8203;ying-jeanne made their first
contributi[https://github.com/prometheus/client_golang/pull/1626](https://redirect.github.com/prometheus/client_golang/pull/1626)l/1626
* @&#8203;Manask322 made their first
contributi[https://github.com/prometheus/client_golang/pull/1657](https://redirect.github.com/prometheus/client_golang/pull/1657)l/1657
* @&#8203;jkroepke made their first
contributi[https://github.com/prometheus/client_golang/pull/1665](https://redirect.github.com/prometheus/client_golang/pull/1665)l/1665
* @&#8203;imorph made their first
contributi[https://github.com/prometheus/client_golang/pull/1672](https://redirect.github.com/prometheus/client_golang/pull/1672)l/1672
* @&#8203;mmorel-35 made their first
contributi[https://github.com/prometheus/client_golang/pull/1676](https://redirect.github.com/prometheus/client_golang/pull/1676)l/1676
* @&#8203;shivanthzen made their first
contributi[https://github.com/prometheus/client_golang/pull/1654](https://redirect.github.com/prometheus/client_golang/pull/1654)l/1654
* @&#8203;dashpole made their first
contributi[https://github.com/prometheus/client_golang/pull/1699](https://redirect.github.com/prometheus/client_golang/pull/1699)l/1699

**Full Changelog**:
https://github.com/prometheus/client_golang/compare/v1.20.5...v1.21.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-19 17:13:05 +00:00
renovate[bot] a48cc80239
fix(deps): update module github.com/spf13/cobra to v1.9.1 (#1566)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/spf13/cobra](https://redirect.github.com/spf13/cobra) |
`v1.9.0` -> `v1.9.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fspf13%2fcobra/v1.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fspf13%2fcobra/v1.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fspf13%2fcobra/v1.9.0/v1.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fspf13%2fcobra/v1.9.0/v1.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>spf13/cobra (github.com/spf13/cobra)</summary>

###
[`v1.9.1`](https://redirect.github.com/spf13/cobra/releases/tag/v1.9.1)

[Compare
Source](https://redirect.github.com/spf13/cobra/compare/v1.9.0...v1.9.1)

##### 🐛 Fixes

- Fix CompletionFunc implementation by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[https://github.com/spf13/cobra/pull/2234](https://redirect.github.com/spf13/cobra/pull/2234)
- Revert "Make detection for test-binary more universal
([#&#8203;2173](https://redirect.github.com/spf13/cobra/issues/2173))"
by [@&#8203;marckhouzam](https://redirect.github.com/marckhouzam) in
[https://github.com/spf13/cobra/pull/2235](https://redirect.github.com/spf13/cobra/pull/2235)

**Full Changelog**:
https://github.com/spf13/cobra/compare/v1.9.0...v1.9.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-17 07:25:21 +00:00
renovate[bot] 345d2a9207
fix(deps): update module github.com/spf13/cobra to v1.9.0 (#1564)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/spf13/cobra](https://redirect.github.com/spf13/cobra) |
`v1.8.1` -> `v1.9.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fspf13%2fcobra/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fspf13%2fcobra/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fspf13%2fcobra/v1.8.1/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fspf13%2fcobra/v1.8.1/v1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>spf13/cobra (github.com/spf13/cobra)</summary>

###
[`v1.9.0`](https://redirect.github.com/spf13/cobra/releases/tag/v1.9.0)

[Compare
Source](https://redirect.github.com/spf13/cobra/compare/v1.8.1...v1.9.0)

####  Features

- Allow linker to perform deadcode elimination for program using Cobra
by [@&#8203;aarzilli](https://redirect.github.com/aarzilli) in
[https://github.com/spf13/cobra/pull/1956](https://redirect.github.com/spf13/cobra/pull/1956)
- Add default completion command even if there are no other sub-commands
by [@&#8203;marckhouzam](https://redirect.github.com/marckhouzam) in
[https://github.com/spf13/cobra/pull/1559](https://redirect.github.com/spf13/cobra/pull/1559)
- Add CompletionWithDesc helper by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[https://github.com/spf13/cobra/pull/2231](https://redirect.github.com/spf13/cobra/pull/2231)

#### 🐛 Fixes

- Fix deprecation comment for Command.SetOutput by
[@&#8203;thaJeztah](https://redirect.github.com/thaJeztah) in
[https://github.com/spf13/cobra/pull/2172](https://redirect.github.com/spf13/cobra/pull/2172)
- fix(completions): Complete map flags multiple times by
[@&#8203;gabe565](https://redirect.github.com/gabe565) in
[https://github.com/spf13/cobra/pull/2174](https://redirect.github.com/spf13/cobra/pull/2174)
- Replace deprecated ioutil usage by
[@&#8203;nirs](https://redirect.github.com/nirs) in
[https://github.com/spf13/cobra/pull/2181](https://redirect.github.com/spf13/cobra/pull/2181)
- Fix --version help and output for plugins by
[@&#8203;nirs](https://redirect.github.com/nirs) in
[https://github.com/spf13/cobra/pull/2180](https://redirect.github.com/spf13/cobra/pull/2180)
- Allow to reset the templates to the default by
[@&#8203;marckhouzam](https://redirect.github.com/marckhouzam) in
[https://github.com/spf13/cobra/pull/2229](https://redirect.github.com/spf13/cobra/pull/2229)

#### 🤖 Completions

- Make Powershell completion work in constrained mode by
[@&#8203;lstemplinger](https://redirect.github.com/lstemplinger) in
[https://github.com/spf13/cobra/pull/2196](https://redirect.github.com/spf13/cobra/pull/2196)
- Improve detection for flags that accept multiple values by
[@&#8203;thaJeztah](https://redirect.github.com/thaJeztah) in
[https://github.com/spf13/cobra/pull/2210](https://redirect.github.com/spf13/cobra/pull/2210)
- add CompletionFunc type to help with completions by
[@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) in
[https://github.com/spf13/cobra/pull/2220](https://redirect.github.com/spf13/cobra/pull/2220)
- Add similar whitespace escape logic to bash v2 completions than in
other completions by
[@&#8203;kangasta](https://redirect.github.com/kangasta) in
[https://github.com/spf13/cobra/pull/1743](https://redirect.github.com/spf13/cobra/pull/1743)
- Print ActiveHelp for bash along other completions by
[@&#8203;marckhouzam](https://redirect.github.com/marckhouzam) in
[https://github.com/spf13/cobra/pull/2076](https://redirect.github.com/spf13/cobra/pull/2076)
- fix(bash): nounset unbound file filter variable on empty extension by
[@&#8203;scop](https://redirect.github.com/scop) in
[https://github.com/spf13/cobra/pull/2228](https://redirect.github.com/spf13/cobra/pull/2228)

#### 🧪 Testing

- Test also with go 1.23 by
[@&#8203;nirs](https://redirect.github.com/nirs) in
[https://github.com/spf13/cobra/pull/2182](https://redirect.github.com/spf13/cobra/pull/2182)
- Make detection for test-binary more universal by
[@&#8203;thaJeztah](https://redirect.github.com/thaJeztah) in
[https://github.com/spf13/cobra/pull/2173](https://redirect.github.com/spf13/cobra/pull/2173)

#### ✍🏼 Documentation

- docs: update README.md by
[@&#8203;eltociear](https://redirect.github.com/eltociear) in
[https://github.com/spf13/cobra/pull/2197](https://redirect.github.com/spf13/cobra/pull/2197)
- Improve site formatting by
[@&#8203;nirs](https://redirect.github.com/nirs) in
[https://github.com/spf13/cobra/pull/2183](https://redirect.github.com/spf13/cobra/pull/2183)
- doc: add Conduit by [@&#8203;raulb](https://redirect.github.com/raulb)
in
[https://github.com/spf13/cobra/pull/2230](https://redirect.github.com/spf13/cobra/pull/2230)
- doc: azion project added to the list of CLIs that use cobra by
[@&#8203;maxwelbm](https://redirect.github.com/maxwelbm) in
[https://github.com/spf13/cobra/pull/2198](https://redirect.github.com/spf13/cobra/pull/2198)
- Fix broken links in active_help.md by
[@&#8203;vuil](https://redirect.github.com/vuil) in
[https://github.com/spf13/cobra/pull/2202](https://redirect.github.com/spf13/cobra/pull/2202)
- chore: fix function name in comment by
[@&#8203;zhuhaicity](https://redirect.github.com/zhuhaicity) in
[https://github.com/spf13/cobra/pull/2216](https://redirect.github.com/spf13/cobra/pull/2216)

#### 🔧 Dependency upgrades

- build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.5 to 2.0.6
by [@&#8203;thaJeztah](https://redirect.github.com/thaJeztah) in
[https://github.com/spf13/cobra/pull/2206](https://redirect.github.com/spf13/cobra/pull/2206)
- Update to latest go-md2man by
[@&#8203;mikelolasagasti](https://redirect.github.com/mikelolasagasti)
in
[https://github.com/spf13/cobra/pull/2201](https://redirect.github.com/spf13/cobra/pull/2201)
- Upgrade `pflag` dependencies for v1.9.0 by
[@&#8203;jpmcb](https://redirect.github.com/jpmcb) in
[https://github.com/spf13/cobra/pull/2233](https://redirect.github.com/spf13/cobra/pull/2233)

***

Thank you to all of our amazing contributors and all the great work
that's been going into the completions feature!!

##### 👋🏼 New Contributors

- [@&#8203;gabe565](https://redirect.github.com/gabe565) made their
first contribution in
[https://github.com/spf13/cobra/pull/2174](https://redirect.github.com/spf13/cobra/pull/2174)
- [@&#8203;maxwelbm](https://redirect.github.com/maxwelbm) made their
first contribution in
[https://github.com/spf13/cobra/pull/2198](https://redirect.github.com/spf13/cobra/pull/2198)
- [@&#8203;lstemplinger](https://redirect.github.com/lstemplinger) made
their first contribution in
[https://github.com/spf13/cobra/pull/2196](https://redirect.github.com/spf13/cobra/pull/2196)
- [@&#8203;vuil](https://redirect.github.com/vuil) made their first
contribution in
[https://github.com/spf13/cobra/pull/2202](https://redirect.github.com/spf13/cobra/pull/2202)
- [@&#8203;mikelolasagasti](https://redirect.github.com/mikelolasagasti)
made their first contribution in
[https://github.com/spf13/cobra/pull/2201](https://redirect.github.com/spf13/cobra/pull/2201)
- [@&#8203;zhuhaicity](https://redirect.github.com/zhuhaicity) made
their first contribution in
[https://github.com/spf13/cobra/pull/2216](https://redirect.github.com/spf13/cobra/pull/2216)
- [@&#8203;ccoVeille](https://redirect.github.com/ccoVeille) made their
first contribution in
[https://github.com/spf13/cobra/pull/2220](https://redirect.github.com/spf13/cobra/pull/2220)
- [@&#8203;kangasta](https://redirect.github.com/kangasta) made their
first contribution in
[https://github.com/spf13/cobra/pull/1743](https://redirect.github.com/spf13/cobra/pull/1743)
- [@&#8203;aarzilli](https://redirect.github.com/aarzilli) made their
first contribution in
[https://github.com/spf13/cobra/pull/1956](https://redirect.github.com/spf13/cobra/pull/1956)

**Full Changelog**:
https://github.com/spf13/cobra/compare/v1.8.1...v1.9.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-15 22:43:04 +00:00
renovate[bot] 130904c212
chore(deps): update golang docker tag to v1.24 (#1561)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang | stage | minor | `1.23-alpine` -> `1.24-alpine` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2Ny4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-13 03:39:57 +00:00
renovate[bot] 13146e5ac3
fix(deps): update module golang.org/x/net to v0.35.0 (#1557)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.34.0` -> `v0.35.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.34.0/v0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.34.0/v0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 11:13:06 +00:00
renovate[bot] 0dfa799566
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.7.4 (#1556)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://redirect.github.com/diegoholiveira/jsonlogic)
| `v3.7.3` -> `v3.7.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.3/v3.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.3/v3.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.7.4`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.7.4)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.7.3...v3.7.4)

#### What's Changed

- Replace range loops over operators with map lookups by
[@&#8203;juannorris](https://redirect.github.com/juannorris) in
[https://github.com/diegoholiveira/jsonlogic/pull/102](https://redirect.github.com/diegoholiveira/jsonlogic/pull/102)
- Fix minus with empty list by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/103](https://redirect.github.com/diegoholiveira/jsonlogic/pull/103)
- Fix div with empty list by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/104](https://redirect.github.com/diegoholiveira/jsonlogic/pull/104)

#### New Contributors

- [@&#8203;juannorris](https://redirect.github.com/juannorris) made
their first contribution in
[https://github.com/diegoholiveira/jsonlogic/pull/102](https://redirect.github.com/diegoholiveira/jsonlogic/pull/102)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.7.3...v3.7.4

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 04:42:00 +00:00
renovate[bot] 23afa9c18c
fix(deps): update golang.org/x/exp digest to 939b2ce (#1555)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/exp | require | digest | `f9890c6` -> `939b2ce` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-11 01:04:15 +00:00
Todd Baert 096aae5d9d
docs: metadata conceptual doc (#1550)
Adds a bit of conceptual docs about metadata. We already have lots of
detail on how to configure it, how it's merged in the `definitions`
page, and how it's implemented in in-process providers.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-02-10 11:36:14 -05:00
renovate[bot] 7cef153a27
fix(deps): update module golang.org/x/crypto to v0.33.0 (#1552)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.32.0` -> `v0.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.32.0/v0.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.32.0/v0.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-08 04:33:00 +00:00
renovate[bot] 02c4b42501
fix(deps): update golang.org/x/exp digest to f9890c6 (#1551)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/exp | require | digest | `e0ece0d` -> `f9890c6` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 08:21:43 +00:00
renovate[bot] d3eb44ed45
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.5-20250127221518-be6d1143b690.1 (#1549)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.36.4-20250127221518-be6d1143b690.1` ->
`v1.36.5-20250127221518-be6d1143b690.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.5-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.5-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.4-20250127221518-be6d1143b690.1/v1.36.5-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.4-20250127221518-be6d1143b690.1/v1.36.5-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 22:20:12 +00:00
renovate[bot] 7b2b7ccbdf
fix(deps): update module google.golang.org/protobuf to v1.36.5 (#1548)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/protobuf](https://redirect.github.com/protocolbuffers/protobuf-go)
| `v1.36.4` -> `v1.36.5` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.36.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fprotobuf/v1.36.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fprotobuf/v1.36.4/v1.36.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.36.4/v1.36.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.36.5`](https://redirect.github.com/protocolbuffers/protobuf-go/compare/v1.36.4...v1.36.5)

[Compare
Source](https://redirect.github.com/protocolbuffers/protobuf-go/compare/v1.36.4...v1.36.5)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 18:44:48 +00:00
Michael Beemer c9b936e44a
fix: enable SBOM generation and provenance in release workflow (#1547)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-04 15:17:54 -05:00
renovate[bot] ca663b5832
fix(deps): update module github.com/open-feature/flagd/core to v0.11.1 (#1545)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.11.0` -> `v0.11.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.0/v0.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.0/v0.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-feature/flagd
(github.com/open-feature/flagd/core)</summary>

###
[`v0.11.1`](https://redirect.github.com/open-feature/flagd/releases/tag/flagd/v0.11.1):
flagd: v0.11.1

##### 🐛 Bug Fixes

- **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.4.0-20240215170432-1e611e2999cc.2
([#&#8203;1342](https://redirect.github.com/open-feature/flagd/issues/1342))
([efdd921](efdd921399))
- **deps:** update module github.com/open-feature/flagd/core to v0.10.0
([#&#8203;1340](https://redirect.github.com/open-feature/flagd/issues/1340))
([1e487b4](1e487b4baf))
- **deps:** update module golang.org/x/net to v0.27.0
([#&#8203;1353](https://redirect.github.com/open-feature/flagd/issues/1353))
([df9834b](df9834bea2))
- **deps:** update module google.golang.org/grpc to v1.65.0
([#&#8203;1346](https://redirect.github.com/open-feature/flagd/issues/1346))
([72a6b87](72a6b876e8))
- **deps:** update opentelemetry-go monorepo
([#&#8203;1347](https://redirect.github.com/open-feature/flagd/issues/1347))
([37fb3cd](37fb3cd81d))
- invalid scoped-sync responses for empty flags
([#&#8203;1352](https://redirect.github.com/open-feature/flagd/issues/1352))
([51371d2](51371d25e2))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 20:11:16 +00:00
renovate[bot] 6fe7bd2a3e
fix(deps): update module golang.org/x/mod to v0.23.0 (#1544)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/mod | `v0.22.0` -> `v0.23.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.22.0/v0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.22.0/v0.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 19:50:11 +00:00
github-actions[bot] 82dc4e4c6c
chore: release main (#1542)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.1</summary>

##
[0.12.1](https://github.com/open-feature/flagd/compare/flagd/v0.12.0...flagd/v0.12.1)
(2025-02-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.11.0
([#1541](https://github.com/open-feature/flagd/issues/1541))
([986a436](986a436e10))
* **deps:** update module golang.org/x/sync to v0.11.0
([#1543](https://github.com/open-feature/flagd/issues/1543))
([7d6c0dc](7d6c0dc6e6))
</details>

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

##
[0.7.1](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.7.0...flagd-proxy/v0.7.1)
(2025-02-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.11.0
([#1541](https://github.com/open-feature/flagd/issues/1541))
([986a436](986a436e10))
* **deps:** update module golang.org/x/sync to v0.11.0
([#1543](https://github.com/open-feature/flagd/issues/1543))
([7d6c0dc](7d6c0dc6e6))
</details>

<details><summary>core: 0.11.1</summary>

##
[0.11.1](https://github.com/open-feature/flagd/compare/core/v0.11.0...core/v0.11.1)
(2025-02-04)


### 🐛 Bug Fixes

* **deps:** update module golang.org/x/sync to v0.11.0
([#1543](https://github.com/open-feature/flagd/issues/1543))
([7d6c0dc](7d6c0dc6e6))
</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>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-02-04 13:03:48 -05:00
Todd Baert 573bbfbf21 fix: sbom generation error
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-02-04 12:55:17 -05:00
renovate[bot] 7d6c0dc6e6
fix(deps): update module golang.org/x/sync to v0.11.0 (#1543)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/sync | `v0.10.0` -> `v0.11.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsync/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fsync/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fsync/v0.10.0/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsync/v0.10.0/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 17:48:38 +00:00
renovate[bot] 986a436e10
fix(deps): update module github.com/open-feature/flagd/core to v0.11.0 (#1541)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.10.8` -> `v0.11.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.8/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.8/v0.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-feature/flagd
(github.com/open-feature/flagd/core)</summary>

###
[`v0.11.0`](https://redirect.github.com/open-feature/flagd/releases/tag/flagd/v0.11.0):
flagd: v0.11.0

##### ⚠ BREAKING CHANGES

- support emitting errors from the bulk evaluator
([#&#8203;1338](https://redirect.github.com/open-feature/flagd/issues/1338))

##### 🐛 Bug Fixes

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

#####  New Features

- support `FLAGD_DEBUG` / `--debug` / `-x`
([#&#8203;1326](https://redirect.github.com/open-feature/flagd/issues/1326))
([298bd36](298bd36698))
- support emitting errors from the bulk evaluator
([#&#8203;1338](https://redirect.github.com/open-feature/flagd/issues/1338))
([b9c099c](b9c099cb7f))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE0NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 21:19:10 +00:00
github-actions[bot] a444b74685
chore: release main (#1527)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.12.0</summary>

##
[0.12.0](https://github.com/open-feature/flagd/compare/flagd/v0.11.8...flagd/v0.12.0)
(2025-01-31)


### ⚠ BREAKING CHANGES

* flagSetMetadata in OFREP/ResolveAll, core refactors
([#1540](https://github.com/open-feature/flagd/issues/1540))

### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/connectrpc/go to
v1.18.1-20250127221518-be6d1143b690.1
([#1535](https://github.com/open-feature/flagd/issues/1535))
([d5ec921](d5ec921f02))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20250127221518-be6d1143b690.2
([#1536](https://github.com/open-feature/flagd/issues/1536))
([e23060f](e23060f24b))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.4-20241220192239-696330adaff0.1
([#1529](https://github.com/open-feature/flagd/issues/1529))
([8881a80](8881a804b4))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.4-20250127221518-be6d1143b690.1
([#1537](https://github.com/open-feature/flagd/issues/1537))
([f74207b](f74207bc13))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.8
([#1526](https://github.com/open-feature/flagd/issues/1526))
([fbf2ed5](fbf2ed527f))
* **deps:** update module google.golang.org/grpc to v1.70.0
([#1528](https://github.com/open-feature/flagd/issues/1528))
([79b2b0a](79b2b0a6bb))


###  New Features

* flagSetMetadata in OFREP/ResolveAll, core refactors
([#1540](https://github.com/open-feature/flagd/issues/1540))
([b49abf9](b49abf9506))
</details>

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

##
[0.7.0](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.11...flagd-proxy/v0.7.0)
(2025-01-31)


### ⚠ BREAKING CHANGES

* flagSetMetadata in OFREP/ResolveAll, core refactors
([#1540](https://github.com/open-feature/flagd/issues/1540))

### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20250127221518-be6d1143b690.2
([#1536](https://github.com/open-feature/flagd/issues/1536))
([e23060f](e23060f24b))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.4-20241220192239-696330adaff0.1
([#1529](https://github.com/open-feature/flagd/issues/1529))
([8881a80](8881a804b4))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.4-20250127221518-be6d1143b690.1
([#1537](https://github.com/open-feature/flagd/issues/1537))
([f74207b](f74207bc13))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.8
([#1526](https://github.com/open-feature/flagd/issues/1526))
([fbf2ed5](fbf2ed527f))
* **deps:** update module google.golang.org/grpc to v1.70.0
([#1528](https://github.com/open-feature/flagd/issues/1528))
([79b2b0a](79b2b0a6bb))


###  New Features

* flagSetMetadata in OFREP/ResolveAll, core refactors
([#1540](https://github.com/open-feature/flagd/issues/1540))
([b49abf9](b49abf9506))
</details>

<details><summary>core: 0.11.0</summary>

##
[0.11.0](https://github.com/open-feature/flagd/compare/core/v0.10.8...core/v0.11.0)
(2025-01-31)


### ⚠ BREAKING CHANGES

* flagSetMetadata in OFREP/ResolveAll, core refactors
([#1540](https://github.com/open-feature/flagd/issues/1540))

### 🐛 Bug Fixes

* **deps:** update github.com/open-feature/flagd-schemas digest to
bb76343 ([#1534](https://github.com/open-feature/flagd/issues/1534))
([8303353](8303353a1b))
* **deps:** update golang.org/x/exp digest to 3edf0e9
([#1538](https://github.com/open-feature/flagd/issues/1538))
([7a06567](7a0656713a))
* **deps:** update golang.org/x/exp digest to e0ece0d
([#1539](https://github.com/open-feature/flagd/issues/1539))
([4281c6e](4281c6e80b))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20250127221518-be6d1143b690.2
([#1536](https://github.com/open-feature/flagd/issues/1536))
([e23060f](e23060f24b))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.4-20241220192239-696330adaff0.1
([#1529](https://github.com/open-feature/flagd/issues/1529))
([8881a80](8881a804b4))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.4-20250127221518-be6d1143b690.1
([#1537](https://github.com/open-feature/flagd/issues/1537))
([f74207b](f74207bc13))
* **deps:** update module google.golang.org/grpc to v1.70.0
([#1528](https://github.com/open-feature/flagd/issues/1528))
([79b2b0a](79b2b0a6bb))


###  New Features

* flagSetMetadata in OFREP/ResolveAll, core refactors
([#1540](https://github.com/open-feature/flagd/issues/1540))
([b49abf9](b49abf9506))
* support yaml in blob, file, and http syncs
([#1522](https://github.com/open-feature/flagd/issues/1522))
([76d673a](76d673ae8f))
</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>
2025-01-31 11:09:22 -05:00
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
renovate[bot] 4281c6e80b
fix(deps): update golang.org/x/exp digest to e0ece0d (#1539)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/exp | require | digest | `3edf0e9` -> `e0ece0d` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-29 00:40:09 +00:00
Michael Beemer 76d673ae8f
feat: support yaml in blob, file, and http syncs (#1522)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-01-28 12:53:53 -05:00
renovate[bot] 7a0656713a
fix(deps): update golang.org/x/exp digest to 3edf0e9 (#1538)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/exp | require | digest | `7588d65` -> `3edf0e9` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 17:41:59 +00:00
renovate[bot] f74207bc13
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.4-20250127221518-be6d1143b690.1 (#1537)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.36.4-20241220192239-696330adaff0.1` ->
`v1.36.4-20250127221518-be6d1143b690.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.4-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.4-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.4-20241220192239-696330adaff0.1/v1.36.4-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.4-20241220192239-696330adaff0.1/v1.36.4-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 17:25:17 +00:00
renovate[bot] e23060f24b
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20250127221518-be6d1143b690.2 (#1536)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.5.1-20241220192239-696330adaff0.2` ->
`v1.5.1-20250127221518-be6d1143b690.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20250127221518-be6d1143b690.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20250127221518-be6d1143b690.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20241220192239-696330adaff0.2/v1.5.1-20250127221518-be6d1143b690.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20241220192239-696330adaff0.2/v1.5.1-20250127221518-be6d1143b690.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 14:32:54 +00:00
renovate[bot] d5ec921f02
fix(deps): update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.18.1-20250127221518-be6d1143b690.1 (#1535)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.18.1-20241220192239-696330adaff0.1` ->
`v1.18.1-20250127221518-be6d1143b690.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.18.1-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.18.1-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.18.1-20241220192239-696330adaff0.1/v1.18.1-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.18.1-20241220192239-696330adaff0.1/v1.18.1-20250127221518-be6d1143b690.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 10:38:19 +00:00
Simon Schrottner f298866122
feat: migrate file evaluation to own provider type (#1525)
update of spec for https://github.com/open-feature/flagd/issues/1504

---------

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-01-28 08:02:28 +01:00
renovate[bot] 8303353a1b
fix(deps): update github.com/open-feature/flagd-schemas digest to bb76343 (#1534)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd-schemas](https://redirect.github.com/open-feature/flagd-schemas)
| require | digest | `37baa2c` -> `bb76343` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 04:39:49 +00:00
renovate[bot] 8881a804b4
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.4-20241220192239-696330adaff0.1 (#1529)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.36.3-20241220192239-696330adaff0.1` ->
`v1.36.4-20241220192239-696330adaff0.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.4-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.4-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.3-20241220192239-696330adaff0.1/v1.36.4-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.3-20241220192239-696330adaff0.1/v1.36.4-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-26 12:54:55 +00:00
renovate[bot] 79b2b0a6bb
fix(deps): update module google.golang.org/grpc to v1.70.0 (#1528)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.69.4` -> `v1.70.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.70.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.70.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.69.4/v1.70.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.69.4/v1.70.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.70.0`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.70.0):
Release 1.70.0

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.69.4...v1.70.0)

### Behavior Changes

- client: reject service configs containing an invalid retryPolicy in
accordance with gRFCs
[A21](https://redirect.github.com/grpc/proposal/blob/master/A21-service-config-error-handling.md)
and
[A6](https://redirect.github.com/grpc/proposal/blob/master/A6-client-retries.md).
([#&#8203;7905](https://redirect.github.com/grpc/grpc-go/issues/7905))
- Note that this is a potential breaking change for some users using an
invalid configuration, but continuing to allow this behavior would
violate our cross-language compatibility requirements.

### New Features

- xdsclient: fallback to a secondary management server (if specified in
the bootstrap configuration) when the primary is down is enabled by
default. Can be disabled by setting the environment variable
`GRPC_EXPERIMENTAL_XDS_FALLBACK` to `false`.
([#&#8203;7949](https://redirect.github.com/grpc/grpc-go/issues/7949))
- experimental/credentials: experimental transport credentials are added
which don't enforce ALPN.
([#&#8203;7980](https://redirect.github.com/grpc/grpc-go/issues/7980))
- These credentials will be removed in an upcoming grpc-go release.
Users must not rely on these credentials directly. Instead, they should
either vendor a specific version of gRPC or copy the relevant
credentials into their own codebase if absolutely necessary.

### Bug Fixes

- xds: fix a possible deadlock that happens when both the client
application and the xDS management server (responsible for configuring
the client) are using the xds:/// scheme in their target URIs.
([#&#8203;8011](https://redirect.github.com/grpc/grpc-go/issues/8011))

### Performance

- server: for unary requests, free raw request message data as soon as
parsing is finished instead of waiting until the method handler returns.
([#&#8203;7998](https://redirect.github.com/grpc/grpc-go/issues/7998))
    -   Special Thanks: [@&#8203;lqs](https://redirect.github.com/lqs)

### Documentation

- examples/features/gracefulstop: add example to demonstrate server
graceful stop.
([#&#8203;7865](https://redirect.github.com/grpc/grpc-go/issues/7865))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-24 00:36:28 +00:00
renovate[bot] fbf2ed527f
fix(deps): update module github.com/open-feature/flagd/core to v0.10.8 (#1526)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.10.7` -> `v0.10.8` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.7/v0.10.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.7/v0.10.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-23 21:40:12 +00:00
github-actions[bot] 166c40a438
chore: release main (#1519)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.8</summary>

##
[0.11.8](https://github.com/open-feature/flagd/compare/flagd/v0.11.7...flagd/v0.11.8)
(2025-01-19)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.10.7
([#1521](https://github.com/open-feature/flagd/issues/1521))
([bf8e7e0](bf8e7e06d9))
* **deps:** update opentelemetry-go monorepo
([#1524](https://github.com/open-feature/flagd/issues/1524))
([eeae9a6](eeae9a64ca))
* Skip flagd banner when non-console logger in use
([#1516](https://github.com/open-feature/flagd/issues/1516))
([bae9b6f](bae9b6fb3b))
</details>

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

##
[0.6.11](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.10...flagd-proxy/v0.6.11)
(2025-01-19)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.10.7
([#1521](https://github.com/open-feature/flagd/issues/1521))
([bf8e7e0](bf8e7e06d9))
* **deps:** update opentelemetry-go monorepo
([#1524](https://github.com/open-feature/flagd/issues/1524))
([eeae9a6](eeae9a64ca))
* Skip flagd banner when non-console logger in use
([#1516](https://github.com/open-feature/flagd/issues/1516))
([bae9b6f](bae9b6fb3b))
</details>

<details><summary>core: 0.10.8</summary>

##
[0.10.8](https://github.com/open-feature/flagd/compare/core/v0.10.7...core/v0.10.8)
(2025-01-19)


### 🐛 Bug Fixes

* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.7.3 ([#1520](https://github.com/open-feature/flagd/issues/1520))
([db2f990](db2f99021d))
* **deps:** update opentelemetry-go monorepo
([#1524](https://github.com/open-feature/flagd/issues/1524))
([eeae9a6](eeae9a64ca))
</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>
2025-01-23 10:01:31 -05:00
renovate[bot] eeae9a64ca
fix(deps): update opentelemetry-go monorepo (#1524)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.33.0` -> `v1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.33.0` -> `v1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.33.0` -> `v1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.33.0` -> `v1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v0.55.0` -> `v0.56.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.55.0/v0.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.55.0/v0.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.33.0` -> `v1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.33.0` -> `v1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.33.0` -> `v1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.33.0` -> `v1.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.33.0/v1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.34.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v1.34.0):
/v0.56.0/v0.10.0

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0)

##### Overview

##### Changed

- Remove the notices from `Logger` to make the whole Logs API
user-facing in `go.opentelemetry.io/otel/log`.
([#&#8203;6167](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6167))

##### Fixed

- Relax minimum Go version to 1.22.0 in various modules.
([#&#8203;6073](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6073))
- The `Type` name logged for the
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` client
is corrected from `otlphttpgrpc` to `otlptracegrpc`.
([#&#8203;6143](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6143))
- The `Type` name logged for the
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlphttpgrpc` client
is corrected from `otlphttphttp` to `otlptracehttp`.
([#&#8203;6143](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6143))

##### What's Changed

- fix(deps): update module google.golang.org/grpc to v1.69.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6037](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6037)
- build(deps): bump golang.org/x/crypto from 0.30.0 to 0.31.0 in
/internal/tools by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6036](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6036)
- fix(deps): update golang.org/x/exp digest to
[`4a55095`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/4a55095)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6039](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6039)
- \[chore] Have renovate update our tools deps by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6038](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6038)
- Fix broken link by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6042](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6042)
- chore(deps): update github.com/golang/groupcache digest to
[`2c02b82`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/2c02b82)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6043](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6043)
- chore(deps): update github.com/burntsushi/toml digest to
[`b7406c0`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/b7406c0)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6041](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6041)
- chore(deps): update github.com/matoous/godox digest to
[`94d1edd`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/94d1edd)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6044](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6044)
- chore(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6046](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6046)
- chore(deps): update mvdan.cc/unparam digest to
[`57a3b42`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/57a3b42)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6047](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6047)
- fix(deps): update googleapis to
[`9240e9c`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9240e9c)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6048](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6048)
- chore(deps): update module github.com/antonboom/nilnil to v1.0.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6050](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6050)
- chore(deps): update module dario.cat/mergo to v1.0.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6049](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6049)
- chore(deps): update module github.com/butuzov/ireturn to v0.3.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6051](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6051)
- chore(deps): update module github.com/go-xmlfmt/xmlfmt to v1.1.3 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6052](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6052)
- chore(deps): update module github.com/jjti/go-spancheck to v0.6.4 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6053](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6053)
- chore(deps): update module github.com/alecthomas/go-check-sumtype to
v0.3.1 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6059](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6059)
- chore(deps): update module github.com/prometheus/client_golang to
v1.20.5 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6058](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6058)
- chore(deps): update module github.com/ashanbrown/makezero to v1.2.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6060](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6060)
- chore(deps): update module github.com/butuzov/mirror to v1.3.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6061](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6061)
- chore(deps): update module github.com/microsoft/go-winio to v0.6.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6056](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6056)
- chore(deps): update module github.com/cloudflare/circl to v1.5.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6063](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6063)
- chore(deps): update module github.com/ckaznocha/intrange to v0.3.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6062](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6062)
- chore(deps): update module github.com/magiconair/properties to v1.8.9
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6054](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6054)
- chore(deps): update module github.com/masterminds/semver/v3 to v3.3.1
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6055](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6055)
- chore(deps): update module github.com/cyphar/filepath-securejoin to
v0.3.6 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6066](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6066)
- chore(deps): update module github.com/curioswitch/go-reassign to
v0.3.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6065](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6065)
- chore(deps): update module github.com/djarvur/go-err113 to v0.1.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6068](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6068)
- fix(deps): update golang.org/x to
[`b2144cd`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/b2144cd)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6067](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6067)
- chore(deps): update module github.com/fsnotify/fsnotify to v1.8.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6069](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6069)
- chore(deps): update module github.com/go-git/go-billy/v5 to v5.6.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6070](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6070)
- chore(deps): update module github.com/ldez/gomoddirectives to v0.6.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6072](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6072)
- chore(deps): update module github.com/prometheus/common to v0.61.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6075](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6075)
- chore(deps): update module github.com/stbenjam/no-sprintf-host-port to
v0.2.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6081](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6081)
- chore(deps): update module github.com/spf13/cast to v1.7.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6080](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6080)
- chore(deps): update module github.com/skeema/knownhosts to v1.3.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6079](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6079)
- chore(deps): update module github.com/sanposhiho/wastedassign/v2 to
v2.1.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6078](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6078)
- chore(deps): update module github.com/protonmail/go-crypto to v1.1.3
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6076](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6076)
- chore(deps): update module github.com/sagikazarmark/locafero to v0.6.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6077](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6077)
- chore(deps): update module github.com/tomarrell/wrapcheck/v2 to
v2.10.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6083](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6083)
- chore(deps): update module github.com/tdakkota/asciicheck to v0.3.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6082](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6082)
- chore(deps): update module github.com/uudashr/gocognit to v1.2.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6087](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6087)
- chore(deps): update module github.com/spf13/cast to v1.7.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6086](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6086)
- chore(deps): update github.com/timakin/bodyclose digest to
[`adbc21e`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/adbc21e)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6045](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6045)
- chore(deps): update module github.com/uudashr/iface to v1.3.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6088](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6088)
- fix(deps): update module google.golang.org/protobuf to v1.36.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6089](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6089)
- chore(deps): update codecov/codecov-action action to v5.1.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6090](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6090)
- fix(deps): update module google.golang.org/grpc to v1.69.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6091](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6091)
- chore(deps): update module golang.org/x/net to v0.33.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6092](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6092)
- fix(deps): update github.com/opentracing-contrib/go-grpc/test digest
to
[`9e4b4d4`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/9e4b4d4)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6096](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6096)
- chore(deps): update lycheeverse/lychee-action action to v2.2.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6099](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6099)
- fix(deps): update googleapis to
[`6b3ec00`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/6b3ec00)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6101](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6101)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.25.1 by [@&#8203;renovate](https://redirect.github.com/renovate)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/6103](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6103)
- chore(deps): update golang.org/x/telemetry digest to
[`cc96b6e`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/cc96b6e)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6102](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6102)
- chore(deps): update github.com/timakin/bodyclose digest to
[`1db5c5c`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1db5c5c)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6105](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6105)
- \[chore] Move the changelog guard by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6100](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6100)
- Only run links check on main branch merge by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6098](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6098)
- fix(deps): update googleapis to
[`6982302`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/6982302)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6108](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6108)
- fix(deps): update module google.golang.org/protobuf to v1.36.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6109](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6109)
- chore(deps): update module github.com/tetafro/godot to v1.4.20 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6110](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6110)
- chore(deps): update github.com/golangci/gofmt digest to
[`057b062`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/057b062)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6111](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6111)
- chore(deps): update module github.com/ldez/grignotin to v0.7.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6112](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6112)
- fix(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6121](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6121)
- chore(deps): update mvdan.cc/unparam digest to
[`447d509`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/447d509)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6115](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6115)
- chore(deps): update module github.com/julz/importas to v0.2.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6116](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6116)
- chore(deps): update module github.com/karamaru-alpha/copyloopvar to
v1.2.1 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6126](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6126)
- chore(deps): update module github.com/ldez/grignotin to v0.8.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6129](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6129)
- fix(deps): update module github.com/golangci/golangci-lint to v1.63.4
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6128](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6128)
- chore(deps): update module github.com/go-git/go-git/v5 to v5.13.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6125](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6125)
- chore(deps): update module github.com/pjbgf/sha1cd to v0.3.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6123](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6123)
- fix(deps): update googleapis to
[`5f5ef82`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/5f5ef82)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6133](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6133)
- chore(deps): update module github.com/alingse/nilnesserr to v0.1.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6134](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6134)
- fix(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6135](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6135)
- Minimum go version dependency downgraded back to 1.22.0 in various
packages by [@&#8203;codeboten](https://redirect.github.com/codeboten)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/6073](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6073)
- chore(deps): update module github.com/protonmail/go-crypto to v1.1.4
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6137](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6137)
- fix(deps): update module google.golang.org/protobuf to v1.36.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6138](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6138)
- chore(deps): update module github.com/uudashr/iface to v1.3.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6139](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6139)
- chore(deps): update module github.com/securego/gosec/v2 to v2.22.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6141](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6141)
- chore(deps): update module github.com/sagikazarmark/locafero to v0.7.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6140](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6140)
- chore(deps): update module go.opentelemetry.io/build-tools to v0.16.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6146](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6146)
- fix(deps): update module go.opentelemetry.io/build-tools/crosslink to
v0.16.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6147](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6147)
- fix(deps): update module go.opentelemetry.io/build-tools/multimod to
v0.16.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6149](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6149)
- fix(deps): update module go.opentelemetry.io/build-tools/semconvgen to
v0.16.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6150](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6150)
- fix(deps): update module go.opentelemetry.io/build-tools/gotmpl to
v0.16.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6148](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6148)
- docs: update badge link by
[@&#8203;codeboten](https://redirect.github.com/codeboten) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6144](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6144)
- Fix otlptrace client types by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6143](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6143)
- chore(deps): update module github.com/mattn/go-colorable to v0.1.14 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6151](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6151)
- chore(deps): update module github.com/go-git/go-billy/v5 to v5.6.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6122](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6122)
- chore(deps): update module github.com/cyphar/filepath-securejoin to
v0.4.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6157](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6157)
- fix(deps): update module google.golang.org/grpc to v1.69.4 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6159](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6159)
- Fix demo links by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6160](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6160)
- fix(deps): update module golang.org/x/vuln to v1.1.4 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6161](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6161)
- chore(deps): update module github.com/crocmagnon/fatcontext to v0.6.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6162](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6162)
- chore(deps): update module github.com/ldez/exptostd to v0.4.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6163](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6163)
- fix(deps): update googleapis to
[`1a7da9e`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1a7da9e)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6164](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6164)
- chore(deps): update module github.com/protonmail/go-crypto to v1.1.5
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6165](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6165)
- fix(deps): update module google.golang.org/protobuf to v1.36.3 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6166](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6166)
- log: Make whole Logs API user-facing by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6167](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6167)
- Release v1.34.0/v0.56.0/v0.10.0 by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6174](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6174)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.33.0...v1.34.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 17:09:21 +00:00
renovate[bot] db2f99021d
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.7.3 (#1520)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://redirect.github.com/diegoholiveira/jsonlogic)
| `v3.7.1` -> `v3.7.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.1/v3.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.1/v3.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.7.3`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.7.3)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.7.2...v3.7.3)

#### What's Changed

- Fix some comparisons by
[@&#8203;gburt](https://redirect.github.com/gburt) in
[https://github.com/diegoholiveira/jsonlogic/pull/100](https://redirect.github.com/diegoholiveira/jsonlogic/pull/100)
- small cleanup by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/101](https://redirect.github.com/diegoholiveira/jsonlogic/pull/101)

#### New Contributors

- [@&#8203;gburt](https://redirect.github.com/gburt) made their first
contribution in
[https://github.com/diegoholiveira/jsonlogic/pull/100](https://redirect.github.com/diegoholiveira/jsonlogic/pull/100)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.7.2...v3.7.3

###
[`v3.7.2`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.7.2)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.7.1...v3.7.2)

#### What's Changed

- Modify `_or` to return the parsed value instead of the original value
by [@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira)
in
[https://github.com/diegoholiveira/jsonlogic/pull/99](https://redirect.github.com/diegoholiveira/jsonlogic/pull/99)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.7.1...v3.7.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 12:53:57 +00:00
renovate[bot] bf8e7e06d9
fix(deps): update module github.com/open-feature/flagd/core to v0.10.7 (#1521)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.10.6` -> `v0.10.7` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.6/v0.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.6/v0.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-19 09:33:45 +00:00
Austin Drenski bae9b6fb3b
fix: Skip flagd banner when non-console logger in use (#1516)
## This PR

- Moves the (very nice) flagd console banner behind a flag check to
avoid sending the (again, very nice) console banner to JSON log files,
sinks, k8s trailers, etc.

### How to test

```console
$ go run main.go start -f file:../config/samples/example_flags.flagd.json

                 ______   __       ________   _______    ______
                /_____/\ /_/\     /_______/\ /______/\  /_____/\
                \::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \
                 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\ \ \ \
                  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \
                   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| |
                    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/

2025-01-15T19:41:51.347-0500    info    cmd/start.go:124        flagd version: dev (HEAD), built at: unknown    {"component": "start"}
2025-01-15T19:41:51.347-0500    info    flag-sync/sync_service.go:87    starting flag sync service on port 8015 {"component": "FlagSyncService"}
2025-01-15T19:41:51.347-0500    info    file/filepath_sync.go:62        Starting filepath sync notifier {"component": "sync", "sync": "fileinfo"}
2025-01-15T19:41:51.347-0500    info    ofrep/ofrep_service.go:58       ofrep service listening at 8016 {"component": "OFREPService"}
2025-01-15T19:41:51.347-0500    info    flag-evaluation/connect_service.go:249  metrics and probes listening at 8014    {"component": "service"}
2025-01-15T19:41:51.347-0500    info    file/filepath_sync.go:101       watching filepath: ../config/samples/example_flags.flagd.json   {"component": "sync", "sync": "fileinfo"}
2025-01-15T19:41:51.347-0500    info    flag-evaluation/connect_service.go:229  Flag IResolver listening at [::]:8013   {"component": "service"}
```

```console
$ go run main.go start -f file:../config/samples/example_flags.flagd.json --log-format console

                 ______   __       ________   _______    ______
                /_____/\ /_/\     /_______/\ /______/\  /_____/\
                \::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \
                 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\ \ \ \
                  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \
                   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| |
                    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/

2025-01-15T19:41:39.375-0500    info    cmd/start.go:124        flagd version: dev (HEAD), built at: unknown    {"component": "start"}
2025-01-15T19:41:39.376-0500    info    flag-sync/sync_service.go:87    starting flag sync service on port 8015 {"component": "FlagSyncService"}
2025-01-15T19:41:39.378-0500    info    file/filepath_sync.go:62        Starting filepath sync notifier {"component": "sync", "sync": "fileinfo"}
2025-01-15T19:41:39.380-0500    info    ofrep/ofrep_service.go:58       ofrep service listening at 8016 {"component": "OFREPService"}
2025-01-15T19:41:39.380-0500    info    flag-evaluation/connect_service.go:249  metrics and probes listening at 8014    {"component": "service"}
2025-01-15T19:41:39.380-0500    info    flag-evaluation/connect_service.go:229  Flag IResolver listening at [::]:8013   {"component": "service"}
2025-01-15T19:41:39.381-0500    info    file/filepath_sync.go:101       watching filepath: ../config/samples/example_flags.flagd.json   {"component": "sync", "sync": "fileinfo"}
```

```console
$ go run main.go start -f file:../config/samples/example_flags.flagd.json --log-format json
{"level":"info","ts":"2025-01-15T19:41:19.857-0500","caller":"cmd/start.go:124","msg":"flagd version: dev (HEAD), built at: unknown","component":"start"}
{"level":"info","ts":"2025-01-15T19:41:19.857-0500","caller":"flag-sync/sync_service.go:87","msg":"starting flag sync service on port 8015","component":"FlagSyncService"}
{"level":"info","ts":"2025-01-15T19:41:19.861-0500","caller":"file/filepath_sync.go:62","msg":"Starting filepath sync notifier","component":"sync","sync":"fileinfo"}
{"level":"info","ts":"2025-01-15T19:41:19.863-0500","caller":"ofrep/ofrep_service.go:58","msg":"ofrep service listening at 8016","component":"OFREPService"}
{"level":"info","ts":"2025-01-15T19:41:19.863-0500","caller":"flag-evaluation/connect_service.go:249","msg":"metrics and probes listening at 8014","component":"service"}
{"level":"info","ts":"2025-01-15T19:41:19.864-0500","caller":"file/filepath_sync.go:101","msg":"watching filepath: ../config/samples/example_flags.flagd.json","component":"sync","sync":"fileinfo"}
{"level":"info","ts":"2025-01-15T19:41:19.864-0500","caller":"flag-evaluation/connect_service.go:229","msg":"Flag IResolver listening at [::]:8013","component":"service"}
```

Signed-off-by: Austin Drenski <austin@austindrenski.io>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-01-17 09:54:50 -05:00
github-actions[bot] 600ce46d61
chore: release main (#1514)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.7</summary>

##
[0.11.7](https://github.com/open-feature/flagd/compare/flagd/v0.11.6...flagd/v0.11.7)
(2025-01-16)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.3-20241220192239-696330adaff0.1
([#1513](https://github.com/open-feature/flagd/issues/1513))
([64c5787](64c57875b0))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.6
([#1515](https://github.com/open-feature/flagd/issues/1515))
([586cb62](586cb62e63))
* **sync:** fixing missing handover of ssl configuration
([#1517](https://github.com/open-feature/flagd/issues/1517))
([998a216](998a21637e))
</details>

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

##
[0.6.10](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.9...flagd-proxy/v0.6.10)
(2025-01-16)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.3-20241220192239-696330adaff0.1
([#1513](https://github.com/open-feature/flagd/issues/1513))
([64c5787](64c57875b0))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.6
([#1515](https://github.com/open-feature/flagd/issues/1515))
([586cb62](586cb62e63))
</details>

<details><summary>core: 0.10.7</summary>

##
[0.10.7](https://github.com/open-feature/flagd/compare/core/v0.10.6...core/v0.10.7)
(2025-01-16)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.3-20241220192239-696330adaff0.1
([#1513](https://github.com/open-feature/flagd/issues/1513))
([64c5787](64c57875b0))
</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>
2025-01-16 11:12:29 -05:00
Simon Schrottner 998a21637e
fix(sync): fixing missing handover of ssl configuration (#1517)
Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2025-01-16 09:30:37 -05:00
renovate[bot] 586cb62e63
fix(deps): update module github.com/open-feature/flagd/core to v0.10.6 (#1515)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.10.5` -> `v0.10.6` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.5/v0.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.5/v0.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-16 01:25:22 +00:00
renovate[bot] 64c57875b0
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.3-20241220192239-696330adaff0.1 (#1513)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.36.2-20241220192239-696330adaff0.1` ->
`v1.36.3-20241220192239-696330adaff0.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.3-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.3-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.2-20241220192239-696330adaff0.1/v1.36.3-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.2-20241220192239-696330adaff0.1/v1.36.3-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-15 21:30:17 +00:00
github-actions[bot] ada1c07099
chore: release main (#1483)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.6</summary>

##
[0.11.6](https://github.com/open-feature/flagd/compare/flagd/v0.11.5...flagd/v0.11.6)
(2025-01-15)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/connectrpc/go to
v1.17.0-20241220192239-696330adaff0.1
([#1488](https://github.com/open-feature/flagd/issues/1488))
([8e09457](8e09457d73))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/connectrpc/go to
v1.18.1-20241220192239-696330adaff0.1
([#1506](https://github.com/open-feature/flagd/issues/1506))
([b868194](b8681947bf))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20241220192239-696330adaff0.1
([#1489](https://github.com/open-feature/flagd/issues/1489))
([53add83](53add83a49))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20241220192239-696330adaff0.2
([#1492](https://github.com/open-feature/flagd/issues/1492))
([9f1d94a](9f1d94a42a))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.0-20241220192239-696330adaff0.1
([#1490](https://github.com/open-feature/flagd/issues/1490))
([6edce72](6edce72e8c))
* **deps:** update module github.com/mattn/go-colorable to v0.1.14
([#1508](https://github.com/open-feature/flagd/issues/1508))
([87727f7](87727f7f8f))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.5
([#1482](https://github.com/open-feature/flagd/issues/1482))
([ce48cb7](ce48cb7576))
* **deps:** update module golang.org/x/net to v0.33.0 [security]
([#1486](https://github.com/open-feature/flagd/issues/1486))
([4764077](476407769f))
* **deps:** update module golang.org/x/net to v0.34.0
([#1498](https://github.com/open-feature/flagd/issues/1498))
([7584f95](7584f95e4d))
* **deps:** update module google.golang.org/grpc to v1.69.2
([#1484](https://github.com/open-feature/flagd/issues/1484))
([6b40ad3](6b40ad34c8))
* **deps:** update module google.golang.org/grpc to v1.69.4
([#1510](https://github.com/open-feature/flagd/issues/1510))
([76d6353](76d6353840))
* **deps:** update module google.golang.org/protobuf to v1.36.1
([#1491](https://github.com/open-feature/flagd/issues/1491))
([2c729a7](2c729a7c21))
* **deps:** update opentelemetry-go monorepo
([#1470](https://github.com/open-feature/flagd/issues/1470))
([26b0b1a](26b0b1af8b))


###  New Features

* add ssl support to sync service
([#1479](https://github.com/open-feature/flagd/issues/1479))
([#1501](https://github.com/open-feature/flagd/issues/1501))
([d50fcc8](d50fcc821c))
</details>

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

##
[0.6.9](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.8...flagd-proxy/v0.6.9)
(2025-01-15)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20241220192239-696330adaff0.1
([#1489](https://github.com/open-feature/flagd/issues/1489))
([53add83](53add83a49))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20241220192239-696330adaff0.2
([#1492](https://github.com/open-feature/flagd/issues/1492))
([9f1d94a](9f1d94a42a))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.0-20241220192239-696330adaff0.1
([#1490](https://github.com/open-feature/flagd/issues/1490))
([6edce72](6edce72e8c))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.2-20241220192239-696330adaff0.1
([#1502](https://github.com/open-feature/flagd/issues/1502))
([426c36e](426c36e838))
* **deps:** update module github.com/mattn/go-colorable to v0.1.14
([#1508](https://github.com/open-feature/flagd/issues/1508))
([87727f7](87727f7f8f))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.5
([#1482](https://github.com/open-feature/flagd/issues/1482))
([ce48cb7](ce48cb7576))
* **deps:** update module golang.org/x/net to v0.33.0 [security]
([#1486](https://github.com/open-feature/flagd/issues/1486))
([4764077](476407769f))
* **deps:** update module golang.org/x/net to v0.34.0
([#1498](https://github.com/open-feature/flagd/issues/1498))
([7584f95](7584f95e4d))
* **deps:** update module google.golang.org/grpc to v1.69.2
([#1484](https://github.com/open-feature/flagd/issues/1484))
([6b40ad3](6b40ad34c8))
* **deps:** update module google.golang.org/grpc to v1.69.4
([#1510](https://github.com/open-feature/flagd/issues/1510))
([76d6353](76d6353840))
* **deps:** update opentelemetry-go monorepo
([#1470](https://github.com/open-feature/flagd/issues/1470))
([26b0b1a](26b0b1af8b))
</details>

<details><summary>core: 0.10.6</summary>

##
[0.10.6](https://github.com/open-feature/flagd/compare/core/v0.10.5...core/v0.10.6)
(2025-01-15)


### 🐛 Bug Fixes

* **deps:** update github.com/open-feature/flagd-schemas digest to
37baa2c ([#1499](https://github.com/open-feature/flagd/issues/1499))
([1a853f7](1a853f79dc))
* **deps:** update github.com/open-feature/flagd-schemas digest to
b81a56e ([#1391](https://github.com/open-feature/flagd/issues/1391))
([6a3d8ac](6a3d8ac251))
* **deps:** update golang.org/x/exp digest to 7588d65
([#1495](https://github.com/open-feature/flagd/issues/1495))
([242e594](242e59450c))
* **deps:** update golang.org/x/exp digest to b2144cd
([#1320](https://github.com/open-feature/flagd/issues/1320))
([a692b00](a692b009ae))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20241220192239-696330adaff0.1
([#1489](https://github.com/open-feature/flagd/issues/1489))
([53add83](53add83a49))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20241220192239-696330adaff0.2
([#1492](https://github.com/open-feature/flagd/issues/1492))
([9f1d94a](9f1d94a42a))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.0-20241220192239-696330adaff0.1
([#1490](https://github.com/open-feature/flagd/issues/1490))
([6edce72](6edce72e8c))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.2-20241220192239-696330adaff0.1
([#1502](https://github.com/open-feature/flagd/issues/1502))
([426c36e](426c36e838))
* **deps:** update module connectrpc.com/connect to v1.18.1
([#1507](https://github.com/open-feature/flagd/issues/1507))
([89d3259](89d32591db))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.7.0 ([#1496](https://github.com/open-feature/flagd/issues/1496))
([e1fe149](e1fe1490fd))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.7.1 ([#1509](https://github.com/open-feature/flagd/issues/1509))
([9d06812](9d0681270f))
* **deps:** update module golang.org/x/crypto to v0.32.0
([#1497](https://github.com/open-feature/flagd/issues/1497))
([63a34d2](63a34d23ae))
* **deps:** update module google.golang.org/grpc to v1.69.2
([#1484](https://github.com/open-feature/flagd/issues/1484))
([6b40ad3](6b40ad34c8))
* **deps:** update module google.golang.org/grpc to v1.69.4
([#1510](https://github.com/open-feature/flagd/issues/1510))
([76d6353](76d6353840))
* **deps:** update opentelemetry-go monorepo
([#1470](https://github.com/open-feature/flagd/issues/1470))
([26b0b1a](26b0b1af8b))


###  New Features

* add ssl support to sync service
([#1479](https://github.com/open-feature/flagd/issues/1479))
([#1501](https://github.com/open-feature/flagd/issues/1501))
([d50fcc8](d50fcc821c))
* support flag metadata
([#1476](https://github.com/open-feature/flagd/issues/1476))
([13fbbad](13fbbad4d8))
</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>
2025-01-15 15:05:02 -05:00
aasifkhan7 13fbbad4d8
feat: support flag metadata (#1476)
- Adds functionality to return flag metadata as part of the response.

Signed-off-by: Aasif Khan <aasifk106@gmail.com>
2025-01-15 14:49:03 -05:00
renovate[bot] 26b0b1af8b
fix(deps): update opentelemetry-go monorepo (#1470)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v0.54.0` -> `v0.55.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.54.0/v0.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.54.0/v0.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.33.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v1.33.0):
/v0.55.0/v0.9.0/v0.0.12

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.32.0...v1.33.0)

##### Overview

##### Added

- Add `Reset` method to `SpanRecorder` in
`go.opentelemetry.io/otel/sdk/trace/tracetest`.
([#&#8203;5994](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5994))
- Add `EnabledInstrument` interface in
`go.opentelemetry.io/otel/sdk/metric/internal/x`. This is an
experimental interface that is implemented by synchronous instruments
provided by `go.opentelemetry.io/otel/sdk/metric`. Users can use it to
avoid performing computationally expensive operations when recording
measurements. It does not fall within the scope of the OpenTelemetry Go
versioning and stability [policy](./VERSIONING.md) and it may be changed
in backwards incompatible ways or removed in feature releases.
([#&#8203;6016](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6016))

##### Changed

- The default global API now supports full auto-instrumentation from the
`go.opentelemetry.io/auto` package. See that package for more
information.
([#&#8203;5920](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5920))
- Propagate non-retryable error messages to client in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.
([#&#8203;5929](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5929))
- Propagate non-retryable error messages to client in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;5929](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5929))
- Propagate non-retryable error messages to client in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;5929](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5929))
- Performance improvements for attribute value `AsStringSlice`,
`AsFloat64Slice`, `AsInt64Slice`, `AsBoolSlice`.
([#&#8203;6011](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6011))
- Change `EnabledParameters` to have a `Severity` field instead of a
getter and setter in `go.opentelemetry.io/otel/log`.
([#&#8203;6009](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6009))

##### Fixed

- Fix inconsistent request body closing in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.
([#&#8203;5954](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5954))
- Fix inconsistent request body closing in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;5954](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5954))
- Fix inconsistent request body closing in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;5954](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5954))
- Fix invalid exemplar keys in
`go.opentelemetry.io/otel/exporters/prometheus`.
([#&#8203;5995](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5995))
- Fix attribute value truncation in
`go.opentelemetry.io/otel/sdk/trace`.
([#&#8203;5997](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5997))
- Fix attribute value truncation in `go.opentelemetry.io/otel/sdk/log`.
([#&#8203;6032](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/6032))

##### What's Changed

- fix(deps): update module google.golang.org/grpc to v1.68.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5955](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5955)
- chore(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5962](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5962)
- fix(deps): update golang.org/x/exp digest to
[`2d47ceb`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/2d47ceb)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5963](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5963)
- otlp: Clients to close body uniformly by
[@&#8203;mark-pictor-csec](https://redirect.github.com/mark-pictor-csec)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/5954](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5954)
- Fix lint issues for golangci-lint 1.62.0 by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5967](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5967)
- fix(deps): update module github.com/golangci/golangci-lint to v1.62.0
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5966](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5966)
- chore(deps): update googleapis to
[`e0fbfb7`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e0fbfb7)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5971](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5971)
- chore(deps): update googleapis to
[`65e8d21`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/65e8d21)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5972](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5972)
- fix(deps): update module google.golang.org/protobuf to v1.35.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5975](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5975)
- \[chore]: enable int-conversion rule of perfsprint by
[@&#8203;mmorel-35](https://redirect.github.com/mmorel-35) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5964](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5964)
- chore(deps): update codecov/codecov-action action to v5 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5977](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5977)
- \[chore] Fix codecov action usage by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5979](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5979)
- chore(deps): update codecov/codecov-action action to v5.0.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5981](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5981)
- \[chore]: enable all rules of perfsprint by
[@&#8203;mmorel-35](https://redirect.github.com/mmorel-35) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5978](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5978)
- Add toolchain check by
[@&#8203;cheese-head](https://redirect.github.com/cheese-head) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5983](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5983)
- \[chore] Fix VERSIONING.md missing parenthesis by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5984](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5984)
- chore(deps): update googleapis to
[`e639e21`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e639e21)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5985](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5985)
- chore(deps): update codecov/codecov-action action to v5.0.3 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5986](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5986)
- fix(deps): update module github.com/masterminds/semver/v3 to v3.3.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5987](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5987)
- Propagate non-retryable error messages to client by
[@&#8203;mark-pictor-csec](https://redirect.github.com/mark-pictor-csec)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/5929](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5929)
- chore(deps): update codecov/codecov-action action to v5.0.5 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5991](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5991)
- chore(deps): update codecov/codecov-action action to v5.0.6 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5992](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5992)
- chore(deps): update codecov/codecov-action action to v5.0.7 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5993](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5993)
- Use auto-instrumentation SDK in global tracing by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5920](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5920)
- Escape exemplar keys to fix invalid key errors by
[@&#8203;dashpole](https://redirect.github.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5995](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5995)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.24.0 by [@&#8203;renovate](https://redirect.github.com/renovate)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/5998](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5998)
- fix(deps): update module github.com/stretchr/testify to v1.10.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6000](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6000)
- Corrent comments for the metric data storage location by
[@&#8203;yumosx](https://redirect.github.com/yumosx) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5999](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5999)
- fix(deps): update module github.com/golangci/golangci-lint to v1.62.2
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6003](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6003)
- \[chore]: enable usestdlibvars linter by
[@&#8203;mmorel-35](https://redirect.github.com/mmorel-35) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6001](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6001)
- feat(trace): add concurrent-safe `Reset` method to `SpanRecorder` by
[@&#8203;flc1125](https://redirect.github.com/flc1125) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5994](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5994)
- Fix attribute value truncation by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5997](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5997)
- fix(deps): update github.com/opentracing-contrib/go-grpc/test digest
to
[`8dc4a50`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/8dc4a50)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6005](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6005)
- Fix span option typo in SDK span End, and WithAttributes only being
available on span start by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6006](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6006)
- chore(deps): update github.com/golang/groupcache digest to
[`2c02b82`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/2c02b82)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6010](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6010)
- fix(deps): update module go.opentelemetry.io/proto/otlp to v1.4.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6013](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6013)
- chore(deps): update googleapis to
[`19429a9`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/19429a9)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6014](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6014)
- Performance improvements for attribute value `AsStringSlice`,
`AsFloat64Slice`, `AsInt64Slice`, `AsBoolSlice` by
[@&#8203;boekkooi-impossiblecloud](https://redirect.github.com/boekkooi-impossiblecloud)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/6011](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6011)
- log: Change EnabledParameters to have a field instead of getter and
setter by [@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6009](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6009)
- chore: fix a typo in TestMeterCreatesInstruments by
[@&#8203;codeboten](https://redirect.github.com/codeboten) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6015](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6015)
- chore(deps): update module golang.org/x/sys to v0.28.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6019](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6019)
- chore(deps): update module golang.org/x/text to v0.21.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6020](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6020)
- fix(deps): update module google.golang.org/grpc to v1.68.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6021](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6021)
- fix(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6022](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6022)
- fix(deps): update module github.com/prometheus/common to v0.61.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6023](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6023)
- chore(deps): update codecov/codecov-action action to v5.1.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6024](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6024)
- chore(deps): update module go.opentelemetry.io/auto/sdk to v1.1.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6025](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6025)
- chore(deps): update codecov/codecov-action action to v5.1.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6026](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6026)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`a4fef06`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/a4fef06)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6027](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6027)
- sdk/metric: Add experimental Enabled method to synchronous instruments
by [@&#8203;codeboten](https://redirect.github.com/codeboten) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6016](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6016)
- fix(deps): update github.com/opentracing-contrib/go-grpc/test digest
to
[`ca80a95`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/ca80a95)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6029](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6029)
- chore(deps): update googleapis to
[`e6fa225`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e6fa225)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6028](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6028)
- fix(deps): update golang.org/x/exp digest to
[`1829a12`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/1829a12)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6031](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6031)
- Cache successful requests in lychee by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6030](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6030)
- Fix sdk/log record attr value limit by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6032](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6032)
- Release v1.33.0 by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/6035](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/6035)

##### New Contributors

-
[@&#8203;mark-pictor-csec](https://redirect.github.com/mark-pictor-csec)
made their first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5954](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5954)
- [@&#8203;cheese-head](https://redirect.github.com/cheese-head) made
their first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5983](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5983)
- [@&#8203;yumosx](https://redirect.github.com/yumosx) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5999](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5999)
- [@&#8203;flc1125](https://redirect.github.com/flc1125) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5994](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5994)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.32.0...v1.33.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 09:17:24 -05:00
renovate[bot] 76d6353840
fix(deps): update module google.golang.org/grpc to v1.69.4 (#1510)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.69.2` -> `v1.69.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.69.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.69.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.69.2/v1.69.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.69.2/v1.69.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.69.4`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.69.4):
Release 1.69.4

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.69.2...v1.69.4)

### Bug Fixes

- rbac: fix support for :path header matchers, which would previously
never successfully match
([#&#8203;7965](https://redirect.github.com/grpc/grpc-go/issues/7965)).

### Documentation

- examples/features/csm_observability: update example client and server
to use the helloworld service instead of echo service
([#&#8203;7945](https://redirect.github.com/grpc/grpc-go/issues/7945)).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-13 13:05:52 +00:00
renovate[bot] 9d0681270f
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.7.1 (#1509)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://redirect.github.com/diegoholiveira/jsonlogic)
| `v3.7.0` -> `v3.7.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.0/v3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.0/v3.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.7.1`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.7.1)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.7.0...v3.7.1)

#### What's Changed

- Ensure empty slices have the same behavior as empty strings by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/97](https://redirect.github.com/diegoholiveira/jsonlogic/pull/97)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.7.0...v3.7.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-12 21:01:37 +00:00
renovate[bot] 7584f95e4d
fix(deps): update module golang.org/x/net to v0.34.0 (#1498)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.33.0` -> `v0.34.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.33.0/v0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.33.0/v0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 06:20:05 +00:00
renovate[bot] 63a34d23ae
fix(deps): update module golang.org/x/crypto to v0.32.0 (#1497)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.31.0` -> `v0.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.31.0/v0.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.31.0/v0.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-11 02:38:01 +00:00
renovate[bot] 89d32591db
fix(deps): update module connectrpc.com/connect to v1.18.1 (#1507)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[connectrpc.com/connect](https://redirect.github.com/connectrpc/connect-go)
| `v1.17.0` -> `v1.18.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/connectrpc.com%2fconnect/v1.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/connectrpc.com%2fconnect/v1.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/connectrpc.com%2fconnect/v1.17.0/v1.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/connectrpc.com%2fconnect/v1.17.0/v1.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>connectrpc/connect-go (connectrpc.com/connect)</summary>

###
[`v1.18.1`](https://redirect.github.com/connectrpc/connect-go/releases/tag/v1.18.1)

[Compare
Source](https://redirect.github.com/connectrpc/connect-go/compare/v1.18.0...v1.18.1)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Bugfixes

- Fix protoc-gen-connect-go schema variable case handling by
[@&#8203;emcfarlane](https://redirect.github.com/emcfarlane) in
[https://github.com/connectrpc/connect-go/pull/808](https://redirect.github.com/connectrpc/connect-go/pull/808)

**Full Changelog**:
https://github.com/connectrpc/connect-go/compare/v1.18.0...v1.18.1

###
[`v1.18.0`](https://redirect.github.com/connectrpc/connect-go/releases/tag/v1.18.0)

[Compare
Source](https://redirect.github.com/connectrpc/connect-go/compare/v1.17.0...v1.18.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Enhancements

- Add `package_suffix` option to `protoc-gen-connect-go` to allow
specifying the output directory of generated code by
[@&#8203;bufdev](https://redirect.github.com/bufdev) and
[@&#8203;emcfarlane](https://redirect.github.com/emcfarlane) in
[https://github.com/connectrpc/connect-go/pull/803](https://redirect.github.com/connectrpc/connect-go/pull/803)
- Change stream client closures to be non-blocking by
[@&#8203;emcfarlane](https://redirect.github.com/emcfarlane) in
[https://github.com/connectrpc/connect-go/pull/791](https://redirect.github.com/connectrpc/connect-go/pull/791)

##### Other changes

- Fix comment typo spelling of optimize by
[@&#8203;yoshihiro-shu](https://redirect.github.com/yoshihiro-shu) in
[https://github.com/connectrpc/connect-go/pull/786](https://redirect.github.com/connectrpc/connect-go/pull/786)
- Remove reader allocation for compressors pools by
[@&#8203;emcfarlane](https://redirect.github.com/emcfarlane) in
[https://github.com/connectrpc/connect-go/pull/792](https://redirect.github.com/connectrpc/connect-go/pull/792)

#### New Contributors

- [@&#8203;yoshihiro-shu](https://redirect.github.com/yoshihiro-shu)
made their first contribution in
[https://github.com/connectrpc/connect-go/pull/786](https://redirect.github.com/connectrpc/connect-go/pull/786)

**Full Changelog**:
https://github.com/connectrpc/connect-go/compare/v1.17.0...v1.18.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 23:11:06 +00:00
renovate[bot] 87727f7f8f
fix(deps): update module github.com/mattn/go-colorable to v0.1.14 (#1508)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/mattn/go-colorable](https://redirect.github.com/mattn/go-colorable)
| `v0.1.13` -> `v0.1.14` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fmattn%2fgo-colorable/v0.1.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fmattn%2fgo-colorable/v0.1.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fmattn%2fgo-colorable/v0.1.13/v0.1.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fmattn%2fgo-colorable/v0.1.13/v0.1.14?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>mattn/go-colorable (github.com/mattn/go-colorable)</summary>

###
[`v0.1.14`](https://redirect.github.com/mattn/go-colorable/compare/v0.1.13...v0.1.14)

[Compare
Source](https://redirect.github.com/mattn/go-colorable/compare/v0.1.13...v0.1.14)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 18:32:45 +00:00
Todd Baert 6c78080c3c
docs: flag and flag-set metadata (#1505)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2025-01-10 10:29:45 -05:00
renovate[bot] 426c36e838
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.2-20241220192239-696330adaff0.1 (#1502)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.36.1-20241220192239-696330adaff0.1` ->
`v1.36.2-20241220192239-696330adaff0.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.2-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.2-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.1-20241220192239-696330adaff0.1/v1.36.2-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.1-20241220192239-696330adaff0.1/v1.36.2-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 13:42:48 +00:00
renovate[bot] 242e59450c
fix(deps): update golang.org/x/exp digest to 7588d65 (#1495)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/exp | require | digest | `b2144cd` -> `7588d65` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 10:22:50 +00:00
renovate[bot] b8681947bf
fix(deps): update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.18.1-20241220192239-696330adaff0.1 (#1506)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.17.0-20241220192239-696330adaff0.1` ->
`v1.18.1-20241220192239-696330adaff0.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.18.1-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.18.1-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.17.0-20241220192239-696330adaff0.1/v1.18.1-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.17.0-20241220192239-696330adaff0.1/v1.18.1-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 05:15:08 +00:00
renovate[bot] 1a853f79dc
fix(deps): update github.com/open-feature/flagd-schemas digest to 37baa2c (#1499)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd-schemas](https://redirect.github.com/open-feature/flagd-schemas)
| require | digest | `b81a56e` -> `37baa2c` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 03:07:19 +00:00
renovate[bot] e1fe1490fd
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.7.0 (#1496)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://redirect.github.com/diegoholiveira/jsonlogic)
| `v3.6.1` -> `v3.7.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.6.1/v3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.6.1/v3.7.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.7.0`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.7.0)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.6.1...v3.7.0)

#### What's Changed

- Mark `ApplyInterface` as public method by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/94](https://redirect.github.com/diegoholiveira/jsonlogic/pull/94)
- Go 1.18 as minimum requirement by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/95](https://redirect.github.com/diegoholiveira/jsonlogic/pull/95)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.6.1...v3.7.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 16:26:11 -05:00
alexandraoberaigner d50fcc821c
feat: add ssl support to sync service (#1479) (#1501)
Adds SSL support to the flagd sync service

---------

Signed-off-by: Alexandra Oberaigner <alexandra.oberaigner@dynatrace.com>
Co-authored-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2025-01-09 15:44:58 -05:00
Michael Beemer 9891df2d0c
chore: bump flagd-core in playground, add metadata example, fix doc links
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-01-07 20:52:31 +00:00
Dave Josephsen b2471b8ddb
docs: Add docs for s3 blobs (#1477)
## This PR
Intent of this PR is to add the docs that were missing from #1449 

### Notes
Happy holidays yall.

---------

Signed-off-by: Dave Josephsen <dave.josephsen@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-12-31 07:59:34 -05:00
renovate[bot] a692b009ae
fix(deps): update golang.org/x/exp digest to b2144cd (#1320)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/exp | require | digest | `9bf2ced` -> `b2144cd` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNzcuOCIsInVwZGF0ZWRJblZlciI6IjM5Ljg1LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-30 02:31:09 +00:00
renovate[bot] 6a3d8ac251
fix(deps): update github.com/open-feature/flagd-schemas digest to b81a56e (#1391)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd-schemas](https://redirect.github.com/open-feature/flagd-schemas)
| require | digest | `2aa89b3` -> `b81a56e` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsicmVub3ZhdGUiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-29 22:03:45 +00:00
Simon Schrottner fdf8df6bc2
build(renovate): Utilize default OpenFeature Renovate configuration (#1494)
We do have a default OpenFeature Renovate configuration within our
community-tooling repository.
(https://github.com/open-feature/community-tooling/blob/main/renovate.json)

To reduce maintenance efforts, we should stick to the general one as a
basis.

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
2024-12-29 15:19:26 -05:00
renovate[bot] 9f1d94a42a
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20241220192239-696330adaff0.2 (#1492)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.5.1-20241220192239-696330adaff0.1` ->
`v1.5.1-20241220192239-696330adaff0.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20241220192239-696330adaff0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20241220192239-696330adaff0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20241220192239-696330adaff0.1/v1.5.1-20241220192239-696330adaff0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20241220192239-696330adaff0.1/v1.5.1-20241220192239-696330adaff0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44MC4wIiwidXBkYXRlZEluVmVyIjoiMzkuODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-24 21:51:11 +00:00
renovate[bot] 2c729a7c21
fix(deps): update module google.golang.org/protobuf to v1.36.1 (#1491)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/protobuf](https://redirect.github.com/protocolbuffers/protobuf-go)
| `v1.36.0` -> `v1.36.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.36.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fprotobuf/v1.36.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fprotobuf/v1.36.0/v1.36.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.36.0/v1.36.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.36.1`](https://redirect.github.com/protocolbuffers/protobuf-go/releases/tag/v1.36.1)

[Compare
Source](https://redirect.github.com/protocolbuffers/protobuf-go/compare/v1.36.0...v1.36.1)

**Full Changelog**:
https://github.com/protocolbuffers/protobuf-go/compare/v1.36.0...v1.36.1

Bug fixes:
[CL/638495](https://go-review.googlesource.com/c/protobuf/+/638495):
internal/impl: revert IsSynthetic() check to fix panic

Maintenance:
[CL/637475](https://go-review.googlesource.com/c/protobuf/+/637475):
internal/errors: delete compatibility code for Go before 1.13

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS44MC4wIiwidXBkYXRlZEluVmVyIjoiMzkuODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-23 16:34:43 +00:00
renovate[bot] 6edce72e8c
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.0-20241220192239-696330adaff0.1 (#1490)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.36.0-20240906125204-0a6a901b42e8.1` ->
`v1.36.0-20241220192239-696330adaff0.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.0-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.0-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.0-20240906125204-0a6a901b42e8.1/v1.36.0-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.0-20240906125204-0a6a901b42e8.1/v1.36.0-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43Mi41IiwidXBkYXRlZEluVmVyIjoiMzkuNzIuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-21 08:13:23 +00:00
renovate[bot] 53add83a49
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20241220192239-696330adaff0.1 (#1489)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.5.1-20240906125204-0a6a901b42e8.1` ->
`v1.5.1-20241220192239-696330adaff0.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240906125204-0a6a901b42e8.1/v1.5.1-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240906125204-0a6a901b42e8.1/v1.5.1-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43Mi41IiwidXBkYXRlZEluVmVyIjoiMzkuNzIuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-21 04:15:18 +00:00
renovate[bot] 8e09457d73
fix(deps): update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.17.0-20241220192239-696330adaff0.1 (#1488)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.17.0-20240906125204-0a6a901b42e8.1` ->
`v1.17.0-20241220192239-696330adaff0.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.17.0-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.17.0-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.17.0-20240906125204-0a6a901b42e8.1/v1.17.0-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.17.0-20240906125204-0a6a901b42e8.1/v1.17.0-20241220192239-696330adaff0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43Mi41IiwidXBkYXRlZEluVmVyIjoiMzkuNzIuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-21 02:14:31 +00:00
Simon Schrottner 35d286afab
feat(spec): from grace attempts to grace period, plus connection info (#1478)
updating specification based on findings in
https://github.com/open-feature/flagd/issues/1472

---------

Signed-off-by: Simon Schrottner <simon.schrottner@dynatrace.com>
Co-authored-by: chrfwow <christian.lutnik@dynatrace.com>
2024-12-19 12:20:41 -05:00
renovate[bot] 476407769f
fix(deps): update module golang.org/x/net to v0.33.0 [security] (#1486)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.32.0` -> `v0.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.32.0/v0.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.32.0/v0.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

### GitHub Vulnerability Alerts

#### [CVE-2024-45338](https://nvd.nist.gov/vuln/detail/CVE-2024-45338)

An attacker can craft an input to the Parse functions that would be
processed non-linearly with respect to its length, resulting in
extremely slow parsing. This could cause a denial of service.

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43Mi41IiwidXBkYXRlZEluVmVyIjoiMzkuNzIuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-19 03:47:18 +00:00
renovate[bot] 6b40ad34c8
fix(deps): update module google.golang.org/grpc to v1.69.2 (#1484)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.69.0` -> `v1.69.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.69.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.69.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.69.0/v1.69.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.69.0/v1.69.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.69.2`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.69.2):
Release 1.69.2

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.69.0...v1.69.2)

### Bug Fixes

- stats/experimental: add type aliases for symbols (`Metrics`/etc) that
were moved to the stats package
([#&#8203;7929](https://redirect.github.com/grpc/grpc-go/issues/7929)).
-   client: set user-agent string to the correct version.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43Mi41IiwidXBkYXRlZEluVmVyIjoiMzkuNzIuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 23:57:52 +00:00
renovate[bot] ce48cb7576
fix(deps): update module github.com/open-feature/flagd/core to v0.10.5 (#1482)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.10.4` -> `v0.10.5` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.4/v0.10.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.4/v0.10.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43Mi41IiwidXBkYXRlZEluVmVyIjoiMzkuNzIuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-18 20:30:54 +00:00
github-actions[bot] dfd2af993f
chore: release main (#1437)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.5</summary>

##
[0.11.5](https://github.com/open-feature/flagd/compare/flagd/v0.11.4...flagd/v0.11.5)
(2024-12-17)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.35.2-20240906125204-0a6a901b42e8.1
([#1451](https://github.com/open-feature/flagd/issues/1451))
([8c6d91d](8c6d91d538))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.0-20240906125204-0a6a901b42e8.1
([#1475](https://github.com/open-feature/flagd/issues/1475))
([0b11c6c](0b11c6cf61))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.4
([#1433](https://github.com/open-feature/flagd/issues/1433))
([d33c7a5](d33c7a5522))
* **deps:** update module github.com/stretchr/testify to v1.10.0
([#1455](https://github.com/open-feature/flagd/issues/1455))
([8c843df](8c843df771))
* **deps:** update module golang.org/x/net to v0.31.0
([#1446](https://github.com/open-feature/flagd/issues/1446))
([9e35111](9e351117b4))
* **deps:** update module golang.org/x/net to v0.32.0
([#1458](https://github.com/open-feature/flagd/issues/1458))
([ac0b123](ac0b123ce8))
* **deps:** update module golang.org/x/sync to v0.9.0
([#1445](https://github.com/open-feature/flagd/issues/1445))
([8893e94](8893e94b94))
* **deps:** update module google.golang.org/grpc to v1.68.0
([#1442](https://github.com/open-feature/flagd/issues/1442))
([cd27d09](cd27d098e6))
* **deps:** update module google.golang.org/grpc to v1.68.1
([#1456](https://github.com/open-feature/flagd/issues/1456))
([0b6e2a1](0b6e2a1cd6))
* **deps:** update module google.golang.org/grpc to v1.69.0
([#1469](https://github.com/open-feature/flagd/issues/1469))
([dd4869f](dd4869f5e0))
* **deps:** update module google.golang.org/protobuf to v1.35.2
([#1450](https://github.com/open-feature/flagd/issues/1450))
([6b9834d](6b9834d4b3))
* **deps:** update module google.golang.org/protobuf to v1.36.0
([#1474](https://github.com/open-feature/flagd/issues/1474))
([6a8a9a9](6a8a9a981c))
* **deps:** update opentelemetry-go monorepo
([#1447](https://github.com/open-feature/flagd/issues/1447))
([68b5794](68b5794180))


###  New Features

* add context-value flag
([#1448](https://github.com/open-feature/flagd/issues/1448))
([7ca092e](7ca092e478))
</details>

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

##
[0.6.8](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.7...flagd-proxy/v0.6.8)
(2024-12-17)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.35.2-20240906125204-0a6a901b42e8.1
([#1451](https://github.com/open-feature/flagd/issues/1451))
([8c6d91d](8c6d91d538))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.0-20240906125204-0a6a901b42e8.1
([#1475](https://github.com/open-feature/flagd/issues/1475))
([0b11c6c](0b11c6cf61))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.4
([#1433](https://github.com/open-feature/flagd/issues/1433))
([d33c7a5](d33c7a5522))
* **deps:** update module golang.org/x/net to v0.31.0
([#1446](https://github.com/open-feature/flagd/issues/1446))
([9e35111](9e351117b4))
* **deps:** update module golang.org/x/net to v0.32.0
([#1458](https://github.com/open-feature/flagd/issues/1458))
([ac0b123](ac0b123ce8))
* **deps:** update module golang.org/x/sync to v0.9.0
([#1445](https://github.com/open-feature/flagd/issues/1445))
([8893e94](8893e94b94))
* **deps:** update module google.golang.org/grpc to v1.68.0
([#1442](https://github.com/open-feature/flagd/issues/1442))
([cd27d09](cd27d098e6))
* **deps:** update module google.golang.org/grpc to v1.68.1
([#1456](https://github.com/open-feature/flagd/issues/1456))
([0b6e2a1](0b6e2a1cd6))
* **deps:** update module google.golang.org/grpc to v1.69.0
([#1469](https://github.com/open-feature/flagd/issues/1469))
([dd4869f](dd4869f5e0))
* **deps:** update opentelemetry-go monorepo
([#1447](https://github.com/open-feature/flagd/issues/1447))
([68b5794](68b5794180))
</details>

<details><summary>core: 0.10.5</summary>

##
[0.10.5](https://github.com/open-feature/flagd/compare/core/v0.10.4...core/v0.10.5)
(2024-12-17)


### 🐛 Bug Fixes

* **deps:** update kubernetes packages to v0.31.2
([#1430](https://github.com/open-feature/flagd/issues/1430))
([0df8622](0df8622155))
* **deps:** update kubernetes packages to v0.31.3
([#1454](https://github.com/open-feature/flagd/issues/1454))
([f56d7b0](f56d7b043c))
* **deps:** update kubernetes packages to v0.31.4
([#1461](https://github.com/open-feature/flagd/issues/1461))
([431fbb4](431fbb4951))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.35.2-20240906125204-0a6a901b42e8.1
([#1451](https://github.com/open-feature/flagd/issues/1451))
([8c6d91d](8c6d91d538))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.36.0-20240906125204-0a6a901b42e8.1
([#1475](https://github.com/open-feature/flagd/issues/1475))
([0b11c6c](0b11c6cf61))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.6.0 ([#1460](https://github.com/open-feature/flagd/issues/1460))
([dbc1da4](dbc1da4ba9))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.6.1 ([#1473](https://github.com/open-feature/flagd/issues/1473))
([a3d899c](a3d899c5f8))
* **deps:** update module github.com/fsnotify/fsnotify to v1.8.0
([#1438](https://github.com/open-feature/flagd/issues/1438))
([949c73b](949c73bd6e))
* **deps:** update module github.com/stretchr/testify to v1.10.0
([#1455](https://github.com/open-feature/flagd/issues/1455))
([8c843df](8c843df771))
* **deps:** update module golang.org/x/crypto to v0.29.0
([#1443](https://github.com/open-feature/flagd/issues/1443))
([db96dd5](db96dd57b9))
* **deps:** update module golang.org/x/crypto to v0.30.0
([#1457](https://github.com/open-feature/flagd/issues/1457))
([dbdaa19](dbdaa199f0))
* **deps:** update module golang.org/x/crypto to v0.31.0
([#1463](https://github.com/open-feature/flagd/issues/1463))
([b2245d7](b2245d7f73))
* **deps:** update module golang.org/x/mod to v0.22.0
([#1444](https://github.com/open-feature/flagd/issues/1444))
([ed064e1](ed064e134f))
* **deps:** update module google.golang.org/grpc to v1.68.0
([#1442](https://github.com/open-feature/flagd/issues/1442))
([cd27d09](cd27d098e6))
* **deps:** update module google.golang.org/grpc to v1.68.1
([#1456](https://github.com/open-feature/flagd/issues/1456))
([0b6e2a1](0b6e2a1cd6))
* **deps:** update module google.golang.org/grpc to v1.69.0
([#1469](https://github.com/open-feature/flagd/issues/1469))
([dd4869f](dd4869f5e0))
* **deps:** update opentelemetry-go monorepo
([#1447](https://github.com/open-feature/flagd/issues/1447))
([68b5794](68b5794180))


###  New Features

* add context-value flag
([#1448](https://github.com/open-feature/flagd/issues/1448))
([7ca092e](7ca092e478))
* s3 support for the blob sync
([#1449](https://github.com/open-feature/flagd/issues/1449))
([a9f7261](a9f7261e75))
</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>
2024-12-18 11:05:24 -05:00
renovate[bot] 0b11c6cf61
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.0-20240906125204-0a6a901b42e8.1 (#1475)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.35.2-20240906125204-0a6a901b42e8.1` ->
`v1.36.0-20240906125204-0a6a901b42e8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.0-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.36.0-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.35.2-20240906125204-0a6a901b42e8.1/v1.36.0-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.35.2-20240906125204-0a6a901b42e8.1/v1.36.0-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS42OS4zIiwidXBkYXRlZEluVmVyIjoiMzkuNjkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 00:45:11 +00:00
renovate[bot] 6a8a9a981c
fix(deps): update module google.golang.org/protobuf to v1.36.0 (#1474)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/protobuf](https://redirect.github.com/protocolbuffers/protobuf-go)
| `v1.35.2` -> `v1.36.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fprotobuf/v1.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fprotobuf/v1.35.2/v1.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.35.2/v1.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.36.0`](https://redirect.github.com/protocolbuffers/protobuf-go/releases/tag/v1.36.0)

[Compare
Source](https://redirect.github.com/protocolbuffers/protobuf-go/compare/v1.35.2...v1.36.0)

**Full Changelog**:
https://github.com/protocolbuffers/protobuf-go/compare/v1.35.2...v1.36.0

User-visible changes:

[CL/635139](https://go-review.googlesource.com/c/protobuf/+/635139):
src/google/protobuf: document UnmarshalJSON / API level behavior
[CL/635138](https://go-review.googlesource.com/c/protobuf/+/635138):
reflect/protoreflect: use \[] syntax to reference method
[CL/635137](https://go-review.googlesource.com/c/protobuf/+/635137):
proto: add reference to size semantics with lazy decoding to comment
[CL/634818](https://go-review.googlesource.com/c/protobuf/+/634818):
compiler/protogen: allow overriding API level from --go_opt
[CL/634817](https://go-review.googlesource.com/c/protobuf/+/634817):
cmd/protoc-gen-go: generate \_protoopaque variant for hybrid
[CL/634816](https://go-review.googlesource.com/c/protobuf/+/634816):
all: regenerate.bash for Opaque API
[CL/634815](https://go-review.googlesource.com/c/protobuf/+/634815):
all: Release the Opaque API
[CL/634015](https://go-review.googlesource.com/c/protobuf/+/634015):
types/descriptorpb: regenerate using latest protobuf v29.1 release
[CL/632735](https://go-review.googlesource.com/c/protobuf/+/632735):
internal/impl: skip synthetic oneofs in messageInfo
[CL/627876](https://go-review.googlesource.com/c/protobuf/+/627876):
all: start v1.35.2-devel

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS42OS4zIiwidXBkYXRlZEluVmVyIjoiMzkuNjkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 21:30:10 +00:00
renovate[bot] a3d899c5f8
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.6.1 (#1473)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://redirect.github.com/diegoholiveira/jsonlogic)
| `v3.6.0` -> `v3.6.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.6.0/v3.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.6.0/v3.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.6.1`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.6.1)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.6.0...v3.6.1)

#### What's Changed

- chore(jsonlogic): Modified the logic to evaluate 'and' & 'or' lazily
by [@&#8203;cupofcat](https://redirect.github.com/cupofcat) in
[https://github.com/diegoholiveira/jsonlogic/pull/92](https://redirect.github.com/diegoholiveira/jsonlogic/pull/92)

#### New Contributors

- [@&#8203;cupofcat](https://redirect.github.com/cupofcat) made their
first contribution in
[https://github.com/diegoholiveira/jsonlogic/pull/92](https://redirect.github.com/diegoholiveira/jsonlogic/pull/92)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.6.0...v3.6.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS42OS4zIiwidXBkYXRlZEluVmVyIjoiMzkuNjkuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-16 18:02:53 +00:00
renovate[bot] dd4869f5e0
fix(deps): update module google.golang.org/grpc to v1.69.0 (#1469)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.68.1` -> `v1.69.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.69.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.69.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.68.1/v1.69.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.68.1/v1.69.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.69.0`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.69.0):
Release 1.69.0

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.68.1...v1.69.0)

### Known Issues

- The recently added `grpc.NewClient` function is incompatible with
forward proxies, because it resolves the target hostname on the client
instead of passing the hostname to the proxy. A fix is expected to be a
part of grpc-go v1.70.
([#&#8203;7556](https://redirect.github.com/grpc/grpc-go/issues/7556))

### New Features

- stats/opentelemetry: Introduce new APIs to enable OpenTelemetry
instrumentation for metrics on servers and clients
([#&#8203;7874](https://redirect.github.com/grpc/grpc-go/issues/7874))
- xdsclient: add support to fallback to lower priority servers when
higher priority ones are down
([#&#8203;7701](https://redirect.github.com/grpc/grpc-go/issues/7701))
- dns: Add support for link local IPv6 addresses
([#&#8203;7889](https://redirect.github.com/grpc/grpc-go/issues/7889))
- The new experimental `pickfirst` LB policy (disabled by default)
supports Happy Eyeballs, interleaving IPv4 and IPv6 address as described
in [RFC-8305 section
4](https://www.rfc-editor.org/rfc/rfc8305#section-4), to attempt
connections to multiple backends concurrently. The experimental
`pickfirst` policy can be enabled by setting the environment variable
`GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST` to `true`.
([#&#8203;7725](https://redirect.github.com/grpc/grpc-go/issues/7725),
[#&#8203;7742](https://redirect.github.com/grpc/grpc-go/issues/7742))
- balancer/pickfirst: Emit metrics from the `pick_first` load balancing
policy
([#&#8203;7839](https://redirect.github.com/grpc/grpc-go/issues/7839))
- grpc: export `MethodHandler`, which is the type of an already-exported
field in `MethodDesc`
([#&#8203;7796](https://redirect.github.com/grpc/grpc-go/issues/7796))
- Special Thanks:
[@&#8203;mohdjishin](https://redirect.github.com/mohdjishin)

### Bug Fixes

- credentials/google: set scope for application default credentials
([#&#8203;7887](https://redirect.github.com/grpc/grpc-go/issues/7887))
- Special Thanks:
[@&#8203;halvards](https://redirect.github.com/halvards)
- xds: fix edge-case issues where some clients or servers would not
initialize correctly or would not receive errors when resources are
invalid or unavailable if another channel or server with the same target
was already in use .
([#&#8203;7851](https://redirect.github.com/grpc/grpc-go/issues/7851),
[#&#8203;7853](https://redirect.github.com/grpc/grpc-go/issues/7853))
- examples: fix the debugging example, which was broken by a recent
change
([#&#8203;7833](https://redirect.github.com/grpc/grpc-go/issues/7833))

### Behavior Changes

- client: update retry attempt backoff to apply jitter per updates to
[gRFC
A6](https://redirect.github.com/grpc/proposal/blob/master/A6-client-retries.md).
([#&#8203;7869](https://redirect.github.com/grpc/grpc-go/issues/7869))
    -   Special Thanks: [@&#8203;isgj](https://redirect.github.com/isgj)
- balancer/weightedroundrobin: use the `pick_first` LB policy to manage
connections
([#&#8203;7826](https://redirect.github.com/grpc/grpc-go/issues/7826))

### API Changes

- balancer: An internal method is added to the `balancer.SubConn`
interface to force implementors to embed a delegate implementation. This
requirement is present in the interface documentation, but wasn't
enforced earlier.
([#&#8203;7840](https://redirect.github.com/grpc/grpc-go/issues/7840))

### Performance Improvements

- mem: implement a `ReadAll()` method for more efficient `io.Reader`
consumption
([#&#8203;7653](https://redirect.github.com/grpc/grpc-go/issues/7653))
- Special Thanks: [@&#8203;ash2k](https://redirect.github.com/ash2k)
- mem: use slice capacity instead of length to determine whether to pool
buffers or directly allocate them
([#&#8203;7702](https://redirect.github.com/grpc/grpc-go/issues/7702))
- Special Thanks:
[@&#8203;PapaCharlie](https://redirect.github.com/PapaCharlie)

### Documentation

- examples/csm_observability: Add xDS Credentials and switch server to
be xDS enabled
([#&#8203;7875](https://redirect.github.com/grpc/grpc-go/issues/7875))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 23:32:23 +00:00
renovate[bot] b2245d7f73
fix(deps): update module golang.org/x/crypto to v0.31.0 (#1463)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.30.0` -> `v0.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.30.0/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.30.0/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-12 00:33:08 +00:00
Dave Josephsen a9f7261e75
feat: s3 support for the blob sync (#1449)
## This PR
Intent of this pr is to add S3 bucket support to the existing "blob"
sync.

### Related Issues
fixes #1376 

### Notes
Marking as a draft for now until I can find my aws creds and live-test
it.

### Follow-up Tasks
integration testing is yet to be performed

### How to test
unit tests provided

Signed-off-by: Dave Josephsen <dave.josephsen@gmail.com>
2024-12-11 16:06:36 -05:00
renovate[bot] 431fbb4951
fix(deps): update kubernetes packages to v0.31.4 (#1461)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[k8s.io/apimachinery](https://redirect.github.com/kubernetes/apimachinery)
| `v0.31.3` -> `v0.31.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fapimachinery/v0.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fapimachinery/v0.31.3/v0.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.31.3/v0.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [k8s.io/client-go](https://redirect.github.com/kubernetes/client-go) |
`v0.31.3` -> `v0.31.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fclient-go/v0.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fclient-go/v0.31.3/v0.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.31.3/v0.31.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.31.4`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.3...v0.31.4)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.3...v0.31.4)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.31.4`](https://redirect.github.com/kubernetes/client-go/compare/v0.31.3...v0.31.4)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.31.3...v0.31.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuNTguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-11 07:50:38 +00:00
renovate[bot] dbc1da4ba9
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.6.0 (#1460)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://redirect.github.com/diegoholiveira/jsonlogic)
| `v3.5.3` -> `v3.6.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.5.3/v3.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fdiegoholiveira%2fjsonlogic%2fv3/v3.5.3/v3.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.6.0`](https://redirect.github.com/diegoholiveira/jsonlogic/releases/tag/v3.6.0)

[Compare
Source](https://redirect.github.com/diegoholiveira/jsonlogic/compare/v3.5.3...v3.6.0)

#### What's Changed

- Make `ApplyInterface` private by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira)
([39698be5f2)
- Remove non canonical in_sorted operator by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira)
([a76f68e449)
- Allow in to be called with one parameter only by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira)

[2fc6d72ef3
- Allow variables on reduce operator by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira)

[2cc20c21b0
- Make `==` operator behave like `==` from spec by
[@&#8203;diegoholiveira](https://redirect.github.com/diegoholiveira)

[800dac4bf9

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.5.3...v3.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-10 02:27:31 +00:00
renovate[bot] ac0b123ce8
fix(deps): update module golang.org/x/net to v0.32.0 (#1458)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.31.0` -> `v0.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.31.0/v0.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.31.0/v0.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-07 02:34:32 +00:00
renovate[bot] dbdaa199f0
fix(deps): update module golang.org/x/crypto to v0.30.0 (#1457)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.29.0` -> `v0.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.29.0/v0.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.29.0/v0.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 21:18:08 +00:00
renovate[bot] 0b6e2a1cd6
fix(deps): update module google.golang.org/grpc to v1.68.1 (#1456)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.68.0` -> `v1.68.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.68.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.68.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.68.0/v1.68.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.68.0/v1.68.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.68.1`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.68.1):
Release 1.68.1

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.68.0...v1.68.1)

### Bug Fixes

- credentials/alts: avoid SRV and TXT lookups for handshaker service to
work around hangs caused by buggy versions of systemd-resolved.
([#&#8203;7861](https://redirect.github.com/grpc/grpc-go/issues/7861))

### Dependencies

- Relax minimum Go version requirement from `go1.22.7` to `go1.22`.
([#&#8203;7831](https://redirect.github.com/grpc/grpc-go/issues/7831))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-05 19:50:29 +00:00
Aleksei 7ca092e478
feat: add context-value flag (#1448)
- add the `--context-value` command line flag to pass arbitrary key
value pairs to the evaluation context

Signed-off-by: Aleksei Muratov <muratoff.alexey@gmail.com>
2024-12-05 11:05:46 -05:00
Todd Baert f7dd1eb630
docs: fix copy-pasted requirement
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-12-04 14:49:35 -05:00
renovate[bot] 8c843df771
fix(deps): update module github.com/stretchr/testify to v1.10.0 (#1455)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/stretchr/testify](https://redirect.github.com/stretchr/testify)
| `v1.9.0` -> `v1.10.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fstretchr%2ftestify/v1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fstretchr%2ftestify/v1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fstretchr%2ftestify/v1.9.0/v1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fstretchr%2ftestify/v1.9.0/v1.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>stretchr/testify (github.com/stretchr/testify)</summary>

###
[`v1.10.0`](https://redirect.github.com/stretchr/testify/releases/tag/v1.10.0)

[Compare
Source](https://redirect.github.com/stretchr/testify/compare/v1.9.0...v1.10.0)

#### What's Changed

##### Functional Changes

- Add PanicAssertionFunc by
[@&#8203;fahimbagar](https://redirect.github.com/fahimbagar) in
[https://github.com/stretchr/testify/pull/1337](https://redirect.github.com/stretchr/testify/pull/1337)
- assert: deprecate CompareType by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[https://github.com/stretchr/testify/pull/1566](https://redirect.github.com/stretchr/testify/pull/1566)
- assert: make YAML dependency pluggable via build tags by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[https://github.com/stretchr/testify/pull/1579](https://redirect.github.com/stretchr/testify/pull/1579)
- assert: new assertion NotElementsMatch by
[@&#8203;hendrywiranto](https://redirect.github.com/hendrywiranto) in
[https://github.com/stretchr/testify/pull/1600](https://redirect.github.com/stretchr/testify/pull/1600)
- mock: in order mock calls by
[@&#8203;ReyOrtiz](https://redirect.github.com/ReyOrtiz) in
[https://github.com/stretchr/testify/pull/1637](https://redirect.github.com/stretchr/testify/pull/1637)
- Add assertion for NotErrorAs by
[@&#8203;palsivertsen](https://redirect.github.com/palsivertsen) in
[https://github.com/stretchr/testify/pull/1129](https://redirect.github.com/stretchr/testify/pull/1129)
- Record Return Arguments of a Call by
[@&#8203;jayd3e](https://redirect.github.com/jayd3e) in
[https://github.com/stretchr/testify/pull/1636](https://redirect.github.com/stretchr/testify/pull/1636)
- assert.EqualExportedValues: accepts everything by
[@&#8203;redachl](https://redirect.github.com/redachl) in
[https://github.com/stretchr/testify/pull/1586](https://redirect.github.com/stretchr/testify/pull/1586)

##### Fixes

- assert: make tHelper a type alias by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[https://github.com/stretchr/testify/pull/1562](https://redirect.github.com/stretchr/testify/pull/1562)
- Do not get argument again unnecessarily in Arguments.Error() by
[@&#8203;TomWright](https://redirect.github.com/TomWright) in
[https://github.com/stretchr/testify/pull/820](https://redirect.github.com/stretchr/testify/pull/820)
- Fix time.Time compare by
[@&#8203;myxo](https://redirect.github.com/myxo) in
[https://github.com/stretchr/testify/pull/1582](https://redirect.github.com/stretchr/testify/pull/1582)
- assert.Regexp: handle \[]byte array properly by
[@&#8203;kevinburkesegment](https://redirect.github.com/kevinburkesegment)
in
[https://github.com/stretchr/testify/pull/1587](https://redirect.github.com/stretchr/testify/pull/1587)
- assert: collect.FailNow() should not panic by
[@&#8203;marshall-lee](https://redirect.github.com/marshall-lee) in
[https://github.com/stretchr/testify/pull/1481](https://redirect.github.com/stretchr/testify/pull/1481)
- mock: simplify implementation of FunctionalOptions by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[https://github.com/stretchr/testify/pull/1571](https://redirect.github.com/stretchr/testify/pull/1571)
- mock: caller information for unexpected method call by
[@&#8203;spirin](https://redirect.github.com/spirin) in
[https://github.com/stretchr/testify/pull/1644](https://redirect.github.com/stretchr/testify/pull/1644)
- suite: fix test failures by
[@&#8203;stevenh](https://redirect.github.com/stevenh) in
[https://github.com/stretchr/testify/pull/1421](https://redirect.github.com/stretchr/testify/pull/1421)
- Fix issue
[#&#8203;1662](https://redirect.github.com/stretchr/testify/issues/1662)
(comparing infs should fail) by
[@&#8203;ybrustin](https://redirect.github.com/ybrustin) in
[https://github.com/stretchr/testify/pull/1663](https://redirect.github.com/stretchr/testify/pull/1663)
- NotSame should fail if args are not pointers
[#&#8203;1661](https://redirect.github.com/stretchr/testify/issues/1661)
by [@&#8203;sikehish](https://redirect.github.com/sikehish) in
[https://github.com/stretchr/testify/pull/1664](https://redirect.github.com/stretchr/testify/pull/1664)
- Increase timeouts in Test_Mock_Called_blocks to reduce flakiness in CI
by [@&#8203;sikehish](https://redirect.github.com/sikehish) in
[https://github.com/stretchr/testify/pull/1667](https://redirect.github.com/stretchr/testify/pull/1667)
- fix: compare functional option names for indirect calls by
[@&#8203;arjun-1](https://redirect.github.com/arjun-1) in
[https://github.com/stretchr/testify/pull/1626](https://redirect.github.com/stretchr/testify/pull/1626)

##### Documantation, Build & CI

- .gitignore: ignore "go test -c" binaries by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[https://github.com/stretchr/testify/pull/1565](https://redirect.github.com/stretchr/testify/pull/1565)
- mock: improve doc by
[@&#8203;dolmen](https://redirect.github.com/dolmen) in
[https://github.com/stretchr/testify/pull/1570](https://redirect.github.com/stretchr/testify/pull/1570)
- mock: fix FunctionalOptions docs by
[@&#8203;snirye](https://redirect.github.com/snirye) in
[https://github.com/stretchr/testify/pull/1433](https://redirect.github.com/stretchr/testify/pull/1433)
- README: link out to the excellent testifylint by
[@&#8203;brackendawson](https://redirect.github.com/brackendawson) in
[https://github.com/stretchr/testify/pull/1568](https://redirect.github.com/stretchr/testify/pull/1568)
- assert: fix typo in comment by
[@&#8203;JohnEndson](https://redirect.github.com/JohnEndson) in
[https://github.com/stretchr/testify/pull/1580](https://redirect.github.com/stretchr/testify/pull/1580)
- Correct the EventuallyWithT and EventuallyWithTf example by
[@&#8203;JonCrowther](https://redirect.github.com/JonCrowther) in
[https://github.com/stretchr/testify/pull/1588](https://redirect.github.com/stretchr/testify/pull/1588)
- CI: bump softprops/action-gh-release from 1 to 2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/stretchr/testify/pull/1575](https://redirect.github.com/stretchr/testify/pull/1575)
- mock: document more alternatives to deprecated AnythingOfTypeArgument
by [@&#8203;dolmen](https://redirect.github.com/dolmen) in
[https://github.com/stretchr/testify/pull/1569](https://redirect.github.com/stretchr/testify/pull/1569)
- assert: Correctly document EqualValues behavior by
[@&#8203;brackendawson](https://redirect.github.com/brackendawson) in
[https://github.com/stretchr/testify/pull/1593](https://redirect.github.com/stretchr/testify/pull/1593)
- fix: grammar in godoc by
[@&#8203;miparnisari](https://redirect.github.com/miparnisari) in
[https://github.com/stretchr/testify/pull/1607](https://redirect.github.com/stretchr/testify/pull/1607)
- .github/workflows: Run tests for Go 1.22 by
[@&#8203;HaraldNordgren](https://redirect.github.com/HaraldNordgren) in
[https://github.com/stretchr/testify/pull/1629](https://redirect.github.com/stretchr/testify/pull/1629)
- Document suite's lack of support for t.Parallel by
[@&#8203;brackendawson](https://redirect.github.com/brackendawson) in
[https://github.com/stretchr/testify/pull/1645](https://redirect.github.com/stretchr/testify/pull/1645)
- assert: fix typos in comments by
[@&#8203;alexandear](https://redirect.github.com/alexandear) in
[https://github.com/stretchr/testify/pull/1650](https://redirect.github.com/stretchr/testify/pull/1650)
- mock: fix doc comment for NotBefore by
[@&#8203;alexandear](https://redirect.github.com/alexandear) in
[https://github.com/stretchr/testify/pull/1651](https://redirect.github.com/stretchr/testify/pull/1651)
- Generate better comments for require package by
[@&#8203;Neokil](https://redirect.github.com/Neokil) in
[https://github.com/stretchr/testify/pull/1610](https://redirect.github.com/stretchr/testify/pull/1610)
- README: replace Testify V2 notice with
[@&#8203;dolmen](https://redirect.github.com/dolmen)'s V2 manifesto by
[@&#8203;hendrywiranto](https://redirect.github.com/hendrywiranto) in
[https://github.com/stretchr/testify/pull/1518](https://redirect.github.com/stretchr/testify/pull/1518)

#### New Contributors

- [@&#8203;fahimbagar](https://redirect.github.com/fahimbagar) made
their first contribution in
[https://github.com/stretchr/testify/pull/1337](https://redirect.github.com/stretchr/testify/pull/1337)
- [@&#8203;TomWright](https://redirect.github.com/TomWright) made their
first contribution in
[https://github.com/stretchr/testify/pull/820](https://redirect.github.com/stretchr/testify/pull/820)
- [@&#8203;snirye](https://redirect.github.com/snirye) made their first
contribution in
[https://github.com/stretchr/testify/pull/1433](https://redirect.github.com/stretchr/testify/pull/1433)
- [@&#8203;myxo](https://redirect.github.com/myxo) made their first
contribution in
[https://github.com/stretchr/testify/pull/1582](https://redirect.github.com/stretchr/testify/pull/1582)
- [@&#8203;JohnEndson](https://redirect.github.com/JohnEndson) made
their first contribution in
[https://github.com/stretchr/testify/pull/1580](https://redirect.github.com/stretchr/testify/pull/1580)
- [@&#8203;JonCrowther](https://redirect.github.com/JonCrowther) made
their first contribution in
[https://github.com/stretchr/testify/pull/1588](https://redirect.github.com/stretchr/testify/pull/1588)
- [@&#8203;miparnisari](https://redirect.github.com/miparnisari) made
their first contribution in
[https://github.com/stretchr/testify/pull/1607](https://redirect.github.com/stretchr/testify/pull/1607)
- [@&#8203;marshall-lee](https://redirect.github.com/marshall-lee) made
their first contribution in
[https://github.com/stretchr/testify/pull/1481](https://redirect.github.com/stretchr/testify/pull/1481)
- [@&#8203;spirin](https://redirect.github.com/spirin) made their first
contribution in
[https://github.com/stretchr/testify/pull/1644](https://redirect.github.com/stretchr/testify/pull/1644)
- [@&#8203;ReyOrtiz](https://redirect.github.com/ReyOrtiz) made their
first contribution in
[https://github.com/stretchr/testify/pull/1637](https://redirect.github.com/stretchr/testify/pull/1637)
- [@&#8203;stevenh](https://redirect.github.com/stevenh) made their
first contribution in
[https://github.com/stretchr/testify/pull/1421](https://redirect.github.com/stretchr/testify/pull/1421)
- [@&#8203;jayd3e](https://redirect.github.com/jayd3e) made their first
contribution in
[https://github.com/stretchr/testify/pull/1636](https://redirect.github.com/stretchr/testify/pull/1636)
- [@&#8203;Neokil](https://redirect.github.com/Neokil) made their first
contribution in
[https://github.com/stretchr/testify/pull/1610](https://redirect.github.com/stretchr/testify/pull/1610)
- [@&#8203;redachl](https://redirect.github.com/redachl) made their
first contribution in
[https://github.com/stretchr/testify/pull/1586](https://redirect.github.com/stretchr/testify/pull/1586)
- [@&#8203;ybrustin](https://redirect.github.com/ybrustin) made their
first contribution in
[https://github.com/stretchr/testify/pull/1663](https://redirect.github.com/stretchr/testify/pull/1663)
- [@&#8203;sikehish](https://redirect.github.com/sikehish) made their
first contribution in
[https://github.com/stretchr/testify/pull/1664](https://redirect.github.com/stretchr/testify/pull/1664)
- [@&#8203;arjun-1](https://redirect.github.com/arjun-1) made their
first contribution in
[https://github.com/stretchr/testify/pull/1626](https://redirect.github.com/stretchr/testify/pull/1626)

**Full Changelog**:
https://github.com/stretchr/testify/compare/v1.9.0...v1.10.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-23 15:29:27 +00:00
renovate[bot] f56d7b043c
fix(deps): update kubernetes packages to v0.31.3 (#1454)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[k8s.io/apimachinery](https://redirect.github.com/kubernetes/apimachinery)
| `v0.31.2` -> `v0.31.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fapimachinery/v0.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fapimachinery/v0.31.2/v0.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.31.2/v0.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [k8s.io/client-go](https://redirect.github.com/kubernetes/client-go) |
`v0.31.2` -> `v0.31.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fclient-go/v0.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fclient-go/v0.31.2/v0.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.31.2/v0.31.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.31.3`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.2...v0.31.3)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.2...v0.31.3)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.31.3`](https://redirect.github.com/kubernetes/client-go/compare/v0.31.2...v0.31.3)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.31.2...v0.31.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xOS4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTkuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-21 14:32:39 +00:00
Pradeep Mishra 65bf635e33
test: update e2e tests (#1452)
Signed-off-by: Pradeep <pradeepbbl@gmail.com>
2024-11-19 16:22:39 -05:00
renovate[bot] 8c6d91d538
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.35.2-20240906125204-0a6a901b42e8.1 (#1451)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.35.1-20240906125204-0a6a901b42e8.1` ->
`v1.35.2-20240906125204-0a6a901b42e8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.35.2-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.35.2-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.35.1-20240906125204-0a6a901b42e8.1/v1.35.2-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.35.1-20240906125204-0a6a901b42e8.1/v1.35.2-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMS41IiwidXBkYXRlZEluVmVyIjoiMzkuMTEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 21:19:12 +00:00
renovate[bot] 6b9834d4b3
fix(deps): update module google.golang.org/protobuf to v1.35.2 (#1450)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/protobuf](https://redirect.github.com/protocolbuffers/protobuf-go)
| `v1.35.1` -> `v1.35.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.35.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fprotobuf/v1.35.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fprotobuf/v1.35.1/v1.35.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.35.1/v1.35.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.35.2`](https://redirect.github.com/protocolbuffers/protobuf-go/releases/tag/v1.35.2)

[Compare
Source](https://redirect.github.com/protocolbuffers/protobuf-go/compare/v1.35.1...v1.35.2)

**Full Changelog**:
https://github.com/protocolbuffers/protobuf-go/compare/v1.35.1...v1.35.2

Maintenance:

[CL/623115](https://go-review.googlesource.com/c/protobuf/+/623115):
proto: refactor equal_test from explicit table to use makeMessages()
[CL/623116](https://go-review.googlesource.com/c/protobuf/+/623116):
encoding/prototext: use testmessages_test.go approach, too
[CL/623117](https://go-review.googlesource.com/c/protobuf/+/623117):
internal/testprotos/test: add nested message field with \[lazy=true]
[CL/624415](https://go-review.googlesource.com/c/protobuf/+/624415):
proto: switch messageset_test to use makeMessages() injection point
[CL/624416](https://go-review.googlesource.com/c/protobuf/+/624416):
internal/impl: fix TestMarshalMessageSetLazyRace (was a no-op!)

User-visible changes:

[CL/618395](https://go-review.googlesource.com/c/protobuf/+/618395):
encoding/protojson: allow missing value for Any of type Empty
[CL/618979](https://go-review.googlesource.com/c/protobuf/+/618979):
all: implement strip_enum_prefix editions feature
[CL/622575](https://go-review.googlesource.com/c/protobuf/+/622575):
testing/protocmp: document behavior when combining Ignore and Sort

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMS41IiwidXBkYXRlZEluVmVyIjoiMzkuMTEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 15:25:07 +00:00
renovate[bot] 68b5794180
fix(deps): update opentelemetry-go monorepo (#1447)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v0.53.0` -> `v0.54.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.53.0/v0.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.53.0/v0.54.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.32.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v1.32.0):
/v0.54.0/v0.8.0/v0.0.11

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.31.0...v1.32.0)

#### Overview

##### Added

- Add `go.opentelemetry.io/otel/sdk/metric/exemplar.AlwaysOffFilter`,
which can be used to disable exemplar recording.
([#&#8203;5850](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5850))
- Add `go.opentelemetry.io/otel/sdk/metric.WithExemplarFilter`, which
can be used to configure the exemplar filter used by the metrics SDK.
([#&#8203;5850](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5850))
- Add `ExemplarReservoirProviderSelector` and
`DefaultExemplarReservoirProviderSelector` to
`go.opentelemetry.io/otel/sdk/metric`, which defines the exemplar
reservoir to use based on the aggregation of the metric.
([#&#8203;5861](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5861))
- Add `ExemplarReservoirProviderSelector` to
`go.opentelemetry.io/otel/sdk/metric.Stream` to allow using views to
configure the exemplar reservoir to use for a metric.
([#&#8203;5861](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5861))
- Add `ReservoirProvider`, `HistogramReservoirProvider` and
`FixedSizeReservoirProvider` to
`go.opentelemetry.io/otel/sdk/metric/exemplar` to make it convenient to
use providers of Reservoirs.
([#&#8203;5861](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5861))
-   The `go.opentelemetry.io/otel/semconv/v1.27.0` package.
The package contains semantic conventions from the `v1.27.0` version of
the OpenTelemetry Semantic Conventions.
([#&#8203;5894](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5894))
- Add `Attributes attribute.Set` field to `Scope` in
`go.opentelemetry.io/otel/sdk/instrumentation`.
([#&#8203;5903](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5903))
- Add `Attributes attribute.Set` field to `ScopeRecords` in
`go.opentelemetry.io/otel/log/logtest`.
([#&#8203;5927](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5927))
- `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` adds
instrumentation scope attributes.
([#&#8203;5934](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5934))
- `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp` adds
instrumentation scope attributes.
([#&#8203;5934](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5934))
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`
adds instrumentation scope attributes.
([#&#8203;5935](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5935))
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`
adds instrumentation scope attributes.
([#&#8203;5935](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5935))
- `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc` adds
instrumentation scope attributes.
([#&#8203;5933](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5933))
- `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp` adds
instrumentation scope attributes.
([#&#8203;5933](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5933))
- `go.opentelemetry.io/otel/exporters/prometheus` adds instrumentation
scope attributes in `otel_scope_info` metric as labels.
([#&#8203;5932](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5932))

##### Changed

- Support scope attributes and make them as identifying for `Tracer` in
`go.opentelemetry.io/otel` and `go.opentelemetry.io/otel/sdk/trace`.
([#&#8203;5924](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5924))
- Support scope attributes and make them as identifying for `Meter` in
`go.opentelemetry.io/otel` and `go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;5926](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5926))
- Support scope attributes and make them as identifying for `Logger` in
`go.opentelemetry.io/otel` and `go.opentelemetry.io/otel/sdk/log`.
([#&#8203;5925](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5925))
- Make schema URL and scope attributes as identifying for `Tracer` in
`go.opentelemetry.io/otel/bridge/opentracing`.
([#&#8203;5931](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5931))
- Clear unneeded slice elements to allow GC to collect the objects in
`go.opentelemetry.io/otel/sdk/metric` and
`go.opentelemetry.io/otel/sdk/trace`.
([#&#8203;5804](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5804))

##### Fixed

- Global MeterProvider registration unwraps global instrument Observers,
the undocumented Unwrap() methods are now private.
([#&#8203;5881](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5881))
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`
now keeps the metadata already present in the context when `WithHeaders`
is used.
([#&#8203;5892](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5892))
- `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc` now
keeps the metadata already present in the context when `WithHeaders` is
used.
([#&#8203;5911](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5911))
- `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc` now
keeps the metadata already present in the context when `WithHeaders` is
used.
([#&#8203;5915](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5915))
- Fix `go.opentelemetry.io/otel/exporters/prometheus` trying to add
exemplars to Gauge metrics, which is unsupported.
([#&#8203;5912](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5912))
- Fix `WithEndpointURL` to always use a secure connection when an https
URL is passed in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
([#&#8203;5944](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5944))
- Fix `WithEndpointURL` to always use a secure connection when an https
URL is passed in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;5944](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5944))
- Fix `WithEndpointURL` to always use a secure connection when an https
URL is passed in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`.
([#&#8203;5944](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5944))
- Fix `WithEndpointURL` to always use a secure connection when an https
URL is passed in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;5944](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5944))
- Fix incorrect metrics generated from callbacks when multiple readers
are used in `go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;5900](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5900))

##### Removed

- Remove all examples under `go.opentelemetry.io/otel/example` as they
are moved to [Contrib
repository](https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/tree/main/examples).
([#&#8203;5930](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5930))

#### What's Changed

- Allow configuring the exemplar filter on the metrics SDK by
[@&#8203;dashpole](https://redirect.github.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5850](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5850)
- chore(deps): update lycheeverse/lychee-action action to v2.0.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5884](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5884)
- Run the test compatibility check even if tests failed by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5879](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5879)
- chore(deps): update lycheeverse/lychee-action action to v2.0.2 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5885](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5885)
- fix(deps): update module github.com/prometheus/client_golang to
v1.20.5 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5886](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5886)
- chore(deps): update googleapis to
[`796eee8`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/796eee8)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5888](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5888)
- Remove company from emeritus by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5887](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5887)
- Add selector of exemplar reservoir providers to metric.Stream
configuration by
[@&#8203;dashpole](https://redirect.github.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5861](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5861)
- otel: conceal unwrapping for global async instrument registration by
[@&#8203;jmacd](https://redirect.github.com/jmacd) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5881](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5881)
- Generate `semconv/v1.27.0` by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5894](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5894)
- otlpmetricgrpc: Keep metadata for gRPC in context by
[@&#8203;mrasu](https://redirect.github.com/mrasu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5892](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5892)
- Cleanup interaction of exemplar and aggregation by
[@&#8203;dashpole](https://redirect.github.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5899](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5899)
- chore(deps): update googleapis to
[`324edc3`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/324edc3)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5908](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5908)
- \[chore] Use errors.Join to unify errors by
[@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5907](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5907)
- \[chore] Remove unnecessary type declaration in templated transforms
by [@&#8203;MrAlias](https://redirect.github.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5906](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5906)
- Keep metadata for gRPC in context for log signal by
[@&#8203;RocooHash](https://redirect.github.com/RocooHash) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5911](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5911)
- chore(deps): update benchmark-action/github-action-benchmark action to
v1.20.4 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5916](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5916)
- Revert Cleanup interaction of exemplar and aggregation by
[@&#8203;XSAM](https://redirect.github.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5913](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5913)
- Allow additional context to be added when WithHeaders is used in OTLP
gRPC traces exporter by
[@&#8203;pree-dew](https://redirect.github.com/pree-dew) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5915](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5915)
- Fix exemplars being added to gauge metrics in the prometheus exporter
by [@&#8203;trthomps](https://redirect.github.com/trthomps) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5912](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5912)
- Switch arm builds out of actuated and into the CNCF runners by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5923](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5923)
- fix(deps): update module github.com/prometheus/common to v0.60.1 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5919](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5919)
- Add Cheng-Zhen as a triager by
[@&#8203;dmathieu](https://redirect.github.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5922](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5922)
- sdk/instrumentation: Add Attributes to Scope by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5903](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5903)
- Make scope attributes as identifying for Tracer by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5924](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5924)
- Make scope attributes as identifying for Meter by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5926](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5926)
- Make scope attributes as identifying for Logger by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5925](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5925)
- log/logtest: Add Attributes to ScopeRecords by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5927](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5927)
- opentracing: Make schemaURL and scope attributes as identifying for
Tracer by [@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5931](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5931)
- otlptrace: Add instrumentation scope attributes by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5934](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5934)
- otlpmetric: Add instrumentation scope attributes by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5935](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5935)
- otlplog: Add instrumentation scope attributes by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5933](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5933)
- Remove examples by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5930](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5930)
- docs: updating outdated comments by
[@&#8203;codeboten](https://redirect.github.com/codeboten) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5940](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5940)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.23.0 by [@&#8203;renovate](https://redirect.github.com/renovate)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/5939](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5939)
- prometheus: Refactor getAttrs by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5937](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5937)
- chore(deps): update googleapis to
[`dd2ea8e`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/dd2ea8e)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5943](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5943)
- log: Update package documentation by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5942](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5942)
- prometheus: Add instrumentation scope attributes to otel_scope_info by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5932](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5932)
- fix(deps): update github.com/opentracing-contrib/go-grpc digest to
[`d08aa2b`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/d08aa2b)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5945](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5945)
- Override insecure when endpoint URL is set by
[@&#8203;sevaorlov](https://redirect.github.com/sevaorlov) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5944](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5944)
- fix(deps): update module go.opentelemetry.io/build-tools/gotmpl to
v0.15.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5949](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5949)
- fix(deps): update module go.opentelemetry.io/build-tools/crosslink to
v0.15.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5948](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5948)
- fix(deps): update module go.opentelemetry.io/build-tools/semconvgen to
v0.15.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5953](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5953)
- fix(deps): update github.com/opentracing-contrib/go-grpc digest to
[`e3cbcab`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/e3cbcab)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5952](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5952)
- chore(deps): update lycheeverse/lychee-action action to v2.1.0 by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5950](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5950)
- fix(deps): update module go.opentelemetry.io/build-tools/multimod to
v0.15.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5951](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5951)
- Fix incorrect metrics getting generated from multiple readers by
[@&#8203;pree-dew](https://redirect.github.com/pree-dew) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5900](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5900)
- Allow GC to collect unneeded slice elements by
[@&#8203;ash2k](https://redirect.github.com/ash2k) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5804](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5804)
- chore(deps): update golang.org/x by
[@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5957](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5957)
- fix(deps): update module github.com/opentracing-contrib/go-grpc to
v0.1.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5958](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5958)
- fix(deps): update github.com/opentracing-contrib/go-grpc/test digest
to
[`51a56c3`](https://redirect.github.com/open-telemetry/opentelemetry-go/commit/51a56c3)
by [@&#8203;renovate](https://redirect.github.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5959](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5959)
- Release v1.32.0/v0.54.0/v0.8.0/v0.0.11 by
[@&#8203;pellared](https://redirect.github.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5960](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5960)

#### New Contributors

- [@&#8203;mrasu](https://redirect.github.com/mrasu) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5892](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5892)
- [@&#8203;RocooHash](https://redirect.github.com/RocooHash) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5911](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5911)
- [@&#8203;trthomps](https://redirect.github.com/trthomps) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5912](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5912)
- [@&#8203;sevaorlov](https://redirect.github.com/sevaorlov) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5944](https://redirect.github.com/open-telemetry/opentelemetry-go/pull/5944)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.31.0...v1.32.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43LjEiLCJ1cGRhdGVkSW5WZXIiOiIzOS43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-09 01:18:11 +00:00
renovate[bot] 9e351117b4
fix(deps): update module golang.org/x/net to v0.31.0 (#1446)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.30.0` -> `v0.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.30.0/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.30.0/v0.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43LjEiLCJ1cGRhdGVkSW5WZXIiOiIzOS43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 22:39:38 +00:00
renovate[bot] 8893e94b94
fix(deps): update module golang.org/x/sync to v0.9.0 (#1445)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/sync | `v0.8.0` -> `v0.9.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsync/v0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fsync/v0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fsync/v0.8.0/v0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsync/v0.8.0/v0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43LjEiLCJ1cGRhdGVkSW5WZXIiOiIzOS43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 10:09:38 +00:00
renovate[bot] ed064e134f
fix(deps): update module golang.org/x/mod to v0.22.0 (#1444)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/mod | `v0.21.0` -> `v0.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.21.0/v0.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.21.0/v0.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43LjEiLCJ1cGRhdGVkSW5WZXIiOiIzOS43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 06:15:25 +00:00
renovate[bot] db96dd57b9
fix(deps): update module golang.org/x/crypto to v0.29.0 (#1443)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.28.0` -> `v0.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.28.0/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.28.0/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43LjEiLCJ1cGRhdGVkSW5WZXIiOiIzOS43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 03:51:31 +00:00
renovate[bot] cd27d098e6
fix(deps): update module google.golang.org/grpc to v1.68.0 (#1442)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.67.1` -> `v1.68.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.68.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.68.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.67.1/v1.68.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.67.1/v1.68.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.68.0`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.68.0):
Release 1.68.0

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.67.1...v1.68.0)

### Behavior Changes

- stats/opentelemetry/csm: Get mesh_id local label from "CSM_MESH_ID"
environment variable, rather than parsing from bootstrap file
([#&#8203;7740](https://redirect.github.com/grpc/grpc-go/issues/7740))
- orca (experimental): if using an ORCA listener, it must now be
registered only on a READY SubConn, and the listener will automatically
be stopped when the connection is lost.
([#&#8203;7663](https://redirect.github.com/grpc/grpc-go/issues/7663))
- client: `ClientConn.Close()` now closes transports simultaneously and
waits for transports to be closed before returning.
([#&#8203;7666](https://redirect.github.com/grpc/grpc-go/issues/7666))
- credentials: TLS credentials created via `NewTLS` that use
`tls.Config.GetConfigForClient` will now have CipherSuites, supported
TLS versions and ALPN configured automatically. These were previously
only set for configs not using the `GetConfigForClient` option.
([#&#8203;7709](https://redirect.github.com/grpc/grpc-go/issues/7709))

### Bug Fixes

- transport: prevent deadlock in client transport shutdown when writing
the GOAWAY frame hangs.
([#&#8203;7662](https://redirect.github.com/grpc/grpc-go/issues/7662))
- mem: reuse buffers more accurately by using slice capacity instead of
length
([#&#8203;7702](https://redirect.github.com/grpc/grpc-go/issues/7702))
- Special Thanks:
[@&#8203;PapaCharlie](https://redirect.github.com/PapaCharlie)
- status: Fix regression caused by
[#&#8203;6919](https://redirect.github.com/grpc/grpc-go/issues/6919) in
status.Details() causing it to return a wrapped type when getting proto
messages generated with protoc-gen-go < v1.
- Special Thanks:
[@&#8203;Clement-Jean](https://redirect.github.com/Clement-Jean)

### Dependencies

- Bump minimum supported Go version to `go1.22.7`.
([#&#8203;7624](https://redirect.github.com/grpc/grpc-go/issues/7624))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43LjEiLCJ1cGRhdGVkSW5WZXIiOiIzOS43LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-07 19:12:25 +00:00
renovate[bot] 949c73bd6e
fix(deps): update module github.com/fsnotify/fsnotify to v1.8.0 (#1438)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/fsnotify/fsnotify](https://redirect.github.com/fsnotify/fsnotify)
| `v1.7.0` -> `v1.8.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2ffsnotify%2ffsnotify/v1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2ffsnotify%2ffsnotify/v1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2ffsnotify%2ffsnotify/v1.7.0/v1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2ffsnotify%2ffsnotify/v1.7.0/v1.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>fsnotify/fsnotify (github.com/fsnotify/fsnotify)</summary>

###
[`v1.8.0`](https://redirect.github.com/fsnotify/fsnotify/releases/tag/v1.8.0)

[Compare
Source](https://redirect.github.com/fsnotify/fsnotify/compare/v1.7.0...v1.8.0)

#### Additions

- all: add `FSNOTIFY_DEBUG` to print debug logs to stderr
([#&#8203;619](https://redirect.github.com/fsnotify/fsnotify/issues/619))

##### Changes and fixes

- windows: fix behaviour of `WatchList()` to be consistent with other
platforms
([#&#8203;610](https://redirect.github.com/fsnotify/fsnotify/issues/610))

- kqueue: ignore events with Ident=0
([#&#8203;590](https://redirect.github.com/fsnotify/fsnotify/issues/590))

- kqueue: set O_CLOEXEC to prevent passing file descriptors to children
([#&#8203;617](https://redirect.github.com/fsnotify/fsnotify/issues/617))

- kqueue: emit events as "/path/dir/file" instead of "path/link/file"
when watching a symlink
([#&#8203;625](https://redirect.github.com/fsnotify/fsnotify/issues/625))

- inotify: don't send event for IN_DELETE_SELF when also watching the
parent
([#&#8203;620](https://redirect.github.com/fsnotify/fsnotify/issues/620))

- inotify: fix panic when calling Remove() in a goroutine
([#&#8203;650](https://redirect.github.com/fsnotify/fsnotify/issues/650))

- fen: allow watching subdirectories of watched directories
([#&#8203;621](https://redirect.github.com/fsnotify/fsnotify/issues/621))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzUuMiIsInVwZGF0ZWRJblZlciI6IjM4LjEzNS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-31 15:06:05 +00:00
Todd Baert a19cb42373
docs: update flagd provider specs (#1432)
This PR contains significant enhancements to flagd provider specs. If
merged, I will be opening a bunch of issues to implement what's
described here based on recon I've been doing with the existing
implementations

Specifically:

- adds `retryGraceAttempts` param, which defines the amount of stream
retry attempts before provider moves from `STALE` to `ERROR` state
- adds `contextEnricher` param, which defines mapping function for
sync-metadata to evaluation context for in process providers (exists
already in Java provider)
- improves consistency between in-process and RPC stream reconnect
behavior
- simplifies provider doc and spec to remove duplication and improve
readability

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Guido Breitenhuber <157148191+guidobrei@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-10-30 16:51:29 -04:00
renovate[bot] 0df8622155
fix(deps): update kubernetes packages to v0.31.2 (#1430)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[k8s.io/apimachinery](https://redirect.github.com/kubernetes/apimachinery)
| `v0.31.1` -> `v0.31.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.31.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fapimachinery/v0.31.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fapimachinery/v0.31.1/v0.31.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.31.1/v0.31.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [k8s.io/client-go](https://redirect.github.com/kubernetes/client-go) |
`v0.31.1` -> `v0.31.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.31.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fclient-go/v0.31.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fclient-go/v0.31.1/v0.31.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.31.1/v0.31.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.31.2`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.1...v0.31.2)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.1...v0.31.2)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.31.2`](https://redirect.github.com/kubernetes/client-go/compare/v0.31.1...v0.31.2)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.31.1...v0.31.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 17:09:09 +00:00
renovate[bot] d33c7a5522
fix(deps): update module github.com/open-feature/flagd/core to v0.10.4 (#1433)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.10.3` -> `v0.10.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.3/v0.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.3/v0.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEzMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-30 10:52:10 -04:00
Michael Beemer eb1a8ad514
ci(trivy): fetch vulnerabilities DB from ERC (#1436)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-10-30 10:46:21 -04:00
Michael Beemer a862589648
ci: fix license bundling command (#1434)
## This PR

- avoids running the license bundling command if the directory doesn't
exist.

### Notes

Resolves publishing errors like this.


https://github.com/open-feature/flagd/actions/runs/11561455616/job/32180508181

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-10-28 16:58:30 -04:00
github-actions[bot] df54b66124
chore: release main (#1412)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.4</summary>

##
[0.11.4](https://github.com/open-feature/flagd/compare/flagd/v0.11.3...flagd/v0.11.4)
(2024-10-28)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/connectrpc/go to
v1.17.0-20240906125204-0a6a901b42e8.1
([#1409](https://github.com/open-feature/flagd/issues/1409))
([f07d348](f07d348b42))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.35.1-20240906125204-0a6a901b42e8.1
([#1420](https://github.com/open-feature/flagd/issues/1420))
([1f06d5a](1f06d5a183))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.3
([#1411](https://github.com/open-feature/flagd/issues/1411))
([a312196](a312196c11))
* **deps:** update module github.com/prometheus/client_golang to v1.20.5
([#1425](https://github.com/open-feature/flagd/issues/1425))
([583ba89](583ba894f2))
* **deps:** update module go.uber.org/mock to v0.5.0
([#1427](https://github.com/open-feature/flagd/issues/1427))
([0c6fd7f](0c6fd7fa68))
* **deps:** update module golang.org/x/net to v0.30.0
([#1417](https://github.com/open-feature/flagd/issues/1417))
([4d5b75e](4d5b75eed9))
* **deps:** update module google.golang.org/grpc to v1.67.1
([#1415](https://github.com/open-feature/flagd/issues/1415))
([85a3a6b](85a3a6b462))


###  New Features

* added custom grpc resolver
([#1424](https://github.com/open-feature/flagd/issues/1424))
([e5007e2](e5007e2bcb))
* support azure blob sync
([#1428](https://github.com/open-feature/flagd/issues/1428))
([5c39cfe](5c39cfe30a))
</details>

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

##
[0.6.7](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.6...flagd-proxy/v0.6.7)
(2024-10-28)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.35.1-20240906125204-0a6a901b42e8.1
([#1420](https://github.com/open-feature/flagd/issues/1420))
([1f06d5a](1f06d5a183))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.3
([#1411](https://github.com/open-feature/flagd/issues/1411))
([a312196](a312196c11))
* **deps:** update module github.com/prometheus/client_golang to v1.20.5
([#1425](https://github.com/open-feature/flagd/issues/1425))
([583ba89](583ba894f2))
* **deps:** update module golang.org/x/net to v0.30.0
([#1417](https://github.com/open-feature/flagd/issues/1417))
([4d5b75e](4d5b75eed9))
* **deps:** update module google.golang.org/grpc to v1.67.1
([#1415](https://github.com/open-feature/flagd/issues/1415))
([85a3a6b](85a3a6b462))
</details>

<details><summary>core: 0.10.4</summary>

##
[0.10.4](https://github.com/open-feature/flagd/compare/core/v0.10.3...core/v0.10.4)
(2024-10-28)


### 🐛 Bug Fixes

* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.35.1-20240906125204-0a6a901b42e8.1
([#1420](https://github.com/open-feature/flagd/issues/1420))
([1f06d5a](1f06d5a183))
* **deps:** update module github.com/prometheus/client_golang to v1.20.5
([#1425](https://github.com/open-feature/flagd/issues/1425))
([583ba89](583ba894f2))
* **deps:** update module go.uber.org/mock to v0.5.0
([#1427](https://github.com/open-feature/flagd/issues/1427))
([0c6fd7f](0c6fd7fa68))
* **deps:** update module gocloud.dev to v0.40.0
([#1422](https://github.com/open-feature/flagd/issues/1422))
([e0e4709](e0e4709243))
* **deps:** update module golang.org/x/crypto to v0.28.0
([#1416](https://github.com/open-feature/flagd/issues/1416))
([fb272da](fb272da56e))
* **deps:** update module google.golang.org/grpc to v1.67.1
([#1415](https://github.com/open-feature/flagd/issues/1415))
([85a3a6b](85a3a6b462))


###  New Features

* added custom grpc resolver
([#1424](https://github.com/open-feature/flagd/issues/1424))
([e5007e2](e5007e2bcb))
* support azure blob sync
([#1428](https://github.com/open-feature/flagd/issues/1428))
([5c39cfe](5c39cfe30a))
</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>
2024-10-28 15:44:26 -04:00
Pradeep Mishra e5007e2bcb
feat: added custom grpc resolver (#1424)
## This PR
Added custom gRPC resolver to support envoy proxy

- support gRPC custom resolver 

### Related Issues

Fixes https://github.com/open-feature/go-sdk-contrib/issues/585

### Notes

- update `.github/workflow/build.yaml` to install `envoy`
[binary](https://www.envoyproxy.io/docs/envoy/latest/start/install#install-binaries)
part of e2e test.
- this is a pre-requisite for `flagd` go [provider
update](https://github.com/open-feature/go-sdk-contrib/issues/585)

### How to test
Unit test are already added for the custom resolver for integration test
you need a working envoy proxy support or any of the supported core
resolver mentioned
[here](https://grpc.io/docs/guides/custom-name-resolution/#overview)

```shell
bin % ./flagd start -x --uri envoy://localhost:9211/test.service

                 ______   __       ________   _______    ______      
                /_____/\ /_/\     /_______/\ /______/\  /_____/\     
                \::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \    
                 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\ \ \ \   
                  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \  
                   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| | 
                    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/                                                                                                            

2024-10-14T20:19:51.411+0200    info    cmd/start.go:120        flagd version: dev (f716423), built at: 2024-10-14T20:19:34Z    {"component": "start"}
2024-10-14T20:19:51.412+0200    debug   telemetry/builder.go:81 skipping trace provider setup as collector target is not set. Traces will use NoopTracerProvider provider and propagator will use no-Op TextMapPropagator
2024-10-14T20:19:51.412+0200    info    flag-sync/sync_service.go:54    starting flag sync service on port 8015 {"component": "FlagSyncService"}
2024-10-14T20:19:51.412+0200    debug   builder/syncbuilder.go:111      using grpc sync-provider for: envoy://localhost:9211/test.service       {"component": "sync"}
2024-10-14T20:19:51.413+0200    info    flag-evaluation/connect_service.go:247  metrics and probes listening at 8014    {"component": "service"}
2024-10-14T20:19:51.413+0200    info    ofrep/ofrep_service.go:56       ofrep service listening at 8016 {"component": "OFREPService"}
2024-10-14T20:19:51.415+0200    info    flag-evaluation/connect_service.go:227  Flag IResolver listening at [::]:8013   {"component": "service"}
2024-10-14T20:19:51.428+0200    debug   grpc/grpc_sync.go:201   received full configuration payload     {"component": "sync", "sync": "grpc"}
2024-10-14T20:19:55.057+0200    debug   grpc/grpc_sync.go:201   received full configuration payload     {"component": "sync", "sync": "grpc"}
```

---------

Signed-off-by: Pradeep <pradeepbbl@gmail.com>
Signed-off-by: Matthew Wilson <54033231+wilson-matthew@users.noreply.github.com>
Co-authored-by: Matthew Wilson <54033231+wilson-matthew@users.noreply.github.com>
2024-10-28 15:34:59 -04:00
Michael Beemer 02d881e070
chore: fix netlify doc publish (#1431)
## This PR
<!-- add the description of the PR here -->

- disable package mode in the Python project

### Notes

Netlify build output

```
Warning: The current project could not be installed: No file/folder found for package flagd-dev
If you do not want to install the current project use --no-root.
If you want to use Poetry only for dependency management but not for packaging, you can disable package mode by setting package-mode = false in your pyproject.toml file.
In a future version of Poetry this warning will become an error!
```
I resolved the issue by following this guide.

https://docs.netlify.com/frameworks/#mkdocs

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-10-28 15:33:13 -04:00
Matthew Wilson 5c39cfe30a
feat: support azure blob sync (#1428)
## This PR

- adds support for Azure Blob Storage sync

Signed-off-by: Matthew Wilson <54033231+wilson-matthew@users.noreply.github.com>
2024-10-23 16:15:31 -04:00
renovate[bot] 538da12da0
fix(deps): update opentelemetry-go monorepo (#1423)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.30.0` -> `v1.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.30.0` -> `v1.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.30.0` -> `v1.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.30.0` -> `v1.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v0.52.0` -> `v0.53.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.52.0/v0.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.52.0/v0.53.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.30.0` -> `v1.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.30.0` -> `v1.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.30.0` -> `v1.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.30.0` -> `v1.31.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.30.0/v1.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.31.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/releases/tag/v1.31.0):
/v0.53.0/v0.7.0/v0.0.10

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.30.0...v1.31.0)

##### Added

- Add `go.opentelemetry.io/otel/sdk/metric/exemplar` package which
includes `Exemplar`, `Filter`, `TraceBasedFilter`, `AlwaysOnFilter`,
`HistogramReservoir`, `FixedSizeReservoir`, `Reservoir`, `Value` and
`ValueType` types. These will be used for configuring the exemplar
reservoir for the metrics sdk.
([#&#8203;5747](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5747),
[#&#8203;5862](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5862))
- Add `WithExportBufferSize` option to log batch
processor.([#&#8203;5877](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5877))

##### Changed

- Enable exemplars by default in `go.opentelemetry.io/otel/sdk/metric`.
Exemplars can be disabled by setting
`OTEL_METRICS_EXEMPLAR_FILTER=always_off`
([#&#8203;5778](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5778))
- `Logger.Enabled` in `go.opentelemetry.io/otel/log` now accepts a newly
introduced `EnabledParameters` type instead of `Record`.
([#&#8203;5791](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5791))
- `FilterProcessor.Enabled` in
`go.opentelemetry.io/otel/sdk/log/internal/x` now accepts
`EnabledParameters` instead of `Record`.
([#&#8203;5791](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5791))
- The `Record` type in `go.opentelemetry.io/otel/log` is no longer
comparable.
([#&#8203;5847](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5847))
- Performance improvements for the trace SDK `SetAttributes` method in
`Span`.
([#&#8203;5864](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5864))
- Reduce memory allocations for the `Event` and `Link` lists in `Span`.
([#&#8203;5858](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5858))
- Performance improvements for the trace SDK `AddEvent`, `AddLink`,
`RecordError` and `End` methods in `Span`.
([#&#8203;5874](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5874))

##### Deprecated

- Deprecate all examples under `go.opentelemetry.io/otel/example` as
they are moved to [Contrib
repository](https://redirect.github.com/open-telemetry/opentelemetry-go-contrib/tree/main/examples).
([#&#8203;5854](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5854))

##### Fixed

- The race condition for multiple `FixedSize` exemplar reservoirs
identified in
[#&#8203;5814](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5814)
is resolved.
([#&#8203;5819](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5819))
- Fix log records duplication in case of heterogeneous resource
attributes by correctly mapping each log record to it's resource and
scope.
([#&#8203;5803](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5803))
- Fix timer channel drain to avoid hanging on Go 1.23.
([#&#8203;5868](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5868))
- Fix delegation for global meter providers, and panic when calling
otel.SetMeterProvider.
([#&#8203;5827](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5827))
- Change the `reflect.TypeOf` to use a nil pointer to not allocate on
the heap unless necessary.
([#&#8203;5827](https://redirect.github.com/open-telemetry/opentelemetry-go/issues/5827))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMTUuMSIsInVwZGF0ZWRJblZlciI6IjM4LjExNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 16:36:27 +00:00
renovate[bot] 4d5b75eed9
fix(deps): update module golang.org/x/net to v0.30.0 (#1417)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.29.0` -> `v0.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.29.0/v0.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.29.0/v0.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 12:43:16 +00:00
renovate[bot] fb272da56e
fix(deps): update module golang.org/x/crypto to v0.28.0 (#1416)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.27.0` -> `v0.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.27.0/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.27.0/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 10:05:43 +00:00
renovate[bot] e0e4709243
fix(deps): update module gocloud.dev to v0.40.0 (#1422)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [gocloud.dev](https://redirect.github.com/google/go-cloud) | `v0.39.0`
-> `v0.40.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/gocloud.dev/v0.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/gocloud.dev/v0.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/gocloud.dev/v0.39.0/v0.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/gocloud.dev/v0.39.0/v0.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>google/go-cloud (gocloud.dev)</summary>

###
[`v0.40.0`](https://redirect.github.com/google/go-cloud/releases/tag/v0.40.0)

[Compare
Source](https://redirect.github.com/google/go-cloud/compare/v0.39.0...v0.40.0)

#### What's Changed

- blob/all: disable Upload optimization when WriterOptions.ContentMD5 is
set by [@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3478](https://redirect.github.com/google/go-cloud/pull/3478)
- blob/s3blob: custom endpoints with s3 and aws sdk v2 by
[@&#8203;caarlos0](https://redirect.github.com/caarlos0) in
[https://github.com/google/go-cloud/pull/3473](https://redirect.github.com/google/go-cloud/pull/3473)
- blob/all: Don't require SetIOFSCallback be called to use io/fs.FS
functions by [@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3479](https://redirect.github.com/google/go-cloud/pull/3479)
- blob/s3blob: fix data race by
[@&#8203;arjunnair1997](https://redirect.github.com/arjunnair1997) in
[https://github.com/google/go-cloud/pull/3480](https://redirect.github.com/google/go-cloud/pull/3480)
- blob/azblob: Support AZURE_STORAGEBLOB_CONNECTIONSTRING as an
alternative for AZURE_STORAGE_CONNECTION_STRING by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3483](https://redirect.github.com/google/go-cloud/pull/3483)
- s3blob/blob: support additional endpoint query parameters by
[@&#8203;stanhu](https://redirect.github.com/stanhu) in
[https://github.com/google/go-cloud/pull/3486](https://redirect.github.com/google/go-cloud/pull/3486)
- blob/gcsblob: Allow providing options for storage.NewClient by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3493](https://redirect.github.com/google/go-cloud/pull/3493)
- aws: Add support for non-camelcased version of two URL parameters by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3494](https://redirect.github.com/google/go-cloud/pull/3494)
- Add disableHTTPS and usePathStyle s3v2.Options as query param by
[@&#8203;khrm](https://redirect.github.com/khrm) in
[https://github.com/google/go-cloud/pull/3491](https://redirect.github.com/google/go-cloud/pull/3491)
- aws: add rate_limiter_capacity to configure client-side rate limits by
[@&#8203;stanhu](https://redirect.github.com/stanhu) in
[https://github.com/google/go-cloud/pull/3497](https://redirect.github.com/google/go-cloud/pull/3497)

#### New Contributors

- [@&#8203;caarlos0](https://redirect.github.com/caarlos0) made their
first contribution in
[https://github.com/google/go-cloud/pull/3473](https://redirect.github.com/google/go-cloud/pull/3473)
- [@&#8203;arjunnair1997](https://redirect.github.com/arjunnair1997)
made their first contribution in
[https://github.com/google/go-cloud/pull/3480](https://redirect.github.com/google/go-cloud/pull/3480)
- [@&#8203;bdon](https://redirect.github.com/bdon) made their first
contribution in
[https://github.com/google/go-cloud/pull/3481](https://redirect.github.com/google/go-cloud/pull/3481)
- [@&#8203;khrm](https://redirect.github.com/khrm) made their first
contribution in
[https://github.com/google/go-cloud/pull/3491](https://redirect.github.com/google/go-cloud/pull/3491)

**Full Changelog**:
https://github.com/google/go-cloud/compare/v0.39.0...v0.40.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMTUuMSIsInVwZGF0ZWRJblZlciI6IjM4LjExNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 06:27:59 +00:00
renovate[bot] 0c6fd7fa68
fix(deps): update module go.uber.org/mock to v0.5.0 (#1427)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [go.uber.org/mock](https://redirect.github.com/uber/mock) | `v0.4.0`
-> `v0.5.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.uber.org%2fmock/v0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.uber.org%2fmock/v0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.uber.org%2fmock/v0.4.0/v0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.uber.org%2fmock/v0.4.0/v0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>uber/mock (go.uber.org/mock)</summary>

###
[`v0.5.0`](https://redirect.github.com/uber-go/mock/releases/tag/v0.5.0)

[Compare
Source](https://redirect.github.com/uber/mock/compare/v0.4.0...v0.5.0)

#### 0.5.0 (15 Oct 2024)

##### Added

- [#&#8203;153][]: Add `--write_command_comment` flag to specify whether
to include
    `Generated by this command` comment.
- [#&#8203;191][]: Add `--build_constraint` flag to add `//go:build`
directives
    to generated mocks
- [#&#8203;214][]: Add gob mode to support custom package loading
techniques in place
    of --exec_only

##### Changed

- [#&#8203;181][]: Made mockgen faster by changing flags passed to `go
list`.
-   [#&#8203;183][]: Made `Cond` matcher generic.
-   [#&#8203;204][]: Removed `ISGOMOCK()` from generated mocks.
- [#&#8203;207][]: Deprecated reflect mode and replaced it with the new
package mode.

##### Fixed

- [#&#8203;144][]: Fix a deadlock that can happen when mocking an
interface that
    matches `fmt.Stringer`.
- [#&#8203;168][]: Fix an issue where the "generated by" comment was
being included
    in the package comment of generated mocks.

[#&#8203;144]: https://redirect.github.com/uber-go/mock/pull/144

[#&#8203;153]: https://redirect.github.com/uber-go/mock/pull/153

[#&#8203;168]: https://redirect.github.com/uber-go/mock/pull/168

[#&#8203;181]: https://redirect.github.com/uber-go/mock/pull/181

[#&#8203;183]: https://redirect.github.com/uber-go/mock/pull/183

[#&#8203;191]: https://redirect.github.com/uber-go/mock/pull/191

[#&#8203;204]: https://redirect.github.com/uber-go/mock/pull/204

[#&#8203;207]: https://redirect.github.com/uber-go/mock/pull/207

[#&#8203;214]: https://redirect.github.com/uber-go/mock/pull/214

Thanks to [@&#8203;tulzke](https://redirect.github.com/tulzke)
[@&#8203;JacobOaks](https://redirect.github.com/JacobOaks)
[@&#8203;ARR4N](https://redirect.github.com/ARR4N)
[@&#8203;sashamelentyev](https://redirect.github.com/sashamelentyev)
[@&#8203;sywhang](https://redirect.github.com/sywhang)
[@&#8203;fasmat](https://redirect.github.com/fasmat)
[@&#8203;eyasy1217](https://redirect.github.com/eyasy1217)
[@&#8203;ghouscht](https://redirect.github.com/ghouscht)
[@&#8203;tie](https://redirect.github.com/tie)
[@&#8203;Neo2308](https://redirect.github.com/Neo2308)
[@&#8203;carson-brill](https://redirect.github.com/carson-brill)
[@&#8203;alexandear](https://redirect.github.com/alexandear)
[@&#8203;sodul](https://redirect.github.com/sodul)
[@&#8203;nbgraham](https://redirect.github.com/nbgraham) for their
contributions this release.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 03:15:38 +00:00
renovate[bot] 1f06d5a183
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.35.1-20240906125204-0a6a901b42e8.1 (#1420)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.34.2-20240906125204-0a6a901b42e8.2` ->
`v1.35.1-20240906125204-0a6a901b42e8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.35.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.35.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.34.2-20240906125204-0a6a901b42e8.2/v1.35.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.34.2-20240906125204-0a6a901b42e8.2/v1.35.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-19 02:01:23 +00:00
renovate[bot] 583ba894f2
fix(deps): update module github.com/prometheus/client_golang to v1.20.5 (#1425)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.20.4` -> `v1.20.5` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.20.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.20.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.20.4/v1.20.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.20.4/v1.20.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prometheus/client_golang
(github.com/prometheus/client_golang)</summary>

###
[`v1.20.5`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.5):
/ 2024-10-15

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.4...v1.20.5)

We decided to revert [the `testutil`
change](https://redirect.github.com/prometheus/client_golang/pull/1424)
that made our util functions less error-prone, but created a lot of work
for our downstream users. Apologies for the pain! This revert should not
cause any major breaking change, even if you already did the
work--unless you depend on the [exact error
message](https://redirect.github.com/grafana/mimir/pull/9624#issuecomment-2413401565).

Going forward, we plan to reinforce our release testing strategy
[\[1\]](https://redirect.github.com/prometheus/client_golang/issues/1646),[\[2\]](https://redirect.github.com/prometheus/client_golang/issues/1648)
and deliver an enhanced [`testutil`
package/module](https://redirect.github.com/prometheus/client_golang/issues/1639)
with more flexible and safer APIs.

Thanks to [@&#8203;dashpole](https://redirect.github.com/dashpole)
[@&#8203;dgrisonnet](https://redirect.github.com/dgrisonnet)
[@&#8203;kakkoyun](https://redirect.github.com/kakkoyun)
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens)
[@&#8203;vesari](https://redirect.github.com/vesari)
[@&#8203;logicalhan](https://redirect.github.com/logicalhan)
[@&#8203;krajorama](https://redirect.github.com/krajorama)
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) who helped in
this patch release! 🤗

##### Changelog

\[BUGFIX] testutil: Reverted
[#&#8203;1424](https://redirect.github.com/prometheus/client_golang/issues/1424);
functions using compareMetricFamilies are (again) only failing if
filtered metricNames are in the expected input.
[#&#8203;1645](https://redirect.github.com/prometheus/client_golang/issues/1645)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMjAuMSIsInVwZGF0ZWRJblZlciI6IjM4LjEyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-18 21:37:26 +00:00
Michael Beemer c7237f0688
ci: fix security scan input path (#1426)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-10-18 14:56:08 -04:00
Matthew Wilson 8583f68893
docs: fix typo (#1419)
## This PR
Fixes a typo in `docs/reference/openfeature-operator/overview.md`

Signed-off-by: Matthew Wilson <54033231+wilson-matthew@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-10-10 11:05:55 -04:00
Pradeep Mishra f716423422
docs: update gRPC custom resolver rfc proposal (#1421)
Signed-off-by: Pradeep <pradeepbbl@gmail.com>
2024-10-09 08:39:39 -04:00
Pradeep Mishra fb76af5830
docs: added gRPC custom name resolver proposal (#1414)
## This PR
Added initial gRPC custom name resolver draft proposal


- new proposal doc to support gRPC over proxy

### Related Issues
TBD

---------

Signed-off-by: Pradeep Mishra <pradeep.mishra@booking.com>
Signed-off-by: Pradeep <pradeepbbl@gmail.com>
Signed-off-by: Pradeep Mishra <pradeepbbl@users.noreply.github.com>
Signed-off-by: Pradeep Mishra <pradeepbbl@gmail.com>
Co-authored-by: Pradeep Mishra <pradeep.mishra@booking.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-10-01 12:05:27 -04:00
renovate[bot] 85a3a6b462
fix(deps): update module google.golang.org/grpc to v1.67.1 (#1415)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.67.0` -> `v1.67.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.67.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.67.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.67.0/v1.67.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.67.0/v1.67.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.67.1`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.67.1):
Release 1.67.1

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.67.0...v1.67.1)

### Bug Fixes

- transport: Fix a bug causing stream failures due to miscalculation of
the flow control window in both clients and servers.
([#&#8203;7667](https://redirect.github.com/grpc/grpc-go/issues/7667))
- xds/server: Fix xDS Server memory leak.
([#&#8203;7681](https://redirect.github.com/grpc/grpc-go/issues/7681))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzguOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-01 10:15:03 +00:00
renovate[bot] f07d348b42
fix(deps): update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.17.0-20240906125204-0a6a901b42e8.1 (#1409)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.16.2-20240906125204-0a6a901b42e8.1` ->
`v1.17.0-20240906125204-0a6a901b42e8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.17.0-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.17.0-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.2-20240906125204-0a6a901b42e8.1/v1.17.0-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.2-20240906125204-0a6a901b42e8.1/v1.17.0-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-24 01:38:23 +00:00
renovate[bot] a312196c11
fix(deps): update module github.com/open-feature/flagd/core to v0.10.3 (#1411)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://redirect.github.com/open-feature/flagd)
| `v0.10.2` -> `v0.10.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.2/v0.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.2/v0.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 22:58:21 +00:00
github-actions[bot] 851b9da436
chore: release main (#1395)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.3</summary>

##
[0.11.3](https://github.com/open-feature/flagd/compare/flagd/v0.11.2...flagd/v0.11.3)
(2024-09-23)


### 🐛 Bug Fixes

* **deps:** update kubernetes package and controller runtime, fix proto
lint ([#1290](https://github.com/open-feature/flagd/issues/1290))
([94860d6](94860d6cea))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/connectrpc/go to
v1.16.2-20240906125204-0a6a901b42e8.1
([#1399](https://github.com/open-feature/flagd/issues/1399))
([18dd4e2](18dd4e279f))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20240906125204-0a6a901b42e8.1
([#1400](https://github.com/open-feature/flagd/issues/1400))
([954d972](954d972382))
* **deps:** update module connectrpc.com/connect to v1.17.0
([#1408](https://github.com/open-feature/flagd/issues/1408))
([e7eb691](e7eb691094))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.2
([#1385](https://github.com/open-feature/flagd/issues/1385))
([3b5a818](3b5a818b69))
* **deps:** update module github.com/prometheus/client_golang to v1.20.3
([#1384](https://github.com/open-feature/flagd/issues/1384))
([8fd16b2](8fd16b23b1))
* **deps:** update module github.com/prometheus/client_golang to v1.20.4
([#1406](https://github.com/open-feature/flagd/issues/1406))
([a0a6426](a0a64269b0))
* **deps:** update module github.com/rs/cors to v1.11.1
([#1392](https://github.com/open-feature/flagd/issues/1392))
([8bd549e](8bd549e860))
* **deps:** update module github.com/rs/xid to v1.6.0
([#1386](https://github.com/open-feature/flagd/issues/1386))
([2317013](231701346a))
* **deps:** update module golang.org/x/net to v0.29.0
([#1398](https://github.com/open-feature/flagd/issues/1398))
([0721e02](0721e02daa))
* **deps:** update module google.golang.org/grpc to v1.66.0
([#1393](https://github.com/open-feature/flagd/issues/1393))
([c96e9d7](c96e9d764a))
* **deps:** update module google.golang.org/grpc to v1.66.1
([#1402](https://github.com/open-feature/flagd/issues/1402))
([50c9cd3](50c9cd3ada))
* **deps:** update module google.golang.org/grpc to v1.66.2
([#1405](https://github.com/open-feature/flagd/issues/1405))
([69ec28f](69ec28fceb))
* **deps:** update module google.golang.org/grpc to v1.67.0
([#1407](https://github.com/open-feature/flagd/issues/1407))
([1ad6480](1ad6480a0f))
* **deps:** update opentelemetry-go monorepo
([#1387](https://github.com/open-feature/flagd/issues/1387))
([22aef5b](22aef5bbf0))
* **deps:** update opentelemetry-go monorepo
([#1403](https://github.com/open-feature/flagd/issues/1403))
([fc4cd3e](fc4cd3e547))
* remove dep cycle with certreloader
([#1410](https://github.com/open-feature/flagd/issues/1410))
([5244f6f](5244f6f6c9))


###  New Features

* add mTLS support to otel exporter
([#1389](https://github.com/open-feature/flagd/issues/1389))
([8737f53](8737f53444))
</details>

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

##
[0.6.6](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.5...flagd-proxy/v0.6.6)
(2024-09-23)


### 🐛 Bug Fixes

* **deps:** update kubernetes package and controller runtime, fix proto
lint ([#1290](https://github.com/open-feature/flagd/issues/1290))
([94860d6](94860d6cea))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20240906125204-0a6a901b42e8.1
([#1400](https://github.com/open-feature/flagd/issues/1400))
([954d972](954d972382))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.2
([#1385](https://github.com/open-feature/flagd/issues/1385))
([3b5a818](3b5a818b69))
* **deps:** update module github.com/prometheus/client_golang to v1.20.3
([#1384](https://github.com/open-feature/flagd/issues/1384))
([8fd16b2](8fd16b23b1))
* **deps:** update module github.com/prometheus/client_golang to v1.20.4
([#1406](https://github.com/open-feature/flagd/issues/1406))
([a0a6426](a0a64269b0))
* **deps:** update module golang.org/x/net to v0.29.0
([#1398](https://github.com/open-feature/flagd/issues/1398))
([0721e02](0721e02daa))
* **deps:** update module google.golang.org/grpc to v1.66.0
([#1393](https://github.com/open-feature/flagd/issues/1393))
([c96e9d7](c96e9d764a))
* **deps:** update module google.golang.org/grpc to v1.66.1
([#1402](https://github.com/open-feature/flagd/issues/1402))
([50c9cd3](50c9cd3ada))
* **deps:** update module google.golang.org/grpc to v1.66.2
([#1405](https://github.com/open-feature/flagd/issues/1405))
([69ec28f](69ec28fceb))
* **deps:** update module google.golang.org/grpc to v1.67.0
([#1407](https://github.com/open-feature/flagd/issues/1407))
([1ad6480](1ad6480a0f))
* **deps:** update opentelemetry-go monorepo
([#1387](https://github.com/open-feature/flagd/issues/1387))
([22aef5b](22aef5bbf0))
* **deps:** update opentelemetry-go monorepo
([#1403](https://github.com/open-feature/flagd/issues/1403))
([fc4cd3e](fc4cd3e547))
* remove dep cycle with certreloader
([#1410](https://github.com/open-feature/flagd/issues/1410))
([5244f6f](5244f6f6c9))
</details>

<details><summary>core: 0.10.3</summary>

##
[0.10.3](https://github.com/open-feature/flagd/compare/core/v0.10.2...core/v0.10.3)
(2024-09-23)


### 🐛 Bug Fixes

* **deps:** update kubernetes package and controller runtime, fix proto
lint ([#1290](https://github.com/open-feature/flagd/issues/1290))
([94860d6](94860d6cea))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20240906125204-0a6a901b42e8.1
([#1400](https://github.com/open-feature/flagd/issues/1400))
([954d972](954d972382))
* **deps:** update module connectrpc.com/connect to v1.17.0
([#1408](https://github.com/open-feature/flagd/issues/1408))
([e7eb691](e7eb691094))
* **deps:** update module github.com/prometheus/client_golang to v1.20.3
([#1384](https://github.com/open-feature/flagd/issues/1384))
([8fd16b2](8fd16b23b1))
* **deps:** update module github.com/prometheus/client_golang to v1.20.4
([#1406](https://github.com/open-feature/flagd/issues/1406))
([a0a6426](a0a64269b0))
* **deps:** update module gocloud.dev to v0.39.0
([#1404](https://github.com/open-feature/flagd/issues/1404))
([a3184d6](a3184d6841))
* **deps:** update module golang.org/x/crypto to v0.27.0
([#1396](https://github.com/open-feature/flagd/issues/1396))
([f9a7d10](f9a7d10590))
* **deps:** update module golang.org/x/mod to v0.21.0
([#1397](https://github.com/open-feature/flagd/issues/1397))
([1507e19](1507e19e93))
* **deps:** update module google.golang.org/grpc to v1.66.0
([#1393](https://github.com/open-feature/flagd/issues/1393))
([c96e9d7](c96e9d764a))
* **deps:** update module google.golang.org/grpc to v1.66.1
([#1402](https://github.com/open-feature/flagd/issues/1402))
([50c9cd3](50c9cd3ada))
* **deps:** update module google.golang.org/grpc to v1.66.2
([#1405](https://github.com/open-feature/flagd/issues/1405))
([69ec28f](69ec28fceb))
* **deps:** update module google.golang.org/grpc to v1.67.0
([#1407](https://github.com/open-feature/flagd/issues/1407))
([1ad6480](1ad6480a0f))
* **deps:** update opentelemetry-go monorepo
([#1387](https://github.com/open-feature/flagd/issues/1387))
([22aef5b](22aef5bbf0))
* **deps:** update opentelemetry-go monorepo
([#1403](https://github.com/open-feature/flagd/issues/1403))
([fc4cd3e](fc4cd3e547))
* remove dep cycle with certreloader
([#1410](https://github.com/open-feature/flagd/issues/1410))
([5244f6f](5244f6f6c9))


###  New Features

* add mTLS support to otel exporter
([#1389](https://github.com/open-feature/flagd/issues/1389))
([8737f53](8737f53444))
</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>
2024-09-23 11:57:17 -04:00
renovate[bot] 954d972382
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20240906125204-0a6a901b42e8.1 (#1400)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.5.1-20240215170432-1e611e2999cc.1` ->
`v1.5.1-20240906125204-0a6a901b42e8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240215170432-1e611e2999cc.1/v1.5.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240215170432-1e611e2999cc.1/v1.5.1-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-09-23 10:39:19 -04:00
renovate[bot] 94860d6cea
fix(deps): update kubernetes package and controller runtime, fix proto lint (#1290)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[k8s.io/apimachinery](https://redirect.github.com/kubernetes/apimachinery)
| `v0.29.3` -> `v0.31.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fapimachinery/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fapimachinery/v0.29.3/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.29.3/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [k8s.io/client-go](https://redirect.github.com/kubernetes/client-go) |
`v0.29.3` -> `v0.31.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fclient-go/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fclient-go/v0.29.3/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.29.3/v0.31.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.31.1`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.0...v0.31.1)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.31.0...v0.31.1)

###
[`v0.31.0`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.3...v0.31.0)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.5...v0.31.0)

###
[`v0.30.5`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.4...v0.30.5)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.4...v0.30.5)

###
[`v0.30.4`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.3...v0.30.4)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.3...v0.30.4)

###
[`v0.30.3`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.2...v0.30.3)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.2...v0.30.3)

###
[`v0.30.2`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.1...v0.30.2)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.1...v0.30.2)

###
[`v0.30.1`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.0...v0.30.1)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.30.0...v0.30.1)

###
[`v0.30.0`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.4...v0.30.0)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.9...v0.30.0)

###
[`v0.29.9`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.8...v0.29.9)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.8...v0.29.9)

###
[`v0.29.8`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.7...v0.29.8)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.7...v0.29.8)

###
[`v0.29.7`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.6...v0.29.7)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.6...v0.29.7)

###
[`v0.29.6`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.5...v0.29.6)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.5...v0.29.6)

###
[`v0.29.5`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.4...v0.29.5)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.4...v0.29.5)

###
[`v0.29.4`](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.3...v0.29.4)

[Compare
Source](https://redirect.github.com/kubernetes/apimachinery/compare/v0.29.3...v0.29.4)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.31.1`](https://redirect.github.com/kubernetes/client-go/compare/v0.31.0...v0.31.1)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.31.0...v0.31.1)

###
[`v0.31.0`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.4...v0.31.0)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.5...v0.31.0)

###
[`v0.30.5`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.4...v0.30.5)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.4...v0.30.5)

###
[`v0.30.4`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.3...v0.30.4)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.3...v0.30.4)

###
[`v0.30.3`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.2...v0.30.3)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.2...v0.30.3)

###
[`v0.30.2`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.1...v0.30.2)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.1...v0.30.2)

###
[`v0.30.1`](https://redirect.github.com/kubernetes/client-go/compare/v0.30.0...v0.30.1)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.30.0...v0.30.1)

###
[`v0.30.0`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.4...v0.30.0)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.9...v0.30.0)

###
[`v0.29.9`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.8...v0.29.9)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.8...v0.29.9)

###
[`v0.29.8`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.7...v0.29.8)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.7...v0.29.8)

###
[`v0.29.7`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.6...v0.29.7)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.6...v0.29.7)

###
[`v0.29.6`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.5...v0.29.6)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.5...v0.29.6)

###
[`v0.29.5`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.4...v0.29.5)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.4...v0.29.5)

###
[`v0.29.4`](https://redirect.github.com/kubernetes/client-go/compare/v0.29.3...v0.29.4)

[Compare
Source](https://redirect.github.com/kubernetes/client-go/compare/v0.29.3...v0.29.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMDEuNCIsInVwZGF0ZWRJblZlciI6IjM4LjgwLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-09-23 09:54:46 -04:00
Todd Baert 5244f6f6c9
fix: remove dep cycle with certreloader (#1410)
https://github.com/open-feature/flagd/pull/1389 works well but caused a
dependency cycle: core -> flagd -> core.

I've moved the `certreloader` pkg to core with the existing telemetry
stuff.

cc @kevinschoonover

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-09-23 09:24:34 -04:00
Kevin Schoonover 8737f53444
feat: add mTLS support to otel exporter (#1389)
## This PR

The OpenTelemetry collectors in my production environment are configured
to use TLS for uploading metrics / traces so this PR aims to

- add the ability to use mTLS + self-signed certificates when exporting
to the opentelemetry collector

This is the 'quick and dirty' approach so wanted to make an initial PR
to make sure the high level implementation is the approach you're
looking for.

### Follow-up Tasks
- [ ] update the documentation when this approach is approved

### How to test
I am struggling to figure out how to test this with self signed
certificates to give a specific set of commands you can run because the
TLS connection is never successful (assuming this is because of my
commands)
```bash
openssl req -x509 -newkey rsa:4096 -keyout ca.key.pem -out ca.cert.pem -sha256 -days 3650 -nodes -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=localhost"

openssl req -x509 -newkey rsa:4096 -keyout client.key.pem -out client.cert.pem -CA ca.cert.pem -CAkey ca.key.pem -sha256 -days 3650 -nodes -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=localhost" -addext "subjectAltName = IP:127.0.0.1"
openssl req -x509 -newkey rsa:4096 -keyout server.key.pem -out server.cert.pem -CA ca.cert.pem -CAkey ca.key.pem -sha256 -days 3650 -nodes -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=localhost" -addext "subjectAltName = IP:127.0.0.1"
```


; however, when I pull certificates from my production environment to
test this works

---------

Signed-off-by: Kevin Schoonover <me@kschoon.me>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-09-23 08:16:42 -04:00
renovate[bot] e7eb691094
fix(deps): update module connectrpc.com/connect to v1.17.0 (#1408)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[connectrpc.com/connect](https://redirect.github.com/connectrpc/connect-go)
| `v1.16.2` -> `v1.17.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/connectrpc.com%2fconnect/v1.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/connectrpc.com%2fconnect/v1.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/connectrpc.com%2fconnect/v1.16.2/v1.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/connectrpc.com%2fconnect/v1.16.2/v1.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>connectrpc/connect-go (connectrpc.com/connect)</summary>

###
[`v1.17.0`](https://redirect.github.com/connectrpc/connect-go/releases/tag/v1.17.0)

[Compare
Source](https://redirect.github.com/connectrpc/connect-go/compare/v1.16.2...v1.17.0)

#### What's Changed

##### Enhancements

- Enable `protoc-gen-connect-go` usage with Protobuf source files that
use Editions by
[@&#8203;jchadwick-buf](https://redirect.github.com/jchadwick-buf) in
[#&#8203;754](https://redirect.github.com/connectrpc/connect-go/issues/754)

##### Bugfixes

- Prevent incorrect propagation of protocol-specific metadata by
[@&#8203;emcfarlane](https://redirect.github.com/emcfarlane) in
[#&#8203;748](https://redirect.github.com/connectrpc/connect-go/issues/748)
- Fix error message about unexpected content-type by
[@&#8203;jhump](https://redirect.github.com/jhump) in
[#&#8203;775](https://redirect.github.com/connectrpc/connect-go/issues/775)
- Calls should return "unavailable" instead of "unimplemented" or
"unknown" when the transport fails to produce an HTTP response and
returns `io.EOF` errors by
[@&#8203;jhump](https://redirect.github.com/jhump) in
[#&#8203;776](https://redirect.github.com/connectrpc/connect-go/issues/776)

##### Other changes

- Now requires Go 1.21 by
[@&#8203;jhump](https://redirect.github.com/jhump) in
[#&#8203;770](https://redirect.github.com/connectrpc/connect-go/issues/770)

#### New Contributors

- [@&#8203;perezd](https://redirect.github.com/perezd) made their first
contribution in
[#&#8203;739](https://redirect.github.com/connectrpc/connect-go/issues/739)

**Full Changelog**:
https://github.com/connectrpc/connect-go/compare/v1.16.2...v1.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 18:24:05 +00:00
renovate[bot] 1ad6480a0f
fix(deps): update module google.golang.org/grpc to v1.67.0 (#1407)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.66.2` -> `v1.67.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.67.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.67.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.66.2/v1.67.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.66.2/v1.67.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.67.0`](https://redirect.github.com/grpc/grpc-go/compare/v1.66.2...v1.67.0)

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.66.2...v1.67.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-20 09:15:28 +00:00
renovate[bot] a0a64269b0
fix(deps): update module github.com/prometheus/client_golang to v1.20.4 (#1406)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.20.3` -> `v1.20.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.20.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.20.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.20.3/v1.20.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.20.3/v1.20.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prometheus/client_golang
(github.com/prometheus/client_golang)</summary>

###
[`v1.20.4`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.4)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.3...v1.20.4)

- \[BUGFIX] histograms: Fix a possible data race when appending
exemplars vs metrics gather.
[#&#8203;1623](https://redirect.github.com/prometheus/client_golang/issues/1623)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC44MC4wIiwidXBkYXRlZEluVmVyIjoiMzguODAuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-17 13:18:26 +00:00
renovate[bot] 69ec28fceb
fix(deps): update module google.golang.org/grpc to v1.66.2 (#1405)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.66.1` -> `v1.66.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.66.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.66.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.66.1/v1.66.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.66.1/v1.66.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.66.2`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.66.2):
Release 1.66.2

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.66.1...v1.66.2)

### Dependencies

- Remove unintentional dependency on the `testing` package
([#&#8203;7579](https://redirect.github.com/grpc/grpc-go/issues/7579))
- Remove unintentional dependency on the `flate` package
([#&#8203;7595](https://redirect.github.com/grpc/grpc-go/issues/7595))
- Special Thanks: [@&#8203;ash2k](https://redirect.github.com/ash2k)

### Bug Fixes

- client: fix a bug that prevented memory reuse after handling unary
RPCs
([#&#8203;7571](https://redirect.github.com/grpc/grpc-go/issues/7571))
- Special Thanks: [@&#8203;coxley](https://redirect.github.com/coxley)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-12 01:36:19 +00:00
renovate[bot] a3184d6841
fix(deps): update module gocloud.dev to v0.39.0 (#1404)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [gocloud.dev](https://redirect.github.com/google/go-cloud) | `v0.37.0`
-> `v0.39.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/gocloud.dev/v0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/gocloud.dev/v0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/gocloud.dev/v0.37.0/v0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/gocloud.dev/v0.37.0/v0.39.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>google/go-cloud (gocloud.dev)</summary>

###
[`v0.39.0`](https://redirect.github.com/google/go-cloud/releases/tag/v0.39.0)

[Compare
Source](https://redirect.github.com/google/go-cloud/compare/v0.38.0...v0.39.0)

#### BREAKING CHANGE (AWS only, V1 vs V2 SDK)

Context: AWS has [announced maintenance
mode](https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-go-v1-on-july-31-2025/)
for the Go V1 SDK.

Go CDK has changed the default SDK for URLs across all modules except
`docstore/awsdynamodb` to be V2 (previously you needed to add
`awssdk=v2` to the URL to get V2). Most URLs should continue to work,
but in some cases you may need to add `awssdk=v1` to force V1
explicitly.

Also, concrete type constructors (e.g., `OpenBucket`) for V1 (again,
except `docstore/awsdynamodb`) have been marked deprecated; please
migrate to using the V2 versions (e.g., `OpenBucketV2`).

Our tentative plan is to remove support for V1 in early 2025; please
[file a
bug](https://redirect.github.com/google/go-cloud/issues/new/choose) if
you have concerns about that.

#### What's Changed

- pubsub: Make batch request results independent by
[@&#8203;mitsos1os](https://redirect.github.com/mitsos1os) in
[https://github.com/google/go-cloud/pull/3457](https://redirect.github.com/google/go-cloud/pull/3457)
- docstore/all: Add support for boolean filter by
[@&#8203;ybourgery](https://redirect.github.com/ybourgery) in
[https://github.com/google/go-cloud/pull/3464](https://redirect.github.com/google/go-cloud/pull/3464)
- aws/all: Mark V1 constructors deprecated. by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3466](https://redirect.github.com/google/go-cloud/pull/3466)
- aws/all: Change the default for AWS URLs from V1 to V2. by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3465](https://redirect.github.com/google/go-cloud/pull/3465)
- all: update to go version 1.23 by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3467](https://redirect.github.com/google/go-cloud/pull/3467)

#### New Contributors

- [@&#8203;mitsos1os](https://redirect.github.com/mitsos1os) made their
first contribution in
[https://github.com/google/go-cloud/pull/3457](https://redirect.github.com/google/go-cloud/pull/3457)
- [@&#8203;dependabot](https://redirect.github.com/dependabot) made
their first contribution in
[https://github.com/google/go-cloud/pull/3448](https://redirect.github.com/google/go-cloud/pull/3448)

**Full Changelog**:
https://github.com/google/go-cloud/compare/v0.38.0...v0.39.0

###
[`v0.38.0`](https://redirect.github.com/google/go-cloud/releases/tag/v0.38.0)

[Compare
Source](https://redirect.github.com/google/go-cloud/compare/v0.37.0...v0.38.0)

**blob**

- **all**: Fix panics if reader recreation fails after Seek by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3425](https://redirect.github.com/google/go-cloud/pull/3425)
- **all**: Convert errors in `Open()` into appropriate fs errors by
[@&#8203;milescrabill](https://redirect.github.com/milescrabill) in
[https://github.com/google/go-cloud/pull/3443](https://redirect.github.com/google/go-cloud/pull/3443)
- **s3blob**: Fix Copy to work with keys that need escaping by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3403](https://redirect.github.com/google/go-cloud/pull/3403)
- **azureblob**: Do not panic if Content-Length and Content-Range are
missing by [@&#8203;chancez](https://redirect.github.com/chancez) in
[https://github.com/google/go-cloud/pull/3445](https://redirect.github.com/google/go-cloud/pull/3445)
- **fileblob**: Allow customization of the FileMode by
[@&#8203;vangent](https://redirect.github.com/vangent) in
[https://github.com/google/go-cloud/pull/3426](https://redirect.github.com/google/go-cloud/pull/3426)

**pubsub**

- **awssnssqs**: Add support for setting FIFO message metadata by
[@&#8203;bartventer](https://redirect.github.com/bartventer) in
[https://github.com/google/go-cloud/pull/3435](https://redirect.github.com/google/go-cloud/pull/3435)
- **kafkapubsub**: Configuring key_name when OpenTopicURL by
[@&#8203;ssetin](https://redirect.github.com/ssetin) in
[https://github.com/google/go-cloud/pull/3404](https://redirect.github.com/google/go-cloud/pull/3404)
- **rabbitpubsub**: Add query string set the qos prefetch count by
[@&#8203;peczenyj](https://redirect.github.com/peczenyj) in
[https://github.com/google/go-cloud/pull/3431](https://redirect.github.com/google/go-cloud/pull/3431)
- **rabbitpubsub**: Add query string to set the routing key from
metadata by [@&#8203;peczenyj](https://redirect.github.com/peczenyj) in
[https://github.com/google/go-cloud/pull/3433](https://redirect.github.com/google/go-cloud/pull/3433)
- **rabbitpubsub**: Wrap pubsub rabbitmq errors by
[@&#8203;peczenyj](https://redirect.github.com/peczenyj) in
[https://github.com/google/go-cloud/pull/3437](https://redirect.github.com/google/go-cloud/pull/3437)

**docstore**

- **all**: Fix offset handling and extend test coverage by
[@&#8203;bartventer](https://redirect.github.com/bartventer) in
[https://github.com/google/go-cloud/pull/3409](https://redirect.github.com/google/go-cloud/pull/3409)
- **awsdynamodb**: Ensure Next returns EOF when no more items by
[@&#8203;bartventer](https://redirect.github.com/bartventer) in
[https://github.com/google/go-cloud/pull/3406](https://redirect.github.com/google/go-cloud/pull/3406)
- **mongodocstore**: Update Mongo dialer when MONGO_SERVER_URL rotates
by [@&#8203;concaf](https://redirect.github.com/concaf) in
[https://github.com/google/go-cloud/pull/3429](https://redirect.github.com/google/go-cloud/pull/3429)

#### New Contributors

- [@&#8203;ssetin](https://redirect.github.com/ssetin) made their first
contribution in
[https://github.com/google/go-cloud/pull/3404](https://redirect.github.com/google/go-cloud/pull/3404)
- [@&#8203;concaf](https://redirect.github.com/concaf) made their first
contribution in
[https://github.com/google/go-cloud/pull/3429](https://redirect.github.com/google/go-cloud/pull/3429)
- [@&#8203;peczenyj](https://redirect.github.com/peczenyj) made their
first contribution in
[https://github.com/google/go-cloud/pull/3431](https://redirect.github.com/google/go-cloud/pull/3431)
- [@&#8203;chancez](https://redirect.github.com/chancez) made their
first contribution in
[https://github.com/google/go-cloud/pull/3445](https://redirect.github.com/google/go-cloud/pull/3445)
- [@&#8203;milescrabill](https://redirect.github.com/milescrabill) made
their first contribution in
[https://github.com/google/go-cloud/pull/3443](https://redirect.github.com/google/go-cloud/pull/3443)
- [@&#8203;samlaf](https://redirect.github.com/samlaf) made their first
contribution in
[https://github.com/google/go-cloud/pull/3450](https://redirect.github.com/google/go-cloud/pull/3450)

**Full Changelog**:
https://github.com/google/go-cloud/compare/v0.37.0...v0.38.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43NC4xIiwidXBkYXRlZEluVmVyIjoiMzguNzQuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 18:13:26 +00:00
renovate[bot] fc4cd3e547
fix(deps): update opentelemetry-go monorepo (#1403)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.29.0` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.29.0` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.29.0` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.29.0` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v0.51.0` -> `v0.52.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.51.0/v0.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.51.0/v0.52.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.29.0` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.29.0` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.29.0` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://redirect.github.com/open-telemetry/opentelemetry-go)
| `v1.29.0` -> `v1.30.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.29.0/v1.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.30.0`](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.29.0...v1.30.0)

[Compare
Source](https://redirect.github.com/open-telemetry/opentelemetry-go/compare/v1.29.0...v1.30.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-11 00:42:34 +00:00
renovate[bot] 50c9cd3ada
fix(deps): update module google.golang.org/grpc to v1.66.1 (#1402)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.66.0` -> `v1.66.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.66.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.66.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.66.0/v1.66.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.66.0/v1.66.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.66.1`](https://redirect.github.com/grpc/grpc-go/compare/v1.66.0...v1.66.1)

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.66.0...v1.66.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-10 00:13:29 +00:00
renovate[bot] 18dd4e279f
fix(deps): update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.16.2-20240906125204-0a6a901b42e8.1 (#1399)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.16.2-20240215170432-1e611e2999cc.1` ->
`v1.16.2-20240906125204-0a6a901b42e8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.2-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.2-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.2-20240215170432-1e611e2999cc.1/v1.16.2-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.2-20240215170432-1e611e2999cc.1/v1.16.2-20240906125204-0a6a901b42e8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 16:02:07 +00:00
renovate[bot] 22aef5bbf0
fix(deps): update opentelemetry-go monorepo (#1387)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.28.0` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.28.0` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.28.0` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.28.0` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| `v0.50.0` -> `v0.51.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.50.0/v0.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.50.0/v0.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.28.0` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.28.0` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.28.0` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.28.0` -> `v1.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.28.0/v1.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.29.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.29.0):
/v0.51.0/v0.5.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.28.0...v1.29.0)

##### Overview

This release is the last to support [Go 1.21]. The next release will
require at least [Go 1.22].

##### Added

- Add MacOS ARM64 platform to the compatibility testing suite.
([#&#8203;5577](https://togithub.com/open-telemetry/opentelemetry-go/issues/5577))
- Add `InstrumentationScope` field to `SpanStub` in
`go.opentelemetry.io/otel/sdk/trace/tracetest`, as a replacement for the
deprecated `InstrumentationLibrary`.
([#&#8203;5627](https://togithub.com/open-telemetry/opentelemetry-go/issues/5627))
- Make the initial release of
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc`. This new
module contains an OTLP exporter that transmits log telemetry using
gRPC. This module is unstable and breaking changes may be introduced.
See our [versioning policy](VERSIONING.md) for more information about
these stability guarantees.
([#&#8203;5629](https://togithub.com/open-telemetry/opentelemetry-go/issues/5629))
- Add `Walk` function to `TraceState` in
`go.opentelemetry.io/otel/trace` to iterate all the key-value pairs.
([#&#8203;5651](https://togithub.com/open-telemetry/opentelemetry-go/issues/5651))
- Bridge the trace state in
`go.opentelemetry.io/otel/bridge/opencensus`.
([#&#8203;5651](https://togithub.com/open-telemetry/opentelemetry-go/issues/5651))
- Zero value of `SimpleProcessor` in `go.opentelemetry.io/otel/sdk/log`
no longer panics.
([#&#8203;5665](https://togithub.com/open-telemetry/opentelemetry-go/issues/5665))
- The `FilterProcessor` interface type is added in
`go.opentelemetry.io/otel/sdk/log/internal/x`. This is an optional and
experimental interface that log `Processor`s can implement to instruct
the `Logger` if a `Record` will be processed or not. It replaces the
existing `Enabled` method that is removed from the `Processor` interface
itself. It does not fall within the scope of the OpenTelemetry Go
versioning and stability [policy](./VERSIONING.md) and it may be changed
in backwards incompatible ways or removed in feature releases.
([#&#8203;5692](https://togithub.com/open-telemetry/opentelemetry-go/issues/5692))
- Support [Go 1.23].
([#&#8203;5720](https://togithub.com/open-telemetry/opentelemetry-go/issues/5720))

##### Changed

- `NewMemberRaw`, `NewKeyProperty` and `NewKeyValuePropertyRaw` in
`go.opentelemetry.io/otel/baggage` allow UTF-8 string in key.
([#&#8203;5132](https://togithub.com/open-telemetry/opentelemetry-go/issues/5132))
- `Processor.OnEmit` in `go.opentelemetry.io/otel/sdk/log` now accepts a
pointer to `Record` instead of a value so that the record modifications
done in a processor are propagated to subsequent registered processors.
([#&#8203;5636](https://togithub.com/open-telemetry/opentelemetry-go/issues/5636))
- `SimpleProcessor.Enabled` in `go.opentelemetry.io/otel/sdk/log` now
returns `false` if the exporter is `nil`.
([#&#8203;5665](https://togithub.com/open-telemetry/opentelemetry-go/issues/5665))
- Update the concurrency requirements of `Exporter` in
`go.opentelemetry.io/otel/sdk/log`.
([#&#8203;5666](https://togithub.com/open-telemetry/opentelemetry-go/issues/5666))
- `SimpleProcessor` in `go.opentelemetry.io/otel/sdk/log` synchronizes
`OnEmit` calls.
([#&#8203;5666](https://togithub.com/open-telemetry/opentelemetry-go/issues/5666))
- The `Processor` interface in `go.opentelemetry.io/otel/sdk/log` no
longer includes the `Enabled` method. See the `FilterProcessor`
interface type added in `go.opentelemetry.io/otel/sdk/log/internal/x` to
continue providing this functionality.
([#&#8203;5692](https://togithub.com/open-telemetry/opentelemetry-go/issues/5692))
- The `SimpleProcessor` type in `go.opentelemetry.io/otel/sdk/log` is no
longer comparable.
([#&#8203;5693](https://togithub.com/open-telemetry/opentelemetry-go/issues/5693))
- The `BatchProcessor` type in `go.opentelemetry.io/otel/sdk/log` is no
longer comparable.
([#&#8203;5693](https://togithub.com/open-telemetry/opentelemetry-go/issues/5693))

##### Fixed

- Correct comments for the priority of the `WithEndpoint` and
`WithEndpointURL` options and their corresponding environment variables
in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;5584](https://togithub.com/open-telemetry/opentelemetry-go/issues/5584))
- Pass the underlying error rather than a generic retry-able failure in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`,
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp` and
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;5541](https://togithub.com/open-telemetry/opentelemetry-go/issues/5541))
- Correct the `Tracer`, `Meter`, and `Logger` names used in
`go.opentelemetry.io/otel/example/dice`.
([#&#8203;5612](https://togithub.com/open-telemetry/opentelemetry-go/issues/5612))
- Correct the `Tracer` names used in
`go.opentelemetry.io/otel/example/namedtracer`.
([#&#8203;5612](https://togithub.com/open-telemetry/opentelemetry-go/issues/5612))
- Correct the `Tracer` name used in
`go.opentelemetry.io/otel/example/opencensus`.
([#&#8203;5612](https://togithub.com/open-telemetry/opentelemetry-go/issues/5612))
- Correct the `Tracer` and `Meter` names used in
`go.opentelemetry.io/otel/example/otel-collector`.
([#&#8203;5612](https://togithub.com/open-telemetry/opentelemetry-go/issues/5612))
- Correct the `Tracer` names used in
`go.opentelemetry.io/otel/example/passthrough`.
([#&#8203;5612](https://togithub.com/open-telemetry/opentelemetry-go/issues/5612))
- Correct the `Meter` name used in
`go.opentelemetry.io/otel/example/prometheus`.
([#&#8203;5612](https://togithub.com/open-telemetry/opentelemetry-go/issues/5612))
- Correct the `Tracer` names used in
`go.opentelemetry.io/otel/example/zipkin`.
([#&#8203;5612](https://togithub.com/open-telemetry/opentelemetry-go/issues/5612))
- Correct comments for the priority of the `WithEndpoint` and
`WithEndpointURL` options and their corresponding environment variables
in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`
and `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;5641](https://togithub.com/open-telemetry/opentelemetry-go/issues/5641))
- Correct comments for the priority of the `WithEndpoint` and
`WithEndpointURL` options and their corresponding environment variables
in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.
([#&#8203;5650](https://togithub.com/open-telemetry/opentelemetry-go/issues/5650))
- Stop percent encoding header environment variables in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`,
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`,
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` and
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`
([#&#8203;5705](https://togithub.com/open-telemetry/opentelemetry-go/issues/5705))
- Remove invalid environment variable header keys in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`,
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`,
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` and
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`
([#&#8203;5705](https://togithub.com/open-telemetry/opentelemetry-go/issues/5705))

##### Removed

- The `Enabled` method of the `SimpleProcessor` in
`go.opentelemetry.io/otel/sdk/log` is removed.
([#&#8203;5692](https://togithub.com/open-telemetry/opentelemetry-go/issues/5692))
- The `Enabled` method of the `BatchProcessor` in
`go.opentelemetry.io/otel/sdk/log` is removed.
([#&#8203;5692](https://togithub.com/open-telemetry/opentelemetry-go/issues/5692))

[Go 1.23]: https://go.dev/doc/go1.23

[Go 1.22]: https://go.dev/doc/go1.22

[Go 1.21]: https://go.dev/doc/go1.21

##### What's Changed

- Upgrade Go versions in CI by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5570](https://togithub.com/open-telemetry/opentelemetry-go/pull/5570)
- fix(deps): update module google.golang.org/grpc to v1.65.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5568](https://togithub.com/open-telemetry/opentelemetry-go/pull/5568)
- fix(deps): update module go.opentelemetry.io/otel/sdk/log to v0.4.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5571](https://togithub.com/open-telemetry/opentelemetry-go/pull/5571)
- fix(deps): update module go.opentelemetry.io/contrib/bridges/otelslog
to v0.3.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5573](https://togithub.com/open-telemetry/opentelemetry-go/pull/5573)
- fix(deps): update module
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.53.0
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5574](https://togithub.com/open-telemetry/opentelemetry-go/pull/5574)
- Implement otlploggrpc gRPC client by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5572](https://togithub.com/open-telemetry/opentelemetry-go/pull/5572)
- chore(deps): update module golang.org/x/sys to v0.22.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5576](https://togithub.com/open-telemetry/opentelemetry-go/pull/5576)
- chore(deps): update module golang.org/x/net to v0.27.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5581](https://togithub.com/open-telemetry/opentelemetry-go/pull/5581)
- Enable benchmark summary for release by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5527](https://togithub.com/open-telemetry/opentelemetry-go/pull/5527)
- sdk/log: Add package example by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5579](https://togithub.com/open-telemetry/opentelemetry-go/pull/5579)
- \[chore] Update macOS runners by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5577](https://togithub.com/open-telemetry/opentelemetry-go/pull/5577)
- fix(deps): update module golang.org/x/tools to v0.23.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5583](https://togithub.com/open-telemetry/opentelemetry-go/pull/5583)
- fix(deps): update golang.org/x/exp digest to
[`46b0784`](https://togithub.com/open-telemetry/opentelemetry-go/commit/46b0784)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5585](https://togithub.com/open-telemetry/opentelemetry-go/pull/5585)
- baggage: Fix invalid percent-encoded octet sequences by
[@&#8203;santileira](https://togithub.com/santileira) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5528](https://togithub.com/open-telemetry/opentelemetry-go/pull/5528)
- Extend trace config benchmarks to run each option individually by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5566](https://togithub.com/open-telemetry/opentelemetry-go/pull/5566)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`654c5fe`](https://togithub.com/open-telemetry/opentelemetry-go/commit/654c5fe)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5587](https://togithub.com/open-telemetry/opentelemetry-go/pull/5587)
- Protect released changelog in CI by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5560](https://togithub.com/open-telemetry/opentelemetry-go/pull/5560)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`4ad9e85`](https://togithub.com/open-telemetry/opentelemetry-go/commit/4ad9e85)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5588](https://togithub.com/open-telemetry/opentelemetry-go/pull/5588)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`4ad9e85`](https://togithub.com/open-telemetry/opentelemetry-go/commit/4ad9e85)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5589](https://togithub.com/open-telemetry/opentelemetry-go/pull/5589)
- Correct the comment for the priority of options and environments on
otlptracehttp by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5584](https://togithub.com/open-telemetry/opentelemetry-go/pull/5584)
- \[chore] Add missing changelog entry for
[#&#8203;5577](https://togithub.com/open-telemetry/opentelemetry-go/issues/5577)
by [@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5586](https://togithub.com/open-telemetry/opentelemetry-go/pull/5586)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`40e1e62`](https://togithub.com/open-telemetry/opentelemetry-go/commit/40e1e62)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5592](https://togithub.com/open-telemetry/opentelemetry-go/pull/5592)
- Implement otlploggrpc exporter by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5582](https://togithub.com/open-telemetry/opentelemetry-go/pull/5582)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`40e1e62`](https://togithub.com/open-telemetry/opentelemetry-go/commit/40e1e62)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5593](https://togithub.com/open-telemetry/opentelemetry-go/pull/5593)
- fix(deps): update module go.opentelemetry.io/build-tools/crosslink to
v0.14.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5594](https://togithub.com/open-telemetry/opentelemetry-go/pull/5594)
- fix(deps): update module go.opentelemetry.io/build-tools/gotmpl to
v0.14.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5595](https://togithub.com/open-telemetry/opentelemetry-go/pull/5595)
- fix(deps): update module go.opentelemetry.io/build-tools/multimod to
v0.14.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5596](https://togithub.com/open-telemetry/opentelemetry-go/pull/5596)
- fix(deps): update module go.opentelemetry.io/build-tools/semconvgen to
v0.14.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5597](https://togithub.com/open-telemetry/opentelemetry-go/pull/5597)
- chore(deps): update prom/prometheus docker tag to v2.53.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5603](https://togithub.com/open-telemetry/opentelemetry-go/pull/5603)
- chore(deps): update jaegertracing/all-in-one docker tag to v1.59 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5605](https://togithub.com/open-telemetry/opentelemetry-go/pull/5605)
- Add TestSpanStartConfigAttributeMutability by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5591](https://togithub.com/open-telemetry/opentelemetry-go/pull/5591)
- log: Add missing notice to Bytes, Slice, Map doc comment by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5598](https://togithub.com/open-telemetry/opentelemetry-go/pull/5598)
- Add TestConfigLinkMutability by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5604](https://togithub.com/open-telemetry/opentelemetry-go/pull/5604)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`46eb208`](https://togithub.com/open-telemetry/opentelemetry-go/commit/46eb208)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5610](https://togithub.com/open-telemetry/opentelemetry-go/pull/5610)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`46eb208`](https://togithub.com/open-telemetry/opentelemetry-go/commit/46eb208)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5611](https://togithub.com/open-telemetry/opentelemetry-go/pull/5611)
- sdk/log: Refine BenchmarkProcessor by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5607](https://togithub.com/open-telemetry/opentelemetry-go/pull/5607)
- sdk/log: Simple processor may be useful for production by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5578](https://togithub.com/open-telemetry/opentelemetry-go/pull/5578)
- Fix verify_released_changelog.sh by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5616](https://togithub.com/open-telemetry/opentelemetry-go/pull/5616)
- Add resource metrics transform benchmarks by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5602](https://togithub.com/open-telemetry/opentelemetry-go/pull/5602)
- Add benchmark for turning readonly spans into their proto struct by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5601](https://togithub.com/open-telemetry/opentelemetry-go/pull/5601)
- sdk/log: Package documentation by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5609](https://togithub.com/open-telemetry/opentelemetry-go/pull/5609)
- Document Logger name and version recommendations by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5613](https://togithub.com/open-telemetry/opentelemetry-go/pull/5613)
- Add comment to other observable instruments about repeated creation
with callbacks by [@&#8203;dashpole](https://togithub.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5606](https://togithub.com/open-telemetry/opentelemetry-go/pull/5606)
- Update example instrumentation names by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5612](https://togithub.com/open-telemetry/opentelemetry-go/pull/5612)
- Add integration tests for otlploggrpc exporter by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5614](https://togithub.com/open-telemetry/opentelemetry-go/pull/5614)
- Add example test for otlploggrpc by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5615](https://togithub.com/open-telemetry/opentelemetry-go/pull/5615)
- Add entry for logs in `go.opentelemetry.io/otel` package documentation
by [@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5621](https://togithub.com/open-telemetry/opentelemetry-go/pull/5621)
- Refactor Batch Processor benchmark to really test OnEnd by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5600](https://togithub.com/open-telemetry/opentelemetry-go/pull/5600)
- Separate trace API components into own files by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5620](https://togithub.com/open-telemetry/opentelemetry-go/pull/5620)
- fix(deps): update golang.org/x/exp digest to
[`e3f2596`](https://togithub.com/open-telemetry/opentelemetry-go/commit/e3f2596)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5624](https://togithub.com/open-telemetry/opentelemetry-go/pull/5624)
- fix(deps): update module golang.org/x/vuln to v1.1.3 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5625](https://togithub.com/open-telemetry/opentelemetry-go/pull/5625)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.105.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5626](https://togithub.com/open-telemetry/opentelemetry-go/pull/5626)
- Add `otlploggrpc` package documentation by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5622](https://togithub.com/open-telemetry/opentelemetry-go/pull/5622)
- Parse errormsgs in retryable status codes by
[@&#8203;pree-dew](https://togithub.com/pree-dew) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5541](https://togithub.com/open-telemetry/opentelemetry-go/pull/5541)
- Include otlploggrpc module into the experimental-logs by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5629](https://togithub.com/open-telemetry/opentelemetry-go/pull/5629)
- Rely on net/http error content rather than unreliable deadline
exceeded by [@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5631](https://togithub.com/open-telemetry/opentelemetry-go/pull/5631)
- fix(deps): update golang.org/x/exp digest to
[`8a7402a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/8a7402a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5633](https://togithub.com/open-telemetry/opentelemetry-go/pull/5633)
- baggage: fix grammar error by
[@&#8203;kevinburkesegment](https://togithub.com/kevinburkesegment) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5634](https://togithub.com/open-telemetry/opentelemetry-go/pull/5634)
- Fix otlp grpc exporters doc to require a scheme by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5632](https://togithub.com/open-telemetry/opentelemetry-go/pull/5632)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`d784300`](https://togithub.com/open-telemetry/opentelemetry-go/commit/d784300)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5638](https://togithub.com/open-telemetry/opentelemetry-go/pull/5638)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`d784300`](https://togithub.com/open-telemetry/opentelemetry-go/commit/d784300)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5637](https://togithub.com/open-telemetry/opentelemetry-go/pull/5637)
- Use actuated runner to run benchmark by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5635](https://togithub.com/open-telemetry/opentelemetry-go/pull/5635)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`e6d459c`](https://togithub.com/open-telemetry/opentelemetry-go/commit/e6d459c)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5639](https://togithub.com/open-telemetry/opentelemetry-go/pull/5639)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`e6d459c`](https://togithub.com/open-telemetry/opentelemetry-go/commit/e6d459c)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5640](https://togithub.com/open-telemetry/opentelemetry-go/pull/5640)
- Allow relying on InstrumentationScope in SpanStub and fix remaining
deprecation issues by [@&#8203;dmathieu](https://togithub.com/dmathieu)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/5627](https://togithub.com/open-telemetry/opentelemetry-go/pull/5627)
- Correct the comment for the priority of options and environments on
otlpmetric by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5641](https://togithub.com/open-telemetry/opentelemetry-go/pull/5641)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`93522f1`](https://togithub.com/open-telemetry/opentelemetry-go/commit/93522f1)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5646](https://togithub.com/open-telemetry/opentelemetry-go/pull/5646)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`93522f1`](https://togithub.com/open-telemetry/opentelemetry-go/commit/93522f1)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5647](https://togithub.com/open-telemetry/opentelemetry-go/pull/5647)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.21.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5648](https://togithub.com/open-telemetry/opentelemetry-go/pull/5648)
- fix(deps): update github.com/opentracing-contrib/go-grpc digest to
[`9dec25a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/9dec25a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5643](https://togithub.com/open-telemetry/opentelemetry-go/pull/5643)
- typo: fix docs by
[@&#8203;intiramisu](https://togithub.com/intiramisu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5649](https://togithub.com/open-telemetry/opentelemetry-go/pull/5649)
- Enable all benchmarks in CI by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5644](https://togithub.com/open-telemetry/opentelemetry-go/pull/5644)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.106.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5654](https://togithub.com/open-telemetry/opentelemetry-go/pull/5654)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`b1a4ccb`](https://togithub.com/open-telemetry/opentelemetry-go/commit/b1a4ccb)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5656](https://togithub.com/open-telemetry/opentelemetry-go/pull/5656)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`b1a4ccb`](https://togithub.com/open-telemetry/opentelemetry-go/commit/b1a4ccb)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5655](https://togithub.com/open-telemetry/opentelemetry-go/pull/5655)
- Fix benchmark ci by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5657](https://togithub.com/open-telemetry/opentelemetry-go/pull/5657)
- \[chore] Add asasalint linter by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5653](https://togithub.com/open-telemetry/opentelemetry-go/pull/5653)
- \[chore] Add bodyclose linter by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5659](https://togithub.com/open-telemetry/opentelemetry-go/pull/5659)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.106.1 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5662](https://togithub.com/open-telemetry/opentelemetry-go/pull/5662)
- \[chore] Remove toolchain from go.mod by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5661](https://togithub.com/open-telemetry/opentelemetry-go/pull/5661)
- sdk/log: Processor.OnEmit accetps a Record pointer by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5636](https://togithub.com/open-telemetry/opentelemetry-go/pull/5636)
- Fix membership link by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5667](https://togithub.com/open-telemetry/opentelemetry-go/pull/5667)
- Correct the comment for the priority of options and environments on
otlploghttp by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5650](https://togithub.com/open-telemetry/opentelemetry-go/pull/5650)
- Fix benchmark that does not compare the exact result from the previous
commit by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5664](https://togithub.com/open-telemetry/opentelemetry-go/pull/5664)
- sdk/log: SimpleProcessor to not panic for zero value by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5665](https://togithub.com/open-telemetry/opentelemetry-go/pull/5665)
- chore(deps): update module golang.org/x/sys to v0.23.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5669](https://togithub.com/open-telemetry/opentelemetry-go/pull/5669)
- Fix interfaces doc formatting by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5658](https://togithub.com/open-telemetry/opentelemetry-go/pull/5658)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`2c9e96a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/2c9e96a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5673](https://togithub.com/open-telemetry/opentelemetry-go/pull/5673)
- fix(deps): update module golang.org/x/tools to v0.24.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5677](https://togithub.com/open-telemetry/opentelemetry-go/pull/5677)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`2c9e96a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/2c9e96a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5672](https://togithub.com/open-telemetry/opentelemetry-go/pull/5672)
- chore(deps): update jaegertracing/all-in-one docker tag to v1.60 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5675](https://togithub.com/open-telemetry/opentelemetry-go/pull/5675)
- chore(deps): update module golang.org/x/net to v0.28.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5676](https://togithub.com/open-telemetry/opentelemetry-go/pull/5676)
- Fix stdoutlog import path by
[@&#8203;mikelolasagasti](https://togithub.com/mikelolasagasti) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5670](https://togithub.com/open-telemetry/opentelemetry-go/pull/5670)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`573a115`](https://togithub.com/open-telemetry/opentelemetry-go/commit/573a115)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5697](https://togithub.com/open-telemetry/opentelemetry-go/pull/5697)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`573a115`](https://togithub.com/open-telemetry/opentelemetry-go/commit/573a115)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5698](https://togithub.com/open-telemetry/opentelemetry-go/pull/5698)
- fix(deps): update golang.org/x/exp digest to
[`0cdaa3a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/0cdaa3a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5699](https://togithub.com/open-telemetry/opentelemetry-go/pull/5699)
- chore(deps): update module golang.org/x/sys to v0.24.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5700](https://togithub.com/open-telemetry/opentelemetry-go/pull/5700)
- sdk/log: SimpleProcessor synchronizes OnEmit calls by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5666](https://togithub.com/open-telemetry/opentelemetry-go/pull/5666)
- Ensure exported struct in `sdk/log` are not comparable by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5693](https://togithub.com/open-telemetry/opentelemetry-go/pull/5693)
- Use self hosted runner to run benchmark by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5695](https://togithub.com/open-telemetry/opentelemetry-go/pull/5695)
- Save benchmark cache even the job is failed by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5694](https://togithub.com/open-telemetry/opentelemetry-go/pull/5694)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`8ffd90a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/8ffd90a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5708](https://togithub.com/open-telemetry/opentelemetry-go/pull/5708)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`8ffd90a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/8ffd90a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5709](https://togithub.com/open-telemetry/opentelemetry-go/pull/5709)
- baggage: Accept non-ASCII keys by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5132](https://togithub.com/open-telemetry/opentelemetry-go/pull/5132)
- Stabilize benchmark result of `BenchmarkValueEqual` by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5717](https://togithub.com/open-telemetry/opentelemetry-go/pull/5717)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`ddb44da`](https://togithub.com/open-telemetry/opentelemetry-go/commit/ddb44da)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5715](https://togithub.com/open-telemetry/opentelemetry-go/pull/5715)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`ddb44da`](https://togithub.com/open-telemetry/opentelemetry-go/commit/ddb44da)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5714](https://togithub.com/open-telemetry/opentelemetry-go/pull/5714)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.22.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5718](https://togithub.com/open-telemetry/opentelemetry-go/pull/5718)
- fix(deps): update module github.com/prometheus/client_golang to
v1.20.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5713](https://togithub.com/open-telemetry/opentelemetry-go/pull/5713)
- chore(deps): update prom/prometheus docker tag to v2.54.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5701](https://togithub.com/open-telemetry/opentelemetry-go/pull/5701)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.107.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5710](https://togithub.com/open-telemetry/opentelemetry-go/pull/5710)
- chore(deps): update golang docker tag to v1.23 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5712](https://togithub.com/open-telemetry/opentelemetry-go/pull/5712)
- fix(deps): update module github.com/prometheus/client_golang to
v1.20.1 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5721](https://togithub.com/open-telemetry/opentelemetry-go/pull/5721)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`278611b`](https://togithub.com/open-telemetry/opentelemetry-go/commit/278611b)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5723](https://togithub.com/open-telemetry/opentelemetry-go/pull/5723)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`278611b`](https://togithub.com/open-telemetry/opentelemetry-go/commit/278611b)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5724](https://togithub.com/open-telemetry/opentelemetry-go/pull/5724)
- Add support for go 1.23 by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5720](https://togithub.com/open-telemetry/opentelemetry-go/pull/5720)
- Bugfix: OTLP exporters should not percent decode the key when parsing
HEADERS env vars by [@&#8203;zhihali](https://togithub.com/zhihali) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5705](https://togithub.com/open-telemetry/opentelemetry-go/pull/5705)
- OpenCensus bridge to support TraceState by
[@&#8203;jianwu](https://togithub.com/jianwu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5651](https://togithub.com/open-telemetry/opentelemetry-go/pull/5651)
- Move `log.Processor.Enabled` to independent `FilterProcessor`
interfaced type by [@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5692](https://togithub.com/open-telemetry/opentelemetry-go/pull/5692)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`fc7c04a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/fc7c04a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5726](https://togithub.com/open-telemetry/opentelemetry-go/pull/5726)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`fc7c04a`](https://togithub.com/open-telemetry/opentelemetry-go/commit/fc7c04a)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5727](https://togithub.com/open-telemetry/opentelemetry-go/pull/5727)
- fix(deps): update golang.org/x/exp digest to
[`778ce7b`](https://togithub.com/open-telemetry/opentelemetry-go/commit/778ce7b)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5728](https://togithub.com/open-telemetry/opentelemetry-go/pull/5728)
- fix(deps): update golang.org/x/exp digest to
[`9b4947d`](https://togithub.com/open-telemetry/opentelemetry-go/commit/9b4947d)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5729](https://togithub.com/open-telemetry/opentelemetry-go/pull/5729)
- fix(deps): update module github.com/golangci/golangci-lint to v1.60.2
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5711](https://togithub.com/open-telemetry/opentelemetry-go/pull/5711)
- fix(deps): update module github.com/golangci/golangci-lint to v1.60.3
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5730](https://togithub.com/open-telemetry/opentelemetry-go/pull/5730)
- Release v1.29.0/v0.51.0/v0.5.0 by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5732](https://togithub.com/open-telemetry/opentelemetry-go/pull/5732)

##### New Contributors

- [@&#8203;santileira](https://togithub.com/santileira) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5528](https://togithub.com/open-telemetry/opentelemetry-go/pull/5528)
- [@&#8203;pree-dew](https://togithub.com/pree-dew) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5541](https://togithub.com/open-telemetry/opentelemetry-go/pull/5541)
- [@&#8203;intiramisu](https://togithub.com/intiramisu) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5649](https://togithub.com/open-telemetry/opentelemetry-go/pull/5649)
- [@&#8203;mikelolasagasti](https://togithub.com/mikelolasagasti) made
their first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5670](https://togithub.com/open-telemetry/opentelemetry-go/pull/5670)
- [@&#8203;jianwu](https://togithub.com/jianwu) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5651](https://togithub.com/open-telemetry/opentelemetry-go/pull/5651)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.28.0...v1.29.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 13:43:55 +00:00
renovate[bot] 0721e02daa
fix(deps): update module golang.org/x/net to v0.29.0 (#1398)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.28.0` -> `v0.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.28.0/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.28.0/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 10:41:35 +00:00
renovate[bot] 1507e19e93
fix(deps): update module golang.org/x/mod to v0.21.0 (#1397)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/mod | `v0.20.0` -> `v0.21.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.20.0/v0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.20.0/v0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 06:55:33 +00:00
renovate[bot] f9a7d10590
fix(deps): update module golang.org/x/crypto to v0.27.0 (#1396)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.26.0` -> `v0.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.26.0/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.26.0/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41OS4yIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 04:10:36 +00:00
renovate[bot] 231701346a
fix(deps): update module github.com/rs/xid to v1.6.0 (#1386)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/rs/xid](https://redirect.github.com/rs/xid) | `v1.5.0` ->
`v1.6.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2frs%2fxid/v1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2frs%2fxid/v1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2frs%2fxid/v1.5.0/v1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2frs%2fxid/v1.5.0/v1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rs/xid (github.com/rs/xid)</summary>

###
[`v1.6.0`](https://redirect.github.com/rs/xid/compare/v1.5.0...v1.6.0)

[Compare
Source](https://redirect.github.com/rs/xid/compare/v1.5.0...v1.6.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-06 01:45:04 +00:00
renovate[bot] 8fd16b23b1
fix(deps): update module github.com/prometheus/client_golang to v1.20.3 (#1384)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/prometheus/client_golang](https://redirect.github.com/prometheus/client_golang)
| `v1.19.1` -> `v1.20.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.20.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.20.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.19.1/v1.20.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.19.1/v1.20.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prometheus/client_golang
(github.com/prometheus/client_golang)</summary>

###
[`v1.20.3`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.3)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.2...v1.20.3)

- \[BUGFIX] histograms: Fix possible data race when appending exemplars.
[#&#8203;1608](https://redirect.github.com/prometheus/client_golang/issues/1608)

###
[`v1.20.2`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.2)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.1...v1.20.2)

- \[BUGFIX] promhttp: Unset Content-Encoding header when data is
uncompressed.
[#&#8203;1596](https://redirect.github.com/prometheus/client_golang/issues/1596)

###
[`v1.20.1`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.1)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.20.0...v1.20.1)

- \[BUGFIX] process-collector: Fixed unregistered descriptor error when
using process collector with PedanticRegistry on Linux machines.
[#&#8203;1587](https://redirect.github.com/prometheus/client_golang/issues/1587)

###
[`v1.20.0`](https://redirect.github.com/prometheus/client_golang/releases/tag/v1.20.0)

[Compare
Source](https://redirect.github.com/prometheus/client_golang/compare/v1.19.1...v1.20.0)

Thanks everyone for contributions!

⚠️ In this release we remove one (broken anyway, given Go runtime
changes) metric and add three new (representing GOGC, GOMEMLIMIT and
GOMAXPROCS flags) to the default `collectors.NewGoCollector()`
collector. Given its popular usage, expect your binary to expose two
additional metric.

#### Changes

- \[CHANGE] ⚠️ go-collector: Remove `go_memstat_lookups_total`
metric which was always 0; Go runtime stopped sharing pointer lookup
statistics.
[#&#8203;1577](https://redirect.github.com/prometheus/client_golang/issues/1577)
- \[FEATURE] ⚠️ go-collector: Add 3 default metrics:
`go_gc_gogc_percent`, `go_gc_gomemlimit_bytes` and
`go_sched_gomaxprocs_threads` as those are recommended by the Go team.
[#&#8203;1559](https://redirect.github.com/prometheus/client_golang/issues/1559)
- \[FEATURE] go-collector: Add more information to all metrics' HELP
e.g. the exact `runtime/metrics` sourcing each metric (if relevant).
[#&#8203;1568](https://redirect.github.com/prometheus/client_golang/issues/1568)
[#&#8203;1578](https://redirect.github.com/prometheus/client_golang/issues/1578)
- \[FEATURE] testutil: Add CollectAndFormat method.
[#&#8203;1503](https://redirect.github.com/prometheus/client_golang/issues/1503)
- \[FEATURE] histograms: Add support for exemplars in native histograms.
[#&#8203;1471](https://redirect.github.com/prometheus/client_golang/issues/1471)
- \[FEATURE] promhttp: Add experimental support for `zstd` on scrape,
controlled by the request `Accept-Encoding` header.
[#&#8203;1496](https://redirect.github.com/prometheus/client_golang/issues/1496)
- \[FEATURE] api/v1: Add `WithLimit` parameter to all API methods that
supports it.
[#&#8203;1544](https://redirect.github.com/prometheus/client_golang/issues/1544)
- \[FEATURE] prometheus: Add support for created timestamps in constant
histograms and constant summaries.
[#&#8203;1537](https://redirect.github.com/prometheus/client_golang/issues/1537)
- \[FEATURE] process-collectors: Add network usage metrics:
`process_network_receive_bytes_total` and
`process_network_transmit_bytes_total`.
[#&#8203;1555](https://redirect.github.com/prometheus/client_golang/issues/1555)
- \[FEATURE] promlint: Add duplicated metric lint rule.
[#&#8203;1472](https://redirect.github.com/prometheus/client_golang/issues/1472)
- \[BUGFIX] promlint: Relax metric type in name linter rule.
[#&#8203;1455](https://redirect.github.com/prometheus/client_golang/issues/1455)
-   \[BUGFIX] promhttp: Make sure server
instrumentation wrapping supports new and future extra responseWriter
methods.
[#&#8203;1480](https://redirect.github.com/prometheus/client_golang/issues/1480)
- \[BUGFIX] testutil: Functions using compareMetricFamilies are now
failing if filtered metricNames are not in the input.
[#&#8203;1424](https://redirect.github.com/prometheus/client_golang/issues/1424)

<details>
  <summary>All commits</summary>

- feat(prometheus/testutil/promlint/validations): refine lintMetricType…
by [@&#8203;foehammer127](https://redirect.github.com/foehammer127) in
[https://github.com/prometheus/client_golang/pull/1455](https://redirect.github.com/prometheus/client_golang/pull/1455)
- Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 in
/examples/middleware by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1457](https://redirect.github.com/prometheus/client_golang/pull/1457)
- Bump github.com/prometheus/client_model from 0.5.0 to 0.6.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1458](https://redirect.github.com/prometheus/client_golang/pull/1458)
- Bump golang.org/x/sys from 0.16.0 to 0.17.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1459](https://redirect.github.com/prometheus/client_golang/pull/1459)
- Bump github.com/prometheus/client_golang from 1.18.0 to 1.19.0 in
/tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1461](https://redirect.github.com/prometheus/client_golang/pull/1461)
- Merge Release 1.19 back to main by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1462](https://redirect.github.com/prometheus/client_golang/pull/1462)
- Bump the github-actions group with 2 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1456](https://redirect.github.com/prometheus/client_golang/pull/1456)
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1466](https://redirect.github.com/prometheus/client_golang/pull/1466)
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in
/examples/middleware by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1467](https://redirect.github.com/prometheus/client_golang/pull/1467)
- Bump google.golang.org/protobuf from 1.32.0 to 1.33.0 in
/tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1469](https://redirect.github.com/prometheus/client_golang/pull/1469)
- Add LintDuplicateMetric to promlint by
[@&#8203;bboreham](https://redirect.github.com/bboreham) in
[https://github.com/prometheus/client_golang/pull/1472](https://redirect.github.com/prometheus/client_golang/pull/1472)
- Auto-update Go Collector Metrics for new Go versions by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1476](https://redirect.github.com/prometheus/client_golang/pull/1476)
- Implement Unwrap() for responseWriterDelegator by
[@&#8203;igor-drozdov](https://redirect.github.com/igor-drozdov) in
[https://github.com/prometheus/client_golang/pull/1480](https://redirect.github.com/prometheus/client_golang/pull/1480)
- Bump golang.org/x/sys from 0.17.0 to 0.18.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1485](https://redirect.github.com/prometheus/client_golang/pull/1485)
- Bump github.com/prometheus/procfs from 0.12.0 to 0.13.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1486](https://redirect.github.com/prometheus/client_golang/pull/1486)
- ci: Remove hardcoded supported Go versions from go.yml by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1489](https://redirect.github.com/prometheus/client_golang/pull/1489)
- feat: metrics generation workflow by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1481](https://redirect.github.com/prometheus/client_golang/pull/1481)
- fix: remove redundant go module in middleware example by
[@&#8203;majolo](https://redirect.github.com/majolo) in
[https://github.com/prometheus/client_golang/pull/1492](https://redirect.github.com/prometheus/client_golang/pull/1492)
- chore: Refactor how base metrics are added to Sched metrics by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1483](https://redirect.github.com/prometheus/client_golang/pull/1483)
- gocollector: Add regex option to allow collection of debug runtime
metrics by [@&#8203;ArthurSens](https://redirect.github.com/ArthurSens)
in
[https://github.com/prometheus/client_golang/pull/1389](https://redirect.github.com/prometheus/client_golang/pull/1389)
- Bump github.com/prometheus/common from 0.48.0 to 0.52.3 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1498](https://redirect.github.com/prometheus/client_golang/pull/1498)
- chore: fix function name in comment by
[@&#8203;oftenoccur](https://redirect.github.com/oftenoccur) in
[https://github.com/prometheus/client_golang/pull/1497](https://redirect.github.com/prometheus/client_golang/pull/1497)
- build(deps): bump golang.org/x/net from 0.20.0 to 0.23.0 in
/tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1501](https://redirect.github.com/prometheus/client_golang/pull/1501)
- build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1502](https://redirect.github.com/prometheus/client_golang/pull/1502)
- feat(dependency): replace go-spew package by
[@&#8203;dongjiang1989](https://redirect.github.com/dongjiang1989) in
[https://github.com/prometheus/client_golang/pull/1499](https://redirect.github.com/prometheus/client_golang/pull/1499)
- build(deps): bump github.com/prometheus/common from 0.52.3 to 0.53.0
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1504](https://redirect.github.com/prometheus/client_golang/pull/1504)
- build(deps): bump github.com/cespare/xxhash/v2 from 2.2.0 to 2.3.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1505](https://redirect.github.com/prometheus/client_golang/pull/1505)
- build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1506](https://redirect.github.com/prometheus/client_golang/pull/1506)
- build(deps): bump golang.org/x/sys from 0.18.0 to 0.19.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1507](https://redirect.github.com/prometheus/client_golang/pull/1507)
- build(deps): bump github.com/prometheus/client_model from 0.6.0 to
0.6.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1508](https://redirect.github.com/prometheus/client_golang/pull/1508)
- build(deps): bump github.com/prometheus/common from 0.48.0 to 0.53.0
in /tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1509](https://redirect.github.com/prometheus/client_golang/pull/1509)
- improved code more clean by
[@&#8203;lilijreey](https://redirect.github.com/lilijreey) in
[https://github.com/prometheus/client_golang/pull/1511](https://redirect.github.com/prometheus/client_golang/pull/1511)
- build(deps): bump the github-actions group with 3 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1510](https://redirect.github.com/prometheus/client_golang/pull/1510)
- \[CI]: Add Concurrency Grouping to GitHub Workflows by
[@&#8203;Ishani217](https://redirect.github.com/Ishani217) in
[https://github.com/prometheus/client_golang/pull/1444](https://redirect.github.com/prometheus/client_golang/pull/1444)
- Add CollectAndFormat to testutil, allowing caller to assert as they
want to on the exported metric by
[@&#8203;jcass8695](https://redirect.github.com/jcass8695) in
[https://github.com/prometheus/client_golang/pull/1503](https://redirect.github.com/prometheus/client_golang/pull/1503)
- testutil compareMetricFamilies: make less error-prone by
[@&#8203;leonnicolas](https://redirect.github.com/leonnicolas) in
[https://github.com/prometheus/client_golang/pull/1424](https://redirect.github.com/prometheus/client_golang/pull/1424)
- improved code more clean use time.IsZero() replace t = time.Time{} by
[@&#8203;lilijreey](https://redirect.github.com/lilijreey) in
[https://github.com/prometheus/client_golang/pull/1515](https://redirect.github.com/prometheus/client_golang/pull/1515)
- add native histogram exemplar support by
[@&#8203;fatsheep9146](https://redirect.github.com/fatsheep9146) in
[https://github.com/prometheus/client_golang/pull/1471](https://redirect.github.com/prometheus/client_golang/pull/1471)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1514](https://redirect.github.com/prometheus/client_golang/pull/1514)
- build(deps): bump golang.org/x/sys from 0.19.0 to 0.20.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1523](https://redirect.github.com/prometheus/client_golang/pull/1523)
- build(deps): bump google.golang.org/protobuf from 1.34.0 to 1.34.1 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1522](https://redirect.github.com/prometheus/client_golang/pull/1522)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1524](https://redirect.github.com/prometheus/client_golang/pull/1524)
- Add PR template for changelog automation by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1517](https://redirect.github.com/prometheus/client_golang/pull/1517)
- Auto label PRs by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1518](https://redirect.github.com/prometheus/client_golang/pull/1518)
- Fix: Auto label PRs
[#&#8203;1518](https://redirect.github.com/prometheus/client_golang/issues/1518)
by [@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1525](https://redirect.github.com/prometheus/client_golang/pull/1525)
- build(deps): bump github.com/prometheus/procfs from 0.13.0 to 0.15.1
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1527](https://redirect.github.com/prometheus/client_golang/pull/1527)
- ci: Group all changelog-related CI jobs into single one by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1526](https://redirect.github.com/prometheus/client_golang/pull/1526)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1530](https://redirect.github.com/prometheus/client_golang/pull/1530)
- Remove synchronize trigger from changelog workflow by
[@&#8203;SachinSahu431](https://redirect.github.com/SachinSahu431) in
[https://github.com/prometheus/client_golang/pull/1532](https://redirect.github.com/prometheus/client_golang/pull/1532)
- feat: Support zstd compression by
[@&#8203;mrueg](https://redirect.github.com/mrueg) in
[https://github.com/prometheus/client_golang/pull/1496](https://redirect.github.com/prometheus/client_golang/pull/1496)
- Fix golangci-lint config by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1536](https://redirect.github.com/prometheus/client_golang/pull/1536)
- build(deps): bump github.com/prometheus/client_golang from 1.19.0 to
1.19.1 in /tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1529](https://redirect.github.com/prometheus/client_golang/pull/1529)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1531](https://redirect.github.com/prometheus/client_golang/pull/1531)
- Cleanup NOTICE file by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1541](https://redirect.github.com/prometheus/client_golang/pull/1541)
- Remove inlined upstream code by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1539](https://redirect.github.com/prometheus/client_golang/pull/1539)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1545](https://redirect.github.com/prometheus/client_golang/pull/1545)
- client: Add Option to provide limit query param for APIs that support
it by [@&#8203;abbyssoul](https://redirect.github.com/abbyssoul) in
[https://github.com/prometheus/client_golang/pull/1544](https://redirect.github.com/prometheus/client_golang/pull/1544)
- Allow creating constant histogram and summary metrics with a created
timestamp by [@&#8203;swar8080](https://redirect.github.com/swar8080) in
[https://github.com/prometheus/client_golang/pull/1537](https://redirect.github.com/prometheus/client_golang/pull/1537)
- Update README.md by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1556](https://redirect.github.com/prometheus/client_golang/pull/1556)
- Temporarily remove required CI job for changelog. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1560](https://redirect.github.com/prometheus/client_golang/pull/1560)
- build(deps): bump github.com/prometheus/common from 0.53.0 to 0.55.0
in /tutorial/whatsup by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1549](https://redirect.github.com/prometheus/client_golang/pull/1549)
- build(deps): bump golang.org/x/sys from 0.20.0 to 0.21.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1552](https://redirect.github.com/prometheus/client_golang/pull/1552)
- build(deps): bump github.com/klauspost/compress from 1.17.8 to 1.17.9
by [@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1553](https://redirect.github.com/prometheus/client_golang/pull/1553)
- fix: Update Go tests by
[@&#8203;SuperQ](https://redirect.github.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1562](https://redirect.github.com/prometheus/client_golang/pull/1562)
- process_collector: collect received/transmitted bytes by
[@&#8203;huwcbjones](https://redirect.github.com/huwcbjones) in
[https://github.com/prometheus/client_golang/pull/1555](https://redirect.github.com/prometheus/client_golang/pull/1555)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1561](https://redirect.github.com/prometheus/client_golang/pull/1561)
- chore: Remove half-implemented changelog automation by
[@&#8203;ArthurSens](https://redirect.github.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1564](https://redirect.github.com/prometheus/client_golang/pull/1564)
- build(deps): bump the github-actions group across 1 directory with 3
updates by [@&#8203;dependabot](https://redirect.github.com/dependabot)
in
[https://github.com/prometheus/client_golang/pull/1565](https://redirect.github.com/prometheus/client_golang/pull/1565)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1563](https://redirect.github.com/prometheus/client_golang/pull/1563)
- build(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1551](https://redirect.github.com/prometheus/client_golang/pull/1551)
- deps: Updated to prometheus/common to 0.55 by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1566](https://redirect.github.com/prometheus/client_golang/pull/1566)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1567](https://redirect.github.com/prometheus/client_golang/pull/1567)
- tutorials: Renamed tutorial -> tutorials for consistency + fixed
tutorial code. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1569](https://redirect.github.com/prometheus/client_golang/pull/1569)
- go collector: add default metrics acceptance tests; adding more
context to HELP by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1568](https://redirect.github.com/prometheus/client_golang/pull/1568)
- build(deps): bump golang.org/x/sys from 0.21.0 to 0.22.0 by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1570](https://redirect.github.com/prometheus/client_golang/pull/1570)
- build(deps): bump the github-actions group with 3 updates by
[@&#8203;dependabot](https://redirect.github.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1571](https://redirect.github.com/prometheus/client_golang/pull/1571)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1572](https://redirect.github.com/prometheus/client_golang/pull/1572)
- ci: daggerize test and lint pipelines by
[@&#8203;marcosnils](https://redirect.github.com/marcosnils) in
[https://github.com/prometheus/client_golang/pull/1534](https://redirect.github.com/prometheus/client_golang/pull/1534)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1573](https://redirect.github.com/prometheus/client_golang/pull/1573)
- Add default Go runtime metrics for /gc/gogc:percent,
/gc/gomemlimit:bytes, /sched/gomaxprocs:threads by
[@&#8203;vesari](https://redirect.github.com/vesari) in
[https://github.com/prometheus/client_golang/pull/1559](https://redirect.github.com/prometheus/client_golang/pull/1559)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://redirect.github.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1576](https://redirect.github.com/prometheus/client_golang/pull/1576)
- Remove go_memstat_lookups_total; added runtime/metrics calculation to
memstat metric's help. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1577](https://redirect.github.com/prometheus/client_golang/pull/1577)
- gocollector: Attach original runtime/metrics metric name to help. by
[@&#8203;bwplotka](https://redirect.github.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1578](https://redirect.github.com/prometheus/client_golang/pull/1578)

</details>

#### New Contributors
* @&#8203;foehammer127 made their first
contributi[https://github.com/prometheus/client_golang/pull/1455](https://redirect.github.com/prometheus/client_golang/pull/1455)l/1455
* @&#8203;SachinSahu431 made their first
contributi[https://github.com/prometheus/client_golang/pull/1476](https://redirect.github.com/prometheus/client_golang/pull/1476)l/1476
* @&#8203;igor-drozdov made their first
contributi[https://github.com/prometheus/client_golang/pull/1480](https://redirect.github.com/prometheus/client_golang/pull/1480)l/1480
* @&#8203;majolo made their first
contributi[https://github.com/prometheus/client_golang/pull/1492](https://redirect.github.com/prometheus/client_golang/pull/1492)l/1492
* @&#8203;oftenoccur made their first
contributi[https://github.com/prometheus/client_golang/pull/1497](https://redirect.github.com/prometheus/client_golang/pull/1497)l/1497
* @&#8203;dongjiang1989 made their first
contributi[https://github.com/prometheus/client_golang/pull/1499](https://redirect.github.com/prometheus/client_golang/pull/1499)l/1499
* @&#8203;lilijreey made their first
contributi[https://github.com/prometheus/client_golang/pull/1511](https://redirect.github.com/prometheus/client_golang/pull/1511)l/1511
* @&#8203;Ishani217 made their first
contributi[https://github.com/prometheus/client_golang/pull/1444](https://redirect.github.com/prometheus/client_golang/pull/1444)l/1444
* @&#8203;jcass8695 made their first
contributi[https://github.com/prometheus/client_golang/pull/1503](https://redirect.github.com/prometheus/client_golang/pull/1503)l/1503
* @&#8203;leonnicolas made their first
contributi[https://github.com/prometheus/client_golang/pull/1424](https://redirect.github.com/prometheus/client_golang/pull/1424)l/1424
* @&#8203;fatsheep9146 made their first
contributi[https://github.com/prometheus/client_golang/pull/1471](https://redirect.github.com/prometheus/client_golang/pull/1471)l/1471
* @&#8203;abbyssoul made their first
contributi[https://github.com/prometheus/client_golang/pull/1544](https://redirect.github.com/prometheus/client_golang/pull/1544)l/1544
* @&#8203;swar8080 made their first
contributi[https://github.com/prometheus/client_golang/pull/1537](https://redirect.github.com/prometheus/client_golang/pull/1537)l/1537
* @&#8203;huwcbjones made their first
contributi[https://github.com/prometheus/client_golang/pull/1555](https://redirect.github.com/prometheus/client_golang/pull/1555)l/1555
* @&#8203;marcosnils made their first
contributi[https://github.com/prometheus/client_golang/pull/1534](https://redirect.github.com/prometheus/client_golang/pull/1534)l/1534
* @&#8203;vesari made their first
contributi[https://github.com/prometheus/client_golang/pull/1559](https://redirect.github.com/prometheus/client_golang/pull/1559)l/1559

**Full Changelog**:
https://github.com/prometheus/client_golang/compare/v1.19.1...v1.20.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 22:12:05 +00:00
renovate[bot] 3b5a818b69
fix(deps): update module github.com/open-feature/flagd/core to v0.10.2 (#1385)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.10.1` -> `v0.10.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.1/v0.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.1/v0.10.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-feature/flagd
(github.com/open-feature/flagd/core)</summary>

###
[`v0.10.2`](https://togithub.com/open-feature/flagd/releases/tag/flagd/v0.10.2):
flagd: v0.10.2

#####  New Features

- Create interface for eval events.
([#&#8203;1288](https://togithub.com/open-feature/flagd/issues/1288))
([9714215](9714215ced))

##### 🧹 Chore

- bump go deps to latest
([#&#8203;1307](https://togithub.com/open-feature/flagd/issues/1307))
([004ad08](004ad083dc))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 15:35:44 -04:00
renovate[bot] 8bd549e860
fix(deps): update module github.com/rs/cors to v1.11.1 (#1392)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/rs/cors](https://togithub.com/rs/cors) | `v1.11.0` ->
`v1.11.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2frs%2fcors/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2frs%2fcors/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2frs%2fcors/v1.11.0/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2frs%2fcors/v1.11.0/v1.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rs/cors (github.com/rs/cors)</summary>

### [`v1.11.1`](https://togithub.com/rs/cors/compare/v1.11.0...v1.11.1)

[Compare Source](https://togithub.com/rs/cors/compare/v1.11.0...v1.11.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 15:35:10 -04:00
renovate[bot] c96e9d764a
fix(deps): update module google.golang.org/grpc to v1.66.0 (#1393)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.65.0` -> `v1.66.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.66.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.66.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.65.0/v1.66.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.65.0/v1.66.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.66.0`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.66.0):
Release 1.66.0

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.65.0...v1.66.0)

### New Features

- metadata: stabilize `ValueFromIncomingContext`
([#&#8203;7368](https://redirect.github.com/grpc/grpc-go/issues/7368))
- Special Thanks:
[@&#8203;KarthikReddyPuli](https://redirect.github.com/KarthikReddyPuli)
- client: stabilize the `WaitForStateChange` and `GetState` methods,
which were previously experimental.
([#&#8203;7425](https://redirect.github.com/grpc/grpc-go/issues/7425))
- xds: Implement ADS flow control mechanism
([#&#8203;7458](https://redirect.github.com/grpc/grpc-go/issues/7458))
- See
[https://github.com/grpc/grpc/issues/34099](https://redirect.github.com/grpc/grpc/issues/34099)
for context.
- balancer/rls: Add metrics for data cache and picker internals
([#&#8203;7484](https://redirect.github.com/grpc/grpc-go/issues/7484),
[#&#8203;7495](https://redirect.github.com/grpc/grpc-go/issues/7495))
- xds: LRS load reports now include the `total_issued_requests` field.
([#&#8203;7544](https://redirect.github.com/grpc/grpc-go/issues/7544))

### Bug Fixes

- grpc: Clients now return status code INTERNAL instead of UNIMPLEMENTED
when the server uses an unsupported compressor. This is consistent with
the [gRPC compression
spec](https://redirect.github.com/grpc/grpc/blob/master/doc/compression.md#compression-method-asymmetry-between-peers).
([#&#8203;7461](https://redirect.github.com/grpc/grpc-go/issues/7461))
- Special Thanks:
[@&#8203;Gayathri625](https://redirect.github.com/Gayathri625)
- transport: Fix a bug which could result in writes busy looping when
the underlying `conn.Write` returns errors
([#&#8203;7394](https://redirect.github.com/grpc/grpc-go/issues/7394))
- Special Thanks: [@&#8203;veshij](https://redirect.github.com/veshij)
- client: fix race that could lead to orphaned connections and
associated resources.
([#&#8203;7390](https://redirect.github.com/grpc/grpc-go/issues/7390))
- xds: use locality from the connected address for load reporting with
pick_first
([#&#8203;7378](https://redirect.github.com/grpc/grpc-go/issues/7378))
- without this fix, if a priority contains multiple localities with
pick_first, load was reported for the wrong locality
- client: prevent hanging during ClientConn.Close() when the network is
unreachable
([#&#8203;7540](https://redirect.github.com/grpc/grpc-go/issues/7540))

### Performance Improvements

- transport: double buffering is avoided when using an http connect
proxy and the target server waits for client to send the first message.
([#&#8203;7424](https://redirect.github.com/grpc/grpc-go/issues/7424))
- codec: Implement a new `Codec` which uses buffer recycling for encoded
message
([#&#8203;7356](https://redirect.github.com/grpc/grpc-go/issues/7356))
- introduce a `mem` package to facilitate buffer reuse
([#&#8203;7432](https://redirect.github.com/grpc/grpc-go/issues/7432))
- Special Thanks:
[@&#8203;PapaCharlie](https://redirect.github.com/PapaCharlie)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-05 15:34:51 -04:00
Todd Baert 92713220ec
chore: troublesshot renovate config
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-09-05 15:13:57 -04:00
Todd Baert 02840033b9
chore: troubleshoot renovate.json
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-09-05 15:08:00 -04:00
Michael Beemer df937e9eb2
docs: update playground libraries (#1394)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-08-30 09:49:35 -04:00
github-actions[bot] b6c18f35ec
chore: release main (#1356)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.2</summary>

##
[0.11.2](https://github.com/open-feature/flagd/compare/flagd/v0.11.1...flagd/v0.11.2)
(2024-08-22)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20240215170432-1e611e2999cc.1
([#1372](https://github.com/open-feature/flagd/issues/1372))
([ae24595](ae2459504f))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.1
([#1355](https://github.com/open-feature/flagd/issues/1355))
([8fcfb14](8fcfb146b0))
* **deps:** update module golang.org/x/net to v0.28.0
([#1380](https://github.com/open-feature/flagd/issues/1380))
([239a432](239a432c18))
* **deps:** update module golang.org/x/sync to v0.8.0
([#1378](https://github.com/open-feature/flagd/issues/1378))
([4804c17](4804c17a67))


### 🧹 Chore

* **deps:** update dependency go to v1.22.6
([#1297](https://github.com/open-feature/flagd/issues/1297))
([50b92c1](50b92c17cf))
* **deps:** update golang docker tag to v1.23
([#1382](https://github.com/open-feature/flagd/issues/1382))
([abb5ca3](abb5ca3e31))
* improve gRPC sync service shutdown behavior
([#1375](https://github.com/open-feature/flagd/issues/1375))
([79d9085](79d9085a50))
</details>

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

##
[0.6.5](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.4...flagd-proxy/v0.6.5)
(2024-08-22)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20240215170432-1e611e2999cc.1
([#1372](https://github.com/open-feature/flagd/issues/1372))
([ae24595](ae2459504f))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.1
([#1355](https://github.com/open-feature/flagd/issues/1355))
([8fcfb14](8fcfb146b0))
* **deps:** update module golang.org/x/net to v0.28.0
([#1380](https://github.com/open-feature/flagd/issues/1380))
([239a432](239a432c18))
* **deps:** update module golang.org/x/sync to v0.8.0
([#1378](https://github.com/open-feature/flagd/issues/1378))
([4804c17](4804c17a67))


### 🧹 Chore

* **deps:** update dependency go to v1.22.6
([#1297](https://github.com/open-feature/flagd/issues/1297))
([50b92c1](50b92c17cf))
* **deps:** update golang docker tag to v1.23
([#1382](https://github.com/open-feature/flagd/issues/1382))
([abb5ca3](abb5ca3e31))


### 📚 Documentation

* **flagd-proxy:** removed invalid grpc prefix from uri config
([4911697](4911697ab1))
</details>

<details><summary>core: 0.10.2</summary>

##
[0.10.2](https://github.com/open-feature/flagd/compare/core/v0.10.1...core/v0.10.2)
(2024-08-22)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.5.1-20240215170432-1e611e2999cc.1
([#1372](https://github.com/open-feature/flagd/issues/1372))
([ae24595](ae2459504f))
* **deps:** update module connectrpc.com/otelconnect to v0.7.1
([#1367](https://github.com/open-feature/flagd/issues/1367))
([184915b](184915b317))
* **deps:** update module
github.com/open-feature/open-feature-operator/apis to v0.2.44
([#1368](https://github.com/open-feature/flagd/issues/1368))
([0c68726](0c68726bed))
* **deps:** update module golang.org/x/crypto to v0.26.0
([#1379](https://github.com/open-feature/flagd/issues/1379))
([05f6658](05f6658e3d))
* **deps:** update module golang.org/x/mod to v0.20.0
([#1377](https://github.com/open-feature/flagd/issues/1377))
([797d7a4](797d7a4bba))
* **deps:** update module golang.org/x/sync to v0.8.0
([#1378](https://github.com/open-feature/flagd/issues/1378))
([4804c17](4804c17a67))


###  New Features

* add 'watcher' interface to file sync
([#1365](https://github.com/open-feature/flagd/issues/1365))
([61fff43](61fff43e28))
* added new grpc sync config option to allow setting max receive message
size. ([#1358](https://github.com/open-feature/flagd/issues/1358))
([bed077b](bed077bac9))
* Support blob type sources and GCS as an example of such source.
([#1366](https://github.com/open-feature/flagd/issues/1366))
([21f2c9a](21f2c9a5d6))


### 🧹 Chore

* **deps:** update dependency go to v1.22.6
([#1297](https://github.com/open-feature/flagd/issues/1297))
([50b92c1](50b92c17cf))
</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>
2024-08-22 14:50:15 -04:00
Dave Josephsen 61fff43e28
feat: add 'watcher' interface to file sync (#1365)
Implement fsnotify and `os.Stat` based watchers

fixes: #1344

<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
Intent of this PR is to begin a conversation about fixing #1344. The
approach taken is to replace the current use of `fsontify.Watcher` with
a local `Watcher` interface type that describes the `fsnotify.Watcher`
interface.

My original take was to use fsnotify.Watcher directly as an
implementation of local `Watcher`, but fsnotify's Watcher directly
exposes its Error and Event channels, making it impossible to describe
with an interface, so I had to create a small wrapper for
`fsnotify.Watcher` to satisfy the new Watcher interface (this is
fsnotify_watcher.go). From there, we implement the `Watcher` interface
again, this time using `os.Stat` and `fs.FileInfo` (this is
fileinfo_watcher.go).

Then we change the filepath sync code to use an interface to Watcher,
rather than fsnotify.Watcher directly. The new fileinfo watcher plugs
right in, and nothing really needs to change in the sync.

* I have not wired up configs, so the fileinfo watcher has a hard-coded
1-second polling interval, and there is no current means of selecting
between them.
* I've added a couple tests, to demonstrate how unit tests would work in
general (we use a configurable os-stat func in the fileinfo watcher,
which can be mocked for tests)
* I don't have a way of testing this on Windows. I'm vaguely aware
there's an upstream issue in package `fs` that may require some
work-around boilerplate to make this work on windows at the moment.

If yall are favorable to this approach, I'll finish wiring up configs,
and flesh out the tests. I didn't want to go much further without some
buy-in or feedback.

### Related Issues

Fixes #1344 

### Notes
See bullet-points above

### How to test
go test -v ./...

---------

Signed-off-by: Dave Josephsen <dave.josephsen@gmail.com>
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-08-22 14:02:31 -04:00
renovate[bot] abb5ca3e31
chore(deps): update golang docker tag to v1.23 (#1382)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang | stage | minor | `1.22-alpine` -> `1.23-alpine` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4yNi4xIiwidXBkYXRlZEluVmVyIjoiMzguMjYuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 18:15:00 +00:00
Michael Beemer 871c7497e9
docs: add note about metric name transformation (#1374)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-08-19 12:38:02 -04:00
renovate[bot] 239a432c18
fix(deps): update module golang.org/x/net to v0.28.0 (#1380)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.27.0` -> `v0.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.27.0/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.27.0/v0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xOC4xNyIsInVwZGF0ZWRJblZlciI6IjM4LjE4LjE3IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 04:02:37 +00:00
renovate[bot] 50b92c17cf
chore(deps): update dependency go to v1.22.6 (#1297)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go](https://go.dev/) ([source](https://togithub.com/golang/go)) |
toolchain | minor | `1.21.4` -> `1.22.6` |

---

### Release Notes

<details>
<summary>golang/go (go)</summary>

###
[`v1.22.6`](https://togithub.com/golang/go/compare/go1.22.5...go1.22.6)

###
[`v1.22.5`](https://togithub.com/golang/go/compare/go1.22.4...go1.22.5)

###
[`v1.22.4`](https://togithub.com/golang/go/compare/go1.22.3...go1.22.4)

###
[`v1.22.3`](https://togithub.com/golang/go/compare/go1.22.2...go1.22.3)

###
[`v1.22.2`](https://togithub.com/golang/go/compare/go1.22.1...go1.22.2)

###
[`v1.22.1`](https://togithub.com/golang/go/compare/go1.22.0...go1.22.1)

###
[`v1.22.0`](https://togithub.com/golang/go/compare/go1.21.10...go1.22.0)

###
[`v1.21.13`](https://togithub.com/golang/go/compare/go1.21.12...go1.21.13)

###
[`v1.21.12`](https://togithub.com/golang/go/compare/go1.21.11...go1.21.12)

###
[`v1.21.11`](https://togithub.com/golang/go/compare/go1.21.10...go1.21.11)

###
[`v1.21.10`](https://togithub.com/golang/go/compare/go1.21.9...go1.21.10)

###
[`v1.21.9`](https://togithub.com/golang/go/compare/go1.21.8...go1.21.9)

###
[`v1.21.8`](https://togithub.com/golang/go/compare/go1.21.7...go1.21.8)

###
[`v1.21.7`](https://togithub.com/golang/go/compare/go1.21.6...go1.21.7)

###
[`v1.21.6`](https://togithub.com/golang/go/compare/go1.21.5...go1.21.6)

###
[`v1.21.5`](https://togithub.com/golang/go/compare/go1.21.4...go1.21.5)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM4LjE4LjE3IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-07 00:00:54 +00:00
renovate[bot] 05f6658e3d
fix(deps): update module golang.org/x/crypto to v0.26.0 (#1379)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.25.0` -> `v0.26.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.25.0/v0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.25.0/v0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC4xOC4xNyIsInVwZGF0ZWRJblZlciI6IjM4LjE4LjE3IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-06 22:09:44 +00:00
Kavindu Dodanduwa 79d9085a50
chore: improve gRPC sync service shutdown behavior (#1375)
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-08-05 16:18:25 -04:00
renovate[bot] 4804c17a67
fix(deps): update module golang.org/x/sync to v0.8.0 (#1378)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/sync | `v0.7.0` -> `v0.8.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fsync/v0.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fsync/v0.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fsync/v0.7.0/v0.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fsync/v0.7.0/v0.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-04 23:05:47 +00:00
renovate[bot] 797d7a4bba
fix(deps): update module golang.org/x/mod to v0.20.0 (#1377)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/mod | `v0.19.0` -> `v0.20.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.19.0/v0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.19.0/v0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-04 19:05:05 +00:00
Michael Beemer 4911697ab1
docs(flagd-proxy): removed invalid grpc prefix from uri config
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-08-02 10:58:00 -04:00
renovate[bot] ae2459504f
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20240215170432-1e611e2999cc.1 (#1372)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.4.0-20240215170432-1e611e2999cc.2` ->
`v1.5.1-20240215170432-1e611e2999cc.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.5.1-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.4.0-20240215170432-1e611e2999cc.2/v1.5.1-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.4.0-20240215170432-1e611e2999cc.2/v1.5.1-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-01 00:10:19 +00:00
Alan Kutniewski 21f2c9a5d6
feat: Support blob type sources and GCS as an example of such source. (#1366)
Signed-off-by: Alan Kutniewski <kutniewski@google.com>
2024-07-30 12:31:44 -04:00
Kavindu Dodanduwa 1fe0eac1dc
chore: update otel example configurations (#1370)
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-07-30 11:28:15 -04:00
renovate[bot] 0c68726bed
fix(deps): update module github.com/open-feature/open-feature-operator/apis to v0.2.44 (#1368)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/open-feature-operator/apis](https://togithub.com/open-feature/open-feature-operator)
| `v0.2.43` -> `v0.2.44` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.44?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.44?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.43/v0.2.44?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.43/v0.2.44?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzguMCIsInVwZGF0ZWRJblZlciI6IjM3LjQzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-23 22:42:40 +00:00
renovate[bot] 184915b317
fix(deps): update module connectrpc.com/otelconnect to v0.7.1 (#1367)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[connectrpc.com/otelconnect](https://togithub.com/connectrpc/otelconnect-go)
| `v0.7.0` -> `v0.7.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/connectrpc.com%2fotelconnect/v0.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/connectrpc.com%2fotelconnect/v0.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/connectrpc.com%2fotelconnect/v0.7.0/v0.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/connectrpc.com%2fotelconnect/v0.7.0/v0.7.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>connectrpc/otelconnect-go
(connectrpc.com/otelconnect)</summary>

###
[`v0.7.1`](https://togithub.com/connectrpc/otelconnect-go/releases/tag/v0.7.1)

[Compare
Source](https://togithub.com/connectrpc/otelconnect-go/compare/v0.7.0...v0.7.1)

This is a bug-fix release that addresses a race condition when closing a
stream.

#### What's Changed

##### Bugfixes

- Fix data race in streaming client close by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;173](https://togithub.com/connectrpc/otelconnect-go/issues/173)

#### New Contributors

- [@&#8203;gvacaliuc](https://togithub.com/gvacaliuc) made their first
contribution in
[#&#8203;163](https://togithub.com/connectrpc/otelconnect-go/issues/163)
- [@&#8203;ytnsym](https://togithub.com/ytnsym) made their first
contribution in
[#&#8203;176](https://togithub.com/connectrpc/otelconnect-go/issues/176)
- [@&#8203;drice-buf](https://togithub.com/drice-buf) made their first
contribution in
[#&#8203;178](https://togithub.com/connectrpc/otelconnect-go/issues/178)

**Full Changelog**:
https://github.com/connectrpc/otelconnect-go/compare/v0.7.0...v0.7.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View the
[repository job
log](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MzguMCIsInVwZGF0ZWRJblZlciI6IjM3LjQzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-22 19:24:07 +00:00
Pradeep Mishra bed077bac9
feat: added new grpc sync config option to allow setting max receive message size. (#1358)
## This PR
Added a new config option `maxMsgSize` which will
allow users to override default message size 4Mb.

- allow override default max message size 4Mb

### Related Issues

Fixes #1357 

### How to test
To test this feature you need a flag source with large number of flags >
4Mb, e.g. below we are running with max size of 5Mb+
 
```
./flagd start --port 8013 --sync-port 8017 --sources='[{"uri": "localhost:8015", "provider": "grpc", "tls": false, "providerID": "flagd-sidecar", "selector": "all-flags", "maxMsgSize": 5728474}]'

		 ______   __       ________   _______    ______
		/_____/\ /_/\     /_______/\ /______/\  /_____/\
		\::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \
		 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\ \ \ \
		  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \
		   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| |
		    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/

2024-07-11T11:31:57.024+0200	info	cmd/start.go:107	flagd version: dev (da01e08), built at: 2024-07-11T11:14:44Z	{"component": "start"}
2024-07-11T11:31:57.026+0200	info	flag-sync/sync_service.go:54	starting flag sync service on port 8017	{"component": "FlagSyncService"}
2024-07-11T11:31:57.027+0200	info	grpc/grpc_sync.go:70	setting max receive message size 5728474 bytes default 4MB	{"component": "sync", "sync": "grpc"}

```

---------

Signed-off-by: Pradeep Mishra <pradeepbbl@gmail.com>
Signed-off-by: pradeepbbl <pradeepbbl@gmail.com>
Signed-off-by: Pradeep Mishra <pradeepbbl@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-07-12 08:16:40 -07:00
Todd Baert 4c8f2b788f
chore: update playground (#1360)
Update plaground (includes new fractional features).

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-07-12 11:02:46 -04:00
Todd Baert 8f1dbba212
chore: update public schema (#1359)
See title.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-07-11 09:47:09 -04:00
renovate[bot] 8fcfb146b0
fix(deps): update module github.com/open-feature/flagd/core to v0.10.1 (#1355)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.10.0` -> `v0.10.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.0/v0.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.0/v0.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-feature/flagd
(github.com/open-feature/flagd/core)</summary>

###
[`v0.10.1`](https://togithub.com/open-feature/flagd/releases/tag/flagd/v0.10.1):
flagd: v0.10.1

##### 🐛 Bug Fixes

- **deps:** update module github.com/open-feature/flagd/core to v0.9.0
([#&#8203;1281](https://togithub.com/open-feature/flagd/issues/1281))
([3cfb052](3cfb0523cc))

#####  New Features

- move json logic operator registration to resolver
([#&#8203;1291](https://togithub.com/open-feature/flagd/issues/1291))
([b473457](b473457ddf))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjUuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyNS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-09 01:54:06 +00:00
github-actions[bot] 9ac329f920
chore: release main (#1341)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.11.1</summary>

##
[0.11.1](https://github.com/open-feature/flagd/compare/flagd/v0.11.0...flagd/v0.11.1)
(2024-07-08)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.4.0-20240215170432-1e611e2999cc.2
([#1342](https://github.com/open-feature/flagd/issues/1342))
([efdd921](efdd921399))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.0
([#1340](https://github.com/open-feature/flagd/issues/1340))
([1e487b4](1e487b4baf))
* **deps:** update module golang.org/x/net to v0.27.0
([#1353](https://github.com/open-feature/flagd/issues/1353))
([df9834b](df9834bea2))
* **deps:** update module google.golang.org/grpc to v1.65.0
([#1346](https://github.com/open-feature/flagd/issues/1346))
([72a6b87](72a6b876e8))
* **deps:** update opentelemetry-go monorepo
([#1347](https://github.com/open-feature/flagd/issues/1347))
([37fb3cd](37fb3cd81d))
* invalid scoped-sync responses for empty flags
([#1352](https://github.com/open-feature/flagd/issues/1352))
([51371d2](51371d25e2))
</details>

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

##
[0.6.4](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.3...flagd-proxy/v0.6.4)
(2024-07-08)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.4.0-20240215170432-1e611e2999cc.2
([#1342](https://github.com/open-feature/flagd/issues/1342))
([efdd921](efdd921399))
* **deps:** update module github.com/open-feature/flagd/core to v0.10.0
([#1340](https://github.com/open-feature/flagd/issues/1340))
([1e487b4](1e487b4baf))
* **deps:** update module golang.org/x/net to v0.27.0
([#1353](https://github.com/open-feature/flagd/issues/1353))
([df9834b](df9834bea2))
* **deps:** update module google.golang.org/grpc to v1.65.0
([#1346](https://github.com/open-feature/flagd/issues/1346))
([72a6b87](72a6b876e8))
* **deps:** update opentelemetry-go monorepo
([#1347](https://github.com/open-feature/flagd/issues/1347))
([37fb3cd](37fb3cd81d))
</details>

<details><summary>core: 0.10.1</summary>

##
[0.10.1](https://github.com/open-feature/flagd/compare/core/v0.10.0...core/v0.10.1)
(2024-07-08)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.4.0-20240215170432-1e611e2999cc.2
([#1342](https://github.com/open-feature/flagd/issues/1342))
([efdd921](efdd921399))
* **deps:** update module golang.org/x/crypto to v0.25.0
([#1351](https://github.com/open-feature/flagd/issues/1351))
([450cbc8](450cbc84ca))
* **deps:** update module golang.org/x/mod to v0.19.0
([#1349](https://github.com/open-feature/flagd/issues/1349))
([6ee89b4](6ee89b44ca))
* **deps:** update module google.golang.org/grpc to v1.65.0
([#1346](https://github.com/open-feature/flagd/issues/1346))
([72a6b87](72a6b876e8))
* **deps:** update opentelemetry-go monorepo
([#1347](https://github.com/open-feature/flagd/issues/1347))
([37fb3cd](37fb3cd81d))
</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>
2024-07-08 15:33:48 -04:00
Todd Baert 283d509343
chore: update json schema submodule (#1354)
see title.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-07-08 13:59:35 -04:00
renovate[bot] df9834bea2
fix(deps): update module golang.org/x/net to v0.27.0 (#1353)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.26.0` -> `v0.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.26.0/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.26.0/v0.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuOSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-05 21:48:07 +00:00
Todd Baert 51371d25e2
fix: invalid scoped-sync responses for empty flags (#1352)
Fixes an issue where invalid flag payloads were returned on sync
requests with scopes if the flag set was empty.

Below is an example of the bug.

```shell
$ grpcurl -import-path /home/todd/temp -proto sync.proto -plaintext localhost:8015 flagd.sync.v1.FlagSyncService/FetchAllFlags
{
  "flagConfiguration": "{\"flags\":{}}"
}
$ grpcurl -import-path /home/todd/temp -proto sync.proto -plaintext -d '{"selector":"../config/samples/example_flags.flagd.json"}' localhost:8015 flagd.sync.v1.FlagSyncService/FetchAllFlags 
{}
```

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-07-05 14:25:34 -04:00
renovate[bot] 450cbc84ca
fix(deps): update module golang.org/x/crypto to v0.25.0 (#1351)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.24.0` -> `v0.25.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.24.0/v0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.24.0/v0.25.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuOSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-05 16:07:46 +00:00
renovate[bot] 6ee89b44ca
fix(deps): update module golang.org/x/mod to v0.19.0 (#1349)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/mod | `v0.18.0` -> `v0.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.18.0/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.18.0/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuOSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-04 18:30:28 +00:00
renovate[bot] 37fb3cd81d
fix(deps): update opentelemetry-go monorepo (#1347)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.27.0` -> `v1.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.27.0` -> `v1.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.27.0` -> `v1.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.27.0` -> `v1.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| `v0.49.0` -> `v0.50.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.49.0/v0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.49.0/v0.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.27.0` -> `v1.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.27.0` -> `v1.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.27.0` -> `v1.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.27.0` -> `v1.28.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.27.0/v1.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.28.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.28.0):
Releases v1.28.0/v0.50.0/v0.4.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.28.0)

#### Overview

##### Added

- The `IsEmpty` method is added to the `Instrument` type in
`go.opentelemetry.io/otel/sdk/metric`.
This method is used to check if an `Instrument` instance is a
zero-value.
([#&#8203;5431](https://togithub.com/open-telemetry/opentelemetry-go/issues/5431))
- Store and provide the emitted `context.Context` in `ScopeRecords` of
`go.opentelemetry.io/otel/sdk/log/logtest`.
([#&#8203;5468](https://togithub.com/open-telemetry/opentelemetry-go/issues/5468))
-   The `go.opentelemetry.io/otel/semconv/v1.26.0` package.
The package contains semantic conventions from the `v1.26.0` version of
the OpenTelemetry Semantic Conventions.
([#&#8203;5476](https://togithub.com/open-telemetry/opentelemetry-go/issues/5476))
- The `AssertRecordEqual` method to
`go.opentelemetry.io/otel/log/logtest` to allow comparison of two log
records in tests.
([#&#8203;5499](https://togithub.com/open-telemetry/opentelemetry-go/issues/5499))
- The `WithHeaders` option to
`go.opentelemetry.io/otel/exporters/zipkin` to allow configuring custom
http headers while exporting spans.
([#&#8203;5530](https://togithub.com/open-telemetry/opentelemetry-go/issues/5530))

##### Changed

- `Tracer.Start` in `go.opentelemetry.io/otel/trace/noop` no longer
allocates a span for empty span context.
([#&#8203;5457](https://togithub.com/open-telemetry/opentelemetry-go/issues/5457))
- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to
`go.opentelemetry.io/otel/semconv/v1.26.0` in
`go.opentelemetry.io/otel/example/otel-collector`.
([#&#8203;5490](https://togithub.com/open-telemetry/opentelemetry-go/issues/5490))
- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to
`go.opentelemetry.io/otel/semconv/v1.26.0` in
`go.opentelemetry.io/otel/example/zipkin`.
([#&#8203;5490](https://togithub.com/open-telemetry/opentelemetry-go/issues/5490))
- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to
`go.opentelemetry.io/otel/semconv/v1.26.0` in
`go.opentelemetry.io/otel/exporters/zipkin`.
([#&#8203;5490](https://togithub.com/open-telemetry/opentelemetry-go/issues/5490))
- The exporter no longer exports the deprecated "otel.library.name" or
"otel.library.version" attributes.
- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to
`go.opentelemetry.io/otel/semconv/v1.26.0` in
`go.opentelemetry.io/otel/sdk/resource`.
([#&#8203;5490](https://togithub.com/open-telemetry/opentelemetry-go/issues/5490))
- Upgrade `go.opentelemetry.io/otel/semconv/v1.25.0` to
`go.opentelemetry.io/otel/semconv/v1.26.0` in
`go.opentelemetry.io/otel/sdk/trace`.
([#&#8203;5490](https://togithub.com/open-telemetry/opentelemetry-go/issues/5490))
- `SimpleProcessor.OnEmit` in `go.opentelemetry.io/otel/sdk/log` no
longer allocates a slice which makes it possible to have a
zero-allocation log processing using `SimpleProcessor`.
([#&#8203;5493](https://togithub.com/open-telemetry/opentelemetry-go/issues/5493))
- Use non-generic functions in the `Start` method of
`"go.opentelemetry.io/otel/sdk/trace".Trace` to reduce memory
allocation.
([#&#8203;5497](https://togithub.com/open-telemetry/opentelemetry-go/issues/5497))
- `service.instance.id` is populated for a `Resource` created with
`"go.opentelemetry.io/otel/sdk/resource".Default` with a default value
when `OTEL_GO_X_RESOURCE` is set.
([#&#8203;5520](https://togithub.com/open-telemetry/opentelemetry-go/issues/5520))
- Improve performance of metric instruments in
`go.opentelemetry.io/otel/sdk/metric` by removing unnecessary calls to
`time.Now`.
([#&#8203;5545](https://togithub.com/open-telemetry/opentelemetry-go/issues/5545))

##### Fixed

- Log a warning to the OpenTelemetry internal logger when a `Record` in
`go.opentelemetry.io/otel/sdk/log` drops an attribute due to a limit
being reached.
([#&#8203;5376](https://togithub.com/open-telemetry/opentelemetry-go/issues/5376))
- Identify the `Tracer` returned from the global `TracerProvider` in
`go.opentelemetry.io/otel/global` with its schema URL.
([#&#8203;5426](https://togithub.com/open-telemetry/opentelemetry-go/issues/5426))
- Identify the `Meter` returned from the global `MeterProvider` in
`go.opentelemetry.io/otel/global` with its schema URL.
([#&#8203;5426](https://togithub.com/open-telemetry/opentelemetry-go/issues/5426))
- Log a warning to the OpenTelemetry internal logger when a `Span` in
`go.opentelemetry.io/otel/sdk/trace` drops an attribute, event, or link
due to a limit being reached.
([#&#8203;5434](https://togithub.com/open-telemetry/opentelemetry-go/issues/5434))
- Document instrument name requirements in
`go.opentelemetry.io/otel/metric`.
([#&#8203;5435](https://togithub.com/open-telemetry/opentelemetry-go/issues/5435))
- Prevent random number generation data-race for experimental rand
exemplars in `go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;5456](https://togithub.com/open-telemetry/opentelemetry-go/issues/5456))
- Fix counting number of dropped attributes of `Record` in
`go.opentelemetry.io/otel/sdk/log`.
([#&#8203;5464](https://togithub.com/open-telemetry/opentelemetry-go/issues/5464))
- Fix panic in baggage creation when a member contains `0x80` char in
key or value.
([#&#8203;5494](https://togithub.com/open-telemetry/opentelemetry-go/issues/5494))
- Correct comments for the priority of the `WithEndpoint` and
`WithEndpointURL` options and their corresponding environment variables
in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`.
([#&#8203;5508](https://togithub.com/open-telemetry/opentelemetry-go/issues/5508))
- Retry trace and span ID generation if it generated an invalid one in
`go.opentelemetry.io/otel/sdk/trace`.
([#&#8203;5514](https://togithub.com/open-telemetry/opentelemetry-go/issues/5514))
- Fix stale timestamps reported by the last-value aggregation.
([#&#8203;5517](https://togithub.com/open-telemetry/opentelemetry-go/issues/5517))
- Indicate the `Exporter` in
`go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp` must be
created by the `New` method.
([#&#8203;5521](https://togithub.com/open-telemetry/opentelemetry-go/issues/5521))
- Improved performance in all `{Bool,Int64,Float64,String}SliceValue`
functions of `go.opentelemetry.io/attributes` by reducing the number of
allocations.
([#&#8203;5549](https://togithub.com/open-telemetry/opentelemetry-go/issues/5549))

#### What's Changed

- Recheck log message in TestBatchProcessor by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5386](https://togithub.com/open-telemetry/opentelemetry-go/pull/5386)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`dc85e6b`](https://togithub.com/open-telemetry/opentelemetry-go/commit/dc85e6b)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5391](https://togithub.com/open-telemetry/opentelemetry-go/pull/5391)
- fix(deps): update module go.opentelemetry.io/contrib/bridges/otelslog
to v0.2.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5395](https://togithub.com/open-telemetry/opentelemetry-go/pull/5395)
- fix(deps): update module github.com/go-logr/logr to v1.4.2 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5393](https://togithub.com/open-telemetry/opentelemetry-go/pull/5393)
- fix(deps): update module
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.52.0
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5396](https://togithub.com/open-telemetry/opentelemetry-go/pull/5396)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`d264139`](https://togithub.com/open-telemetry/opentelemetry-go/commit/d264139)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5397](https://togithub.com/open-telemetry/opentelemetry-go/pull/5397)
- fix(deps): update module go.opentelemetry.io/otel/sdk/log to v0.3.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5398](https://togithub.com/open-telemetry/opentelemetry-go/pull/5398)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.101.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5400](https://togithub.com/open-telemetry/opentelemetry-go/pull/5400)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`d264139`](https://togithub.com/open-telemetry/opentelemetry-go/commit/d264139)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5399](https://togithub.com/open-telemetry/opentelemetry-go/pull/5399)
- \[chore] example/otel-collector: Fix README title by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5404](https://togithub.com/open-telemetry/opentelemetry-go/pull/5404)
- Pool `otlploghttp` transform maps by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5378](https://togithub.com/open-telemetry/opentelemetry-go/pull/5378)
- fix(deps): update module golang.org/x/vuln to v1.1.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5405](https://togithub.com/open-telemetry/opentelemetry-go/pull/5405)
- Fix test name in otlploghttp by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5411](https://togithub.com/open-telemetry/opentelemetry-go/pull/5411)
- sdk/log: Fix BenchmarkLoggerNewRecord to not drop attributes by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5407](https://togithub.com/open-telemetry/opentelemetry-go/pull/5407)
- chore(deps): update dependency codespell to v2.3.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5409](https://togithub.com/open-telemetry/opentelemetry-go/pull/5409)
- fix(deps): update module github.com/golangci/golangci-lint to v1.59.0
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5419](https://togithub.com/open-telemetry/opentelemetry-go/pull/5419)
- fix(deps): update golang.org/x/tools digest to
[`7045d2e`](https://togithub.com/open-telemetry/opentelemetry-go/commit/7045d2e)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5406](https://togithub.com/open-telemetry/opentelemetry-go/pull/5406)
- fix(deps): update golang.org/x/exp digest to
[`4c93da0`](https://togithub.com/open-telemetry/opentelemetry-go/commit/4c93da0)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5415](https://togithub.com/open-telemetry/opentelemetry-go/pull/5415)
- Log a warning when log Record attribute is dropped by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5376](https://togithub.com/open-telemetry/opentelemetry-go/pull/5376)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`a332354`](https://togithub.com/open-telemetry/opentelemetry-go/commit/a332354)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5424](https://togithub.com/open-telemetry/opentelemetry-go/pull/5424)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`a332354`](https://togithub.com/open-telemetry/opentelemetry-go/commit/a332354)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5423](https://togithub.com/open-telemetry/opentelemetry-go/pull/5423)
- fix(deps): update golang.org/x/tools digest to
[`f10a0f1`](https://togithub.com/open-telemetry/opentelemetry-go/commit/f10a0f1)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5430](https://togithub.com/open-telemetry/opentelemetry-go/pull/5430)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`5315273`](https://togithub.com/open-telemetry/opentelemetry-go/commit/5315273)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5428](https://togithub.com/open-telemetry/opentelemetry-go/pull/5428)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`5315273`](https://togithub.com/open-telemetry/opentelemetry-go/commit/5315273)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5427](https://togithub.com/open-telemetry/opentelemetry-go/pull/5427)
- fix(deps): update golang.org/x/tools digest to
[`e229045`](https://togithub.com/open-telemetry/opentelemetry-go/commit/e229045)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5432](https://togithub.com/open-telemetry/opentelemetry-go/pull/5432)
- fix(deps): update golang.org/x/exp digest to
[`23cca88`](https://togithub.com/open-telemetry/opentelemetry-go/commit/23cca88)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5429](https://togithub.com/open-telemetry/opentelemetry-go/pull/5429)
- sdk/log: Fix TestBatchProcessor/DroppedLogs flaky test by
[@&#8203;amanakin](https://togithub.com/amanakin) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5421](https://togithub.com/open-telemetry/opentelemetry-go/pull/5421)
- Identify global `Tracer`s and `Meter`s with their schema URLs by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5426](https://togithub.com/open-telemetry/opentelemetry-go/pull/5426)
- sdk/log: Fix TestBatchProcessor/ForceFlush/ErrorPartialFlush flaky
test by [@&#8203;amanakin](https://togithub.com/amanakin) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5416](https://togithub.com/open-telemetry/opentelemetry-go/pull/5416)
- Export the Instrument IsEmpty method by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5431](https://togithub.com/open-telemetry/opentelemetry-go/pull/5431)
- fix(deps): update golang.org/x/tools digest to
[`01018ba`](https://togithub.com/open-telemetry/opentelemetry-go/commit/01018ba)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5438](https://togithub.com/open-telemetry/opentelemetry-go/pull/5438)
- \[chore] ensure codecov uses token by
[@&#8203;codeboten](https://togithub.com/codeboten) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5440](https://togithub.com/open-telemetry/opentelemetry-go/pull/5440)
- fix(deps): update golang.org/x/tools digest to
[`8d54ca1`](https://togithub.com/open-telemetry/opentelemetry-go/commit/8d54ca1)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5441](https://togithub.com/open-telemetry/opentelemetry-go/pull/5441)
- fix(deps): update golang.org/x/tools digest to
[`2e977dd`](https://togithub.com/open-telemetry/opentelemetry-go/commit/2e977dd)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5442](https://togithub.com/open-telemetry/opentelemetry-go/pull/5442)
- Remove zeroInstrumentKind by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5433](https://togithub.com/open-telemetry/opentelemetry-go/pull/5433)
- Log warning when a trace attribute/event/link is discarded due to
limits by [@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5434](https://togithub.com/open-telemetry/opentelemetry-go/pull/5434)
- Remove opentelemetry-proto in .gitsubmodule by
[@&#8203;YHM404](https://togithub.com/YHM404) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5267](https://togithub.com/open-telemetry/opentelemetry-go/pull/5267)
- Document instrument name requirements by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5435](https://togithub.com/open-telemetry/opentelemetry-go/pull/5435)
- fix(deps): update golang.org/x/exp digest to
[`404ba88`](https://togithub.com/open-telemetry/opentelemetry-go/commit/404ba88)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5445](https://togithub.com/open-telemetry/opentelemetry-go/pull/5445)
- Move `MonotonicEndTime` to only use by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5443](https://togithub.com/open-telemetry/opentelemetry-go/pull/5443)
- fix(deps): update golang.org/x/tools digest to
[`624dbd0`](https://togithub.com/open-telemetry/opentelemetry-go/commit/624dbd0)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5446](https://togithub.com/open-telemetry/opentelemetry-go/pull/5446)
- fix(deps): update golang.org/x/exp digest to
[`fd00a4e`](https://togithub.com/open-telemetry/opentelemetry-go/commit/fd00a4e)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5450](https://togithub.com/open-telemetry/opentelemetry-go/pull/5450)
- fix(deps): update golang.org/x/tools digest to
[`2f8e378`](https://togithub.com/open-telemetry/opentelemetry-go/commit/2f8e378)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5451](https://togithub.com/open-telemetry/opentelemetry-go/pull/5451)
- fix(deps): update golang.org/x/tools digest to
[`cc29c91`](https://togithub.com/open-telemetry/opentelemetry-go/commit/cc29c91)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5452](https://togithub.com/open-telemetry/opentelemetry-go/pull/5452)
- chore(deps): update module github.com/prometheus/procfs to v0.15.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5453](https://togithub.com/open-telemetry/opentelemetry-go/pull/5453)
- sdk/log: Add processor benchmarks by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5448](https://togithub.com/open-telemetry/opentelemetry-go/pull/5448)
- fix(deps): update module github.com/itchyny/gojq to v0.12.16 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5460](https://togithub.com/open-telemetry/opentelemetry-go/pull/5460)
- Guard rng in exemplar rand computation by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5456](https://togithub.com/open-telemetry/opentelemetry-go/pull/5456)
- chore(deps): update module github.com/prometheus/common to v0.54.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5472](https://togithub.com/open-telemetry/opentelemetry-go/pull/5472)
- add `log` package to depguard linter by
[@&#8203;amanakin](https://togithub.com/amanakin) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5463](https://togithub.com/open-telemetry/opentelemetry-go/pull/5463)
- fix(deps): update golang.org/x/tools digest to
[`58cc8a4`](https://togithub.com/open-telemetry/opentelemetry-go/commit/58cc8a4)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5473](https://togithub.com/open-telemetry/opentelemetry-go/pull/5473)
- fix(deps): update golang.org/x/tools digest to
[`4478db0`](https://togithub.com/open-telemetry/opentelemetry-go/commit/4478db0)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5474](https://togithub.com/open-telemetry/opentelemetry-go/pull/5474)
- sdk/log: Fix counting number of dropped attributes of log `Record` by
[@&#8203;amanakin](https://togithub.com/amanakin) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5464](https://togithub.com/open-telemetry/opentelemetry-go/pull/5464)
- fix(deps): update golang.org/x/tools digest to
[`2088083`](https://togithub.com/open-telemetry/opentelemetry-go/commit/2088083)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5477](https://togithub.com/open-telemetry/opentelemetry-go/pull/5477)
- trace: Span in noop.Start is no longer allocated by
[@&#8203;tttoad](https://togithub.com/tttoad) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5457](https://togithub.com/open-telemetry/opentelemetry-go/pull/5457)
- chore(deps): update module golang.org/x/sys to v0.21.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5481](https://togithub.com/open-telemetry/opentelemetry-go/pull/5481)
- fix(deps): update module golang.org/x/tools to v0.22.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5485](https://togithub.com/open-telemetry/opentelemetry-go/pull/5485)
- Bump min Go version used in CI by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5489](https://togithub.com/open-telemetry/opentelemetry-go/pull/5489)
- chore(deps): update module golang.org/x/text to v0.16.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5482](https://togithub.com/open-telemetry/opentelemetry-go/pull/5482)
- Add `semconv/v1.26.0`, removes deprecated semconvs by
[@&#8203;MadVikingGod](https://togithub.com/MadVikingGod) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5476](https://togithub.com/open-telemetry/opentelemetry-go/pull/5476)
- Add the sdk/internal/x package by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5444](https://togithub.com/open-telemetry/opentelemetry-go/pull/5444)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.102.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5479](https://togithub.com/open-telemetry/opentelemetry-go/pull/5479)
- chore(deps): update module golang.org/x/net to v0.26.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5484](https://togithub.com/open-telemetry/opentelemetry-go/pull/5484)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`ef581f9`](https://togithub.com/open-telemetry/opentelemetry-go/commit/ef581f9)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5486](https://togithub.com/open-telemetry/opentelemetry-go/pull/5486)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`ef581f9`](https://togithub.com/open-telemetry/opentelemetry-go/commit/ef581f9)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5487](https://togithub.com/open-telemetry/opentelemetry-go/pull/5487)
- fix(deps): update golang.org/x/exp digest to
[`fc45aab`](https://togithub.com/open-telemetry/opentelemetry-go/commit/fc45aab)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5488](https://togithub.com/open-telemetry/opentelemetry-go/pull/5488)
- log/logtest: provide record with their context by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5468](https://togithub.com/open-telemetry/opentelemetry-go/pull/5468)
- Upgrade semconv use to v1.26.0 by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5490](https://togithub.com/open-telemetry/opentelemetry-go/pull/5490)
- sdk/log: Remove slice allocation from SimpleProcessor.OnEmit by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5493](https://togithub.com/open-telemetry/opentelemetry-go/pull/5493)
- fix(deps): update module golang.org/x/vuln to v1.1.2 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5496](https://togithub.com/open-telemetry/opentelemetry-go/pull/5496)
- fix(deps): update module github.com/golangci/golangci-lint to v1.59.1
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5498](https://togithub.com/open-telemetry/opentelemetry-go/pull/5498)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`a8a6208`](https://togithub.com/open-telemetry/opentelemetry-go/commit/a8a6208)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5501](https://togithub.com/open-telemetry/opentelemetry-go/pull/5501)
- Introduce logtest.AssertRecordEqual by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5499](https://togithub.com/open-telemetry/opentelemetry-go/pull/5499)
- Add implementation of otlploggrpc configuration by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5383](https://togithub.com/open-telemetry/opentelemetry-go/pull/5383)
- fix(deps): update golang.org/x/exp digest to
[`7f521ea`](https://togithub.com/open-telemetry/opentelemetry-go/commit/7f521ea)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5512](https://togithub.com/open-telemetry/opentelemetry-go/pull/5512)
- Move evantorrie to emeritus status by
[@&#8203;evantorrie](https://togithub.com/evantorrie) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5507](https://togithub.com/open-telemetry/opentelemetry-go/pull/5507)
- Add missing word in WithView() doc string by
[@&#8203;juliusv](https://togithub.com/juliusv) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5506](https://togithub.com/open-telemetry/opentelemetry-go/pull/5506)
- chore(deps): update codecov/codecov-action action to v4.5.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5509](https://togithub.com/open-telemetry/opentelemetry-go/pull/5509)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.102.1 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5491](https://togithub.com/open-telemetry/opentelemetry-go/pull/5491)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`a8a6208`](https://togithub.com/open-telemetry/opentelemetry-go/commit/a8a6208)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5502](https://togithub.com/open-telemetry/opentelemetry-go/pull/5502)
- fix(deps): update module google.golang.org/protobuf to v1.34.2 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5503](https://togithub.com/open-telemetry/opentelemetry-go/pull/5503)
- trace: Use non-generic to replace newEvictedQueue in trace.start to
reduce memory usage. by [@&#8203;tttoad](https://togithub.com/tttoad) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5497](https://togithub.com/open-telemetry/opentelemetry-go/pull/5497)
- chore(deps): update jaegertracing/all-in-one docker tag to v1.58 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5504](https://togithub.com/open-telemetry/opentelemetry-go/pull/5504)
- fix(deps): update module go.opentelemetry.io/proto/otlp to v1.3.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5505](https://togithub.com/open-telemetry/opentelemetry-go/pull/5505)
- fix(baggage): validate chars panic with 0x80 by
[@&#8203;fabiobozzo](https://togithub.com/fabiobozzo) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5494](https://togithub.com/open-telemetry/opentelemetry-go/pull/5494)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`68d350f`](https://togithub.com/open-telemetry/opentelemetry-go/commit/68d350f)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5516](https://togithub.com/open-telemetry/opentelemetry-go/pull/5516)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`68d350f`](https://togithub.com/open-telemetry/opentelemetry-go/commit/68d350f)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5515](https://togithub.com/open-telemetry/opentelemetry-go/pull/5515)
- Correct the comment for the priority of options and environments on
otlptracegrpc by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5508](https://togithub.com/open-telemetry/opentelemetry-go/pull/5508)
- Fix IDGenerator may generate zero TraceId / SpanId by
[@&#8203;Charlie-lizhihan](https://togithub.com/Charlie-lizhihan) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5514](https://togithub.com/open-telemetry/opentelemetry-go/pull/5514)
- Fix timestamp handling for the lastvalue aggregation by
[@&#8203;dashpole](https://togithub.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5517](https://togithub.com/open-telemetry/opentelemetry-go/pull/5517)
- Add tenv linter by [@&#8203;dmathieu](https://togithub.com/dmathieu)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/5524](https://togithub.com/open-telemetry/opentelemetry-go/pull/5524)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.103.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5526](https://togithub.com/open-telemetry/opentelemetry-go/pull/5526)
- chore(deps): update prom/prometheus docker tag to v2.53.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5525](https://togithub.com/open-telemetry/opentelemetry-go/pull/5525)
- Do not fail CI on codecov create report by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5532](https://togithub.com/open-telemetry/opentelemetry-go/pull/5532)
- Add unconvert linter by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5529](https://togithub.com/open-telemetry/opentelemetry-go/pull/5529)
- Add unparam linter by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5531](https://togithub.com/open-telemetry/opentelemetry-go/pull/5531)
- Add example for synchronous gauge by
[@&#8203;bagmeg](https://togithub.com/bagmeg) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5492](https://togithub.com/open-telemetry/opentelemetry-go/pull/5492)
- Add `newClient` method for otlploggrpc gRPC client by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5523](https://togithub.com/open-telemetry/opentelemetry-go/pull/5523)
- Verify versions.yaml is up to date in CI by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5533](https://togithub.com/open-telemetry/opentelemetry-go/pull/5533)
- Populate `service.instance.id` with a default value when
`OTEL_GO_X_RESOURCE` is set by
[@&#8203;pyohannes](https://togithub.com/pyohannes) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5520](https://togithub.com/open-telemetry/opentelemetry-go/pull/5520)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`dc46fd2`](https://togithub.com/open-telemetry/opentelemetry-go/commit/dc46fd2)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5538](https://togithub.com/open-telemetry/opentelemetry-go/pull/5538)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`dc46fd2`](https://togithub.com/open-telemetry/opentelemetry-go/commit/dc46fd2)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5539](https://togithub.com/open-telemetry/opentelemetry-go/pull/5539)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.103.1 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5540](https://togithub.com/open-telemetry/opentelemetry-go/pull/5540)
- Decouple codecov upload from coverage testing by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5534](https://togithub.com/open-telemetry/opentelemetry-go/pull/5534)
- Add errorlint linter by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5535](https://togithub.com/open-telemetry/opentelemetry-go/pull/5535)
- Add WithHeaders option for Zipkin exporter by
[@&#8203;srijan-27](https://togithub.com/srijan-27) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5530](https://togithub.com/open-telemetry/opentelemetry-go/pull/5530)
- chore(deps): update module github.com/prometheus/common to v0.55.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5552](https://togithub.com/open-telemetry/opentelemetry-go/pull/5552)
- Indicate the otlploghttp exporter must be created by the New method by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5521](https://togithub.com/open-telemetry/opentelemetry-go/pull/5521)
- sdk/log: Add altering Processor example by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5550](https://togithub.com/open-telemetry/opentelemetry-go/pull/5550)
- Split the set and add attributes benchmarks by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5546](https://togithub.com/open-telemetry/opentelemetry-go/pull/5546)
- Add walk attributes benchmark by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5547](https://togithub.com/open-telemetry/opentelemetry-go/pull/5547)
- Add benchmark retrieving a new logger by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5548](https://togithub.com/open-telemetry/opentelemetry-go/pull/5548)
- chore(deps): update jaegertracing/all-in-one docker tag to v1.54 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5555](https://togithub.com/open-telemetry/opentelemetry-go/pull/5555)
- chore(deps): update jaegertracing/all-in-one docker tag to v1.58 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5556](https://togithub.com/open-telemetry/opentelemetry-go/pull/5556)
- Reduces allocation in attributes by
[@&#8203;Succo](https://togithub.com/Succo) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5549](https://togithub.com/open-telemetry/opentelemetry-go/pull/5549)
- Generate `internal/transform` in `otlploggrpc` by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5553](https://togithub.com/open-telemetry/opentelemetry-go/pull/5553)
- Split the span start/end benchmarks and test start with links and
attributes by [@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5554](https://togithub.com/open-telemetry/opentelemetry-go/pull/5554)
- sdk/log: Fix ExampleProcessor_redact to clone the record by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5559](https://togithub.com/open-telemetry/opentelemetry-go/pull/5559)
- sdk/log: Add filtering Processor example by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5543](https://togithub.com/open-telemetry/opentelemetry-go/pull/5543)
- chore(deps): update google.golang.org/genproto/googleapis/api digest
to
[`f6361c8`](https://togithub.com/open-telemetry/opentelemetry-go/commit/f6361c8)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5563](https://togithub.com/open-telemetry/opentelemetry-go/pull/5563)
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest
to
[`f6361c8`](https://togithub.com/open-telemetry/opentelemetry-go/commit/f6361c8)
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5564](https://togithub.com/open-telemetry/opentelemetry-go/pull/5564)
- Move time.Now call into exemplar reservoir to improve performance by
[@&#8203;dashpole](https://togithub.com/dashpole) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5545](https://togithub.com/open-telemetry/opentelemetry-go/pull/5545)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.104.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5565](https://togithub.com/open-telemetry/opentelemetry-go/pull/5565)
- Add [@&#8203;XSAM](https://togithub.com/XSAM) and
[@&#8203;dmathieu](https://togithub.com/dmathieu) as repository
maintainers by [@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5558](https://togithub.com/open-telemetry/opentelemetry-go/pull/5558)
- Releases v1.28.0/v0.50.0/v0.4.0 by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5569](https://togithub.com/open-telemetry/opentelemetry-go/pull/5569)

#### New Contributors

- [@&#8203;YHM404](https://togithub.com/YHM404) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5267](https://togithub.com/open-telemetry/opentelemetry-go/pull/5267)
- [@&#8203;juliusv](https://togithub.com/juliusv) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5506](https://togithub.com/open-telemetry/opentelemetry-go/pull/5506)
- [@&#8203;fabiobozzo](https://togithub.com/fabiobozzo) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5494](https://togithub.com/open-telemetry/opentelemetry-go/pull/5494)
- [@&#8203;Charlie-lizhihan](https://togithub.com/Charlie-lizhihan) made
their first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5514](https://togithub.com/open-telemetry/opentelemetry-go/pull/5514)
- [@&#8203;bagmeg](https://togithub.com/bagmeg) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5492](https://togithub.com/open-telemetry/opentelemetry-go/pull/5492)
- [@&#8203;pyohannes](https://togithub.com/pyohannes) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5520](https://togithub.com/open-telemetry/opentelemetry-go/pull/5520)
- [@&#8203;srijan-27](https://togithub.com/srijan-27) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5530](https://togithub.com/open-telemetry/opentelemetry-go/pull/5530)
- [@&#8203;Succo](https://togithub.com/Succo) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5549](https://togithub.com/open-telemetry/opentelemetry-go/pull/5549)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.27.0...v1.28.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuOSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-03 03:04:35 +00:00
renovate[bot] 72a6b876e8
fix(deps): update module google.golang.org/grpc to v1.65.0 (#1346)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) |
`v1.64.0` -> `v1.65.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.65.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.65.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.64.0/v1.65.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.64.0/v1.65.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.65.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.65.0):
Release 1.65.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.64.0...v1.65.0)

### Dependencies

- Change support policy to cover only the latest TWO releases of Go,
matching the policy for Go itself. See
[#&#8203;7249](https://togithub.com/grpc/grpc-go/issues/7249) for more
information.
([#&#8203;7250](https://togithub.com/grpc/grpc-go/issues/7250))
- Update x/net/http2 to address
[CVE-2023-45288](https://nvd.nist.gov/vuln/detail/CVE-2023-45288)
([#&#8203;7282](https://togithub.com/grpc/grpc-go/issues/7282))

### Behavior Changes

- credentials/tls: clients and servers will now reject connections that
don't support ALPN when environment variable `GRPC_ENFORCE_ALPN_ENABLED`
is set to "true" (case insensitive).
([#&#8203;7184](https://togithub.com/grpc/grpc-go/issues/7184))
    -   NOTE: this behavior will become the default in a future release.
- metadata: remove String method from MD to make printing more
consistent
([#&#8203;7373](https://togithub.com/grpc/grpc-go/issues/7373))

### New Features

- grpc: add `WithMaxCallAttempts` to configure gRPC's retry behavior
per-channel.
([#&#8203;7229](https://togithub.com/grpc/grpc-go/issues/7229))
- Special Thanks: [@&#8203;imoore76](https://togithub.com/imoore76)

### Bug Fixes

- ringhash: properly apply endpoint weights instead of ignoring them
([#&#8203;7156](https://togithub.com/grpc/grpc-go/issues/7156))
- xds: fix a bug that could cause xds-enabled servers to stop accepting
new connections after handshaking errors
([#&#8203;7128](https://togithub.com/grpc/grpc-go/issues/7128))
    -   Special Thanks: [@&#8203;bozaro](https://togithub.com/bozaro)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuOSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMS45IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-03 01:05:11 +00:00
renovate[bot] efdd921399
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.4.0-20240215170432-1e611e2999cc.2 (#1342)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.4.0-20240215170432-1e611e2999cc.1` ->
`v1.4.0-20240215170432-1e611e2999cc.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.4.0-20240215170432-1e611e2999cc.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.4.0-20240215170432-1e611e2999cc.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.4.0-20240215170432-1e611e2999cc.1/v1.4.0-20240215170432-1e611e2999cc.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.4.0-20240215170432-1e611e2999cc.1/v1.4.0-20240215170432-1e611e2999cc.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-29 03:14:42 +00:00
renovate[bot] 1e487b4baf
fix(deps): update module github.com/open-feature/flagd/core to v0.10.0 (#1340)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.9.3` -> `v0.10.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.9.3/v0.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.9.3/v0.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQyMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-28 01:45:45 +00:00
github-actions[bot] f2432025f3
chore: release main (#1327)
🤖 I have created a release *beep* *boop*
---


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

##
[0.11.0](https://github.com/open-feature/flagd/compare/flagd/v0.10.3...flagd/v0.11.0)
(2024-06-27)


### ⚠ BREAKING CHANGES

* support emitting errors from the bulk evaluator
([#1338](https://github.com/open-feature/flagd/issues/1338))

### 🐛 Bug Fixes

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


###  New Features

* support `FLAGD_DEBUG` / `--debug` / `-x`
([#1326](https://github.com/open-feature/flagd/issues/1326))
([298bd36](298bd36698))
* support emitting errors from the bulk evaluator
([#1338](https://github.com/open-feature/flagd/issues/1338))
([b9c099c](b9c099cb7f))
</details>

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

##
[0.6.3](https://github.com/open-feature/flagd/compare/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](https://github.com/open-feature/flagd/issues/1333))
([494062f](494062fed8))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/protocolbuffers/go to
v1.34.2-20240215170432-1e611e2999cc.2
([#1330](https://github.com/open-feature/flagd/issues/1330))
([32291ad](32291ad93d))
* **deps:** update module github.com/open-feature/flagd/core to v0.9.3
([#1296](https://github.com/open-feature/flagd/issues/1296))
([1f7b8bd](1f7b8bd938))
* **deps:** update module github.com/spf13/cobra to v1.8.1
([#1332](https://github.com/open-feature/flagd/issues/1332))
([c62bcb0](c62bcb0ec6))
* **deps:** update module github.com/spf13/viper to v1.19.0
([#1334](https://github.com/open-feature/flagd/issues/1334))
([1097b99](1097b9961b))
* **deps:** update module golang.org/x/net to v0.26.0
([#1337](https://github.com/open-feature/flagd/issues/1337))
([83bdbb5](83bdbb5e7e))
* **deps:** update opentelemetry-go monorepo
([#1314](https://github.com/open-feature/flagd/issues/1314))
([e9f1a7a](e9f1a7a048))
</details>

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

##
[0.10.0](https://github.com/open-feature/flagd/compare/core/v0.9.3...core/v0.10.0)
(2024-06-27)


### ⚠ BREAKING CHANGES

* support emitting errors from the bulk evaluator
([#1338](https://github.com/open-feature/flagd/issues/1338))

### 🐛 Bug Fixes

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


###  New Features

* add mandatory flags property in bulk response
([#1339](https://github.com/open-feature/flagd/issues/1339))
([b20266e](b20266ed5e))
* support emitting errors from the bulk evaluator
([#1338](https://github.com/open-feature/flagd/issues/1338))
([b9c099c](b9c099cb7f))
* support relative weighting for fractional evaluation
([#1313](https://github.com/open-feature/flagd/issues/1313))
([f82c094](f82c094f5c))
</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>
2024-06-27 15:17:54 -04:00
renovate[bot] e9f1a7a048
fix(deps): update opentelemetry-go monorepo (#1314)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| `v0.48.0` -> `v0.49.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.48.0/v0.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.48.0/v0.49.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.26.0` -> `v1.27.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.26.0/v1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.27.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.27.0):
/v0.49.0/v0.3.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.26.0...v1.27.0)

This release includes the first beta release of the OpenTelemetry Logs
Bridge API and SDK for Go.

##### Overview

##### Added

- Add example for `go.opentelemetry.io/otel/exporters/stdout/stdoutlog`.
([#&#8203;5242](https://togithub.com/open-telemetry/opentelemetry-go/issues/5242))
- Add `RecordFactory` in `go.opentelemetry.io/otel/sdk/log/logtest` to
facilitate testing exporter and processor implementations.
([#&#8203;5258](https://togithub.com/open-telemetry/opentelemetry-go/issues/5258))
- Add `RecordFactory` in `go.opentelemetry.io/otel/log/logtest` to
facilitate testing bridge implementations.
([#&#8203;5263](https://togithub.com/open-telemetry/opentelemetry-go/issues/5263))
- The count of dropped records from the `BatchProcessor` in
`go.opentelemetry.io/otel/sdk/log` is logged.
([#&#8203;5276](https://togithub.com/open-telemetry/opentelemetry-go/issues/5276))
- Add metrics in the `otel-collector` example.
([#&#8203;5283](https://togithub.com/open-telemetry/opentelemetry-go/issues/5283))
- Add the synchronous gauge instrument to
`go.opentelemetry.io/otel/metric`.
([#&#8203;5304](https://togithub.com/open-telemetry/opentelemetry-go/issues/5304))
- An `int64` or `float64` synchronous gauge instrument can now be
created from a `Meter`.
- All implementations of the API
(`go.opentelemetry.io/otel/metric/noop`,
`go.opentelemetry.io/otel/sdk/metric`) are updated to support this
instrument.
- Add logs to `go.opentelemetry.io/otel/example/dice`.
([#&#8203;5349](https://togithub.com/open-telemetry/opentelemetry-go/issues/5349))

##### Changed

- The `Shutdown` method of `Exporter` in
`go.opentelemetry.io/otel/exporters/stdout/stdouttrace` ignores the
context cancellation and always returns `nil`.
([#&#8203;5189](https://togithub.com/open-telemetry/opentelemetry-go/issues/5189))
- The `ForceFlush` and `Shutdown` methods of the exporter returned by
`New` in `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` ignore
the context cancellation and always return `nil`.
([#&#8203;5189](https://togithub.com/open-telemetry/opentelemetry-go/issues/5189))
- Apply the value length limits to `Record` attributes in
`go.opentelemetry.io/otel/sdk/log`.
([#&#8203;5230](https://togithub.com/open-telemetry/opentelemetry-go/issues/5230))
- De-duplicate map attributes added to a `Record` in
`go.opentelemetry.io/otel/sdk/log`.
([#&#8203;5230](https://togithub.com/open-telemetry/opentelemetry-go/issues/5230))
- `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` won't print
timestamps when `WithoutTimestamps` option is set.
([#&#8203;5241](https://togithub.com/open-telemetry/opentelemetry-go/issues/5241))
- The `go.opentelemetry.io/otel/exporters/stdout/stdoutlog` exporter
won't print `AttributeValueLengthLimit` and `AttributeCountLimit` fields
now, instead it prints the `DroppedAttributes` field.
([#&#8203;5272](https://togithub.com/open-telemetry/opentelemetry-go/issues/5272))
- Improved performance in the `Stringer` implementation of
`go.opentelemetry.io/otel/baggage.Member` by reducing the number of
allocations.
([#&#8203;5286](https://togithub.com/open-telemetry/opentelemetry-go/issues/5286))
- Set the start time for last-value aggregates in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;5305](https://togithub.com/open-telemetry/opentelemetry-go/issues/5305))
- The `Span` in `go.opentelemetry.io/otel/sdk/trace` will record links
without span context if either non-empty `TraceState` or attributes are
provided.
([#&#8203;5315](https://togithub.com/open-telemetry/opentelemetry-go/issues/5315))
- Upgrade all dependencies of `go.opentelemetry.io/otel/semconv/v1.24.0`
to `go.opentelemetry.io/otel/semconv/v1.25.0`.
([#&#8203;5374](https://togithub.com/open-telemetry/opentelemetry-go/issues/5374))

##### Fixed

- Comparison of unordered maps for
`go.opentelemetry.io/otel/log.KeyValue` and
`go.opentelemetry.io/otel/log.Value`.
([#&#8203;5306](https://togithub.com/open-telemetry/opentelemetry-go/issues/5306))
- Fix the empty output of `go.opentelemetry.io/otel/log.Value` in
`go.opentelemetry.io/otel/exporters/stdout/stdoutlog`.
([#&#8203;5311](https://togithub.com/open-telemetry/opentelemetry-go/issues/5311))
- Split the behavior of `Recorder` in
`go.opentelemetry.io/otel/log/logtest` so it behaves as a
`LoggerProvider` only.
([#&#8203;5365](https://togithub.com/open-telemetry/opentelemetry-go/issues/5365))
- Fix wrong package name of the error message when parsing endpoint URL
in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`.
([#&#8203;5371](https://togithub.com/open-telemetry/opentelemetry-go/issues/5371))
- Identify the `Logger` returned from the global `LoggerProvider` in
`go.opentelemetry.io/otel/log/global` with its schema URL.
([#&#8203;5375](https://togithub.com/open-telemetry/opentelemetry-go/issues/5375))

##### What's Changed

- sdk/log/logtest: Add RecordFactory by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5258](https://togithub.com/open-telemetry/opentelemetry-go/pull/5258)
- log/logtest: add Record Factory by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5263](https://togithub.com/open-telemetry/opentelemetry-go/pull/5263)
- stdoutlog: Do not print timestamps when WithoutTimestamps is set by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5241](https://togithub.com/open-telemetry/opentelemetry-go/pull/5241)
- Add example for stdoutlog by [@&#8203;XSAM](https://togithub.com/XSAM)
in
[https://github.com/open-telemetry/opentelemetry-go/pull/5242](https://togithub.com/open-telemetry/opentelemetry-go/pull/5242)
- Remove context check on stdout exporters by
[@&#8203;prasad-shirodkar](https://togithub.com/prasad-shirodkar) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5189](https://togithub.com/open-telemetry/opentelemetry-go/pull/5189)
- Fix flaky test TestBufferExporter/Shutdown/ContextCancelled by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5261](https://togithub.com/open-telemetry/opentelemetry-go/pull/5261)
- Add `otlploggrpc` exporter skeleton by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5246](https://togithub.com/open-telemetry/opentelemetry-go/pull/5246)
- build(deps): bump lycheeverse/lychee-action from 1.9.3 to 1.10.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5266](https://togithub.com/open-telemetry/opentelemetry-go/pull/5266)
- chore: fix function names in comment by
[@&#8203;dockercui](https://togithub.com/dockercui) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5262](https://togithub.com/open-telemetry/opentelemetry-go/pull/5262)
- build(deps): bump
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp from
0.50.0 to 0.51.0 in /example/dice by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5265](https://togithub.com/open-telemetry/opentelemetry-go/pull/5265)
- docs: update variable name in documentation by
[@&#8203;codeboten](https://togithub.com/codeboten) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5270](https://togithub.com/open-telemetry/opentelemetry-go/pull/5270)
- Use empty resource when `RecordFactory.Resource` is `nil` by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5264](https://togithub.com/open-telemetry/opentelemetry-go/pull/5264)
- Truncate and de-duplicate log attribute values by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5230](https://togithub.com/open-telemetry/opentelemetry-go/pull/5230)
- Add changelog entry for
[#&#8203;5230](https://togithub.com/open-telemetry/opentelemetry-go/issues/5230)
by [@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5277](https://togithub.com/open-telemetry/opentelemetry-go/pull/5277)
- docs: Add otlploghttp package in exporters README.md by
[@&#8203;arukiidou](https://togithub.com/arukiidou) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5274](https://togithub.com/open-telemetry/opentelemetry-go/pull/5274)
- The stdoutlog exporter prints `DroppedAttributes` field instead of
`Limit`s fields by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5272](https://togithub.com/open-telemetry/opentelemetry-go/pull/5272)
- Test scope and resource transforms in `otlploghttp` by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5278](https://togithub.com/open-telemetry/opentelemetry-go/pull/5278)
- Add README template to semconvkit by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5279](https://togithub.com/open-telemetry/opentelemetry-go/pull/5279)
- Use docker compose in otel collector example by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5244](https://togithub.com/open-telemetry/opentelemetry-go/pull/5244)
- \[chore] dependabot updates Sun May 5 15:58:12 UTC 2024 by
[@&#8203;opentelemetrybot](https://togithub.com/opentelemetrybot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5300](https://togithub.com/open-telemetry/opentelemetry-go/pull/5300)
- build(deps): bump codecov/codecov-action from 4.3.0 to 4.3.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5296](https://togithub.com/open-telemetry/opentelemetry-go/pull/5296)
- docs: Update Go logs status to alpha in README.md by
[@&#8203;arukiidou](https://togithub.com/arukiidou) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5299](https://togithub.com/open-telemetry/opentelemetry-go/pull/5299)
- docs: Add logs exporters in README.md by
[@&#8203;arukiidou](https://togithub.com/arukiidou) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5298](https://togithub.com/open-telemetry/opentelemetry-go/pull/5298)
- Use reflect to construct a Record in `logtest` by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5275](https://togithub.com/open-telemetry/opentelemetry-go/pull/5275)
- Fix type error in float64 instrument documentation by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5302](https://togithub.com/open-telemetry/opentelemetry-go/pull/5302)
- Fix HistogramConfig documentation by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5301](https://togithub.com/open-telemetry/opentelemetry-go/pull/5301)
- feat: opt for concatenation instead of using fmt.Sprintf by
[@&#8203;moisesvega](https://togithub.com/moisesvega) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5286](https://togithub.com/open-telemetry/opentelemetry-go/pull/5286)
- Emit attributes slices as their json representation by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5159](https://togithub.com/open-telemetry/opentelemetry-go/pull/5159)
- Refactor exemplars to not use generic argument by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5285](https://togithub.com/open-telemetry/opentelemetry-go/pull/5285)
- Upgrade default go verison to 1.22.3 by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5314](https://togithub.com/open-telemetry/opentelemetry-go/pull/5314)
- Log records dropped by the BatchProcessor by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5276](https://togithub.com/open-telemetry/opentelemetry-go/pull/5276)
- Rename synchronous instrument names in global test by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5303](https://togithub.com/open-telemetry/opentelemetry-go/pull/5303)
- chore: Configure Renovate by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5309](https://togithub.com/open-telemetry/opentelemetry-go/pull/5309)
- chore(deps): update module github.com/golang/groupcache to
v0.0.0-20210331224755-41bb18bfe9da by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5320](https://togithub.com/open-telemetry/opentelemetry-go/pull/5320)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240506185236-b8a5c65736ae by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5321](https://togithub.com/open-telemetry/opentelemetry-go/pull/5321)
- chore(deps): update module gopkg.in/check.v1 to
v1.0.0-20201130134442-10cb98267c6c by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5326](https://togithub.com/open-telemetry/opentelemetry-go/pull/5326)
- chore(deps): update module google.golang.org/genproto/googleapis/rpc
to v0.0.0-20240506185236-b8a5c65736ae by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5325](https://togithub.com/open-telemetry/opentelemetry-go/pull/5325)
- fix(deps): update module golang.org/x/exp to
v0.0.0-20240506185415-9bf2ced13842 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5327](https://togithub.com/open-telemetry/opentelemetry-go/pull/5327)
- chore(deps): update module github.com/prometheus/common to v0.53.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5332](https://togithub.com/open-telemetry/opentelemetry-go/pull/5332)
- chore(deps): update module golang.org/x/net to v0.25.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5335](https://togithub.com/open-telemetry/opentelemetry-go/pull/5335)
- fix(deps): update module google.golang.org/protobuf to v1.34.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5328](https://togithub.com/open-telemetry/opentelemetry-go/pull/5328)
- chore(deps): update module github.com/prometheus/procfs to v0.14.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5333](https://togithub.com/open-telemetry/opentelemetry-go/pull/5333)
- chore(deps): update module github.com/cespare/xxhash/v2 to v2.3.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5330](https://togithub.com/open-telemetry/opentelemetry-go/pull/5330)
- chore(deps): update module github.com/rogpeppe/go-internal to v1.12.0
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5334](https://togithub.com/open-telemetry/opentelemetry-go/pull/5334)
- fix(deps): update module github.com/golangci/golangci-lint to v1.58.1
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5340](https://togithub.com/open-telemetry/opentelemetry-go/pull/5340)
- Merge Span.AddLink tests by
[@&#8203;perhapsmaple](https://togithub.com/perhapsmaple) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5115](https://togithub.com/open-telemetry/opentelemetry-go/pull/5115)
- exporters/otlp/otlptrace: fix incorrect documentation by
[@&#8203;kevinburkesegment](https://togithub.com/kevinburkesegment) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5098](https://togithub.com/open-telemetry/opentelemetry-go/pull/5098)
- Generate `internal/retry` in `otlploggrpc` by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5313](https://togithub.com/open-telemetry/opentelemetry-go/pull/5313)
- fix(deps): update module github.com/prometheus/client_golang to
v1.19.1 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5341](https://togithub.com/open-telemetry/opentelemetry-go/pull/5341)
- chore(deps): update jaegertracing/all-in-one docker tag to v1.57 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5329](https://togithub.com/open-telemetry/opentelemetry-go/pull/5329)
- chore(deps): update otel/opentelemetry-collector-contrib docker tag to
v0.100.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5337](https://togithub.com/open-telemetry/opentelemetry-go/pull/5337)
- chore(deps): update prom/prometheus docker tag to v2.52.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5338](https://togithub.com/open-telemetry/opentelemetry-go/pull/5338)
- Move Aneurysm9 to emeritus status by
[@&#8203;Aneurysm9](https://togithub.com/Aneurysm9) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5319](https://togithub.com/open-telemetry/opentelemetry-go/pull/5319)
- Test metric aggregate times by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5323](https://togithub.com/open-telemetry/opentelemetry-go/pull/5323)
- Fix empty log body printed by stdoutlog exporter by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5311](https://togithub.com/open-telemetry/opentelemetry-go/pull/5311)
- Record links with empty span context by
[@&#8203;amanakin](https://togithub.com/amanakin) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5315](https://togithub.com/open-telemetry/opentelemetry-go/pull/5315)
- Update `RELEASING.md` to obtain steps to verify the changes for
contrib by [@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5284](https://togithub.com/open-telemetry/opentelemetry-go/pull/5284)
- chore(deps): update module google.golang.org/genproto/googleapis/rpc
to v0.0.0-20240509183442-62759503f434 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5345](https://togithub.com/open-telemetry/opentelemetry-go/pull/5345)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240509183442-62759503f434 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5344](https://togithub.com/open-telemetry/opentelemetry-go/pull/5344)
- Support Delta & Cumulative temporality for LastValue aggregates by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5305](https://togithub.com/open-telemetry/opentelemetry-go/pull/5305)
- sdk/log: Document how Processor and Exporter interfaces can be
extended by [@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5347](https://togithub.com/open-telemetry/opentelemetry-go/pull/5347)
- Remove dependabot version updates by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5346](https://togithub.com/open-telemetry/opentelemetry-go/pull/5346)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240513163218-0867130af1f8 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5350](https://togithub.com/open-telemetry/opentelemetry-go/pull/5350)
- chore(deps): update module google.golang.org/genproto/googleapis/rpc
to v0.0.0-20240513163218-0867130af1f8 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5351](https://togithub.com/open-telemetry/opentelemetry-go/pull/5351)
- chore(deps): update module github.com/prometheus/procfs to v0.15.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5352](https://togithub.com/open-telemetry/opentelemetry-go/pull/5352)
- chore(deps): update codecov/codecov-action action to v4.4.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5353](https://togithub.com/open-telemetry/opentelemetry-go/pull/5353)
- Add logs to dice example by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5349](https://togithub.com/open-telemetry/opentelemetry-go/pull/5349)
- log: Fix comparison of unordered map values by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5306](https://togithub.com/open-telemetry/opentelemetry-go/pull/5306)
- fix(deps): update module google.golang.org/grpc to v1.64.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5354](https://togithub.com/open-telemetry/opentelemetry-go/pull/5354)
- Fix logger provider var name in dice example by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5358](https://togithub.com/open-telemetry/opentelemetry-go/pull/5358)
- chore(deps): update module google.golang.org/genproto/googleapis/rpc
to v0.0.0-20240515191416-fc5f0ca64291 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5362](https://togithub.com/open-telemetry/opentelemetry-go/pull/5362)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240515191416-fc5f0ca64291 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5361](https://togithub.com/open-telemetry/opentelemetry-go/pull/5361)
- chore(deps): update module github.com/grpc-ecosystem/grpc-gateway/v2
to v2.20.0 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5363](https://togithub.com/open-telemetry/opentelemetry-go/pull/5363)
- \[chore] Fix 2 places in log design doc by
[@&#8203;yijiem](https://togithub.com/yijiem) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5364](https://togithub.com/open-telemetry/opentelemetry-go/pull/5364)
- \[chore] Fix wrong type in DESIGN.md by
[@&#8203;pellared](https://togithub.com/pellared) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5368](https://togithub.com/open-telemetry/opentelemetry-go/pull/5368)
- Add the synchronous gauge to the metric API and SDK by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5304](https://togithub.com/open-telemetry/opentelemetry-go/pull/5304)
- Collector example: add metrics by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5283](https://togithub.com/open-telemetry/opentelemetry-go/pull/5283)
- Fix package prefix of error in otlploghttp by
[@&#8203;XSAM](https://togithub.com/XSAM) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5371](https://togithub.com/open-telemetry/opentelemetry-go/pull/5371)
- Split log/logtest into a recorder and a logger by
[@&#8203;dmathieu](https://togithub.com/dmathieu) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5365](https://togithub.com/open-telemetry/opentelemetry-go/pull/5365)
- Identify logger with schemaURL in global logger provider by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5375](https://togithub.com/open-telemetry/opentelemetry-go/pull/5375)
- Update all semconv use to v1.25.0 by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5374](https://togithub.com/open-telemetry/opentelemetry-go/pull/5374)
- fix(deps): update module github.com/golangci/golangci-lint to v1.58.2
by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5382](https://togithub.com/open-telemetry/opentelemetry-go/pull/5382)
- chore(deps): update codecov/codecov-action action to v4.4.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5387](https://togithub.com/open-telemetry/opentelemetry-go/pull/5387)
- chore(deps): update module google.golang.org/genproto/googleapis/api
to v0.0.0-20240520151616-dc85e6b867a5 by
[@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5388](https://togithub.com/open-telemetry/opentelemetry-go/pull/5388)
- chore(deps): update benchmark-action/github-action-benchmark action to
v1.20.3 by [@&#8203;renovate](https://togithub.com/renovate) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5381](https://togithub.com/open-telemetry/opentelemetry-go/pull/5381)
- Fix exported instrument kind const value change by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5385](https://togithub.com/open-telemetry/opentelemetry-go/pull/5385)
- Release v1.27.0/v0.49.0/v0.3.0 by
[@&#8203;MrAlias](https://togithub.com/MrAlias) in
[https://github.com/open-telemetry/opentelemetry-go/pull/5392](https://togithub.com/open-telemetry/opentelemetry-go/pull/5392)

##### New Contributors

- [@&#8203;prasad-shirodkar](https://togithub.com/prasad-shirodkar) made
their first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5189](https://togithub.com/open-telemetry/opentelemetry-go/pull/5189)
- [@&#8203;dockercui](https://togithub.com/dockercui) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5262](https://togithub.com/open-telemetry/opentelemetry-go/pull/5262)
- [@&#8203;arukiidou](https://togithub.com/arukiidou) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5274](https://togithub.com/open-telemetry/opentelemetry-go/pull/5274)
- [@&#8203;moisesvega](https://togithub.com/moisesvega) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5286](https://togithub.com/open-telemetry/opentelemetry-go/pull/5286)
- [@&#8203;renovate](https://togithub.com/renovate) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5309](https://togithub.com/open-telemetry/opentelemetry-go/pull/5309)
- [@&#8203;perhapsmaple](https://togithub.com/perhapsmaple) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5115](https://togithub.com/open-telemetry/opentelemetry-go/pull/5115)
- [@&#8203;amanakin](https://togithub.com/amanakin) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5315](https://togithub.com/open-telemetry/opentelemetry-go/pull/5315)
- [@&#8203;yijiem](https://togithub.com/yijiem) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/5364](https://togithub.com/open-telemetry/opentelemetry-go/pull/5364)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.26.0...v1.27.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy40MTAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-06-27 12:11:00 -07:00
renovate[bot] fecd769e5f
fix(deps): update module github.com/open-feature/open-feature-operator/apis to v0.2.43 (#1331)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/open-feature-operator/apis](https://togithub.com/open-feature/open-feature-operator)
| `v0.2.40` -> `v0.2.43` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.43?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.43?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.40/v0.2.43?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fopen-feature-operator%2fapis/v0.2.40/v0.2.43?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-06-27 14:56:36 -04:00
Kavindu Dodanduwa b9c099cb7f
feat!: support emitting errors from the bulk evaluator (#1338)
Fixes #1328

### Improvement

flagd's core components are intended to be reused. This PR change
the`IStore` 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

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-06-27 14:09:16 -04:00
Florian Bacher f82c094f5c
feat: support relative weighting for fractional evaluation (#1313)
Closes #1282 

This PR adds support for using relative weights instead of percentages
that need to add up to 100.
The behavior for existing flag configs does not change with this PR, so
those will continue to work as they did previously

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-06-27 12:50:34 -04:00
Kavindu Dodanduwa b20266ed5e
feat: add mandatory flags property in bulk response (#1339)
This PR improves flagd bulk evaluation empty response by adding required
`flags` property.

Related - https://github.com/open-feature/protocol/pull/27

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-06-27 15:34:22 +02:00
renovate[bot] 83bdbb5e7e
fix(deps): update module golang.org/x/net to v0.26.0 (#1337)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.25.0` -> `v0.26.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.25.0/v0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.25.0/v0.26.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQxMy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 19:10:25 +00:00
renovate[bot] 5fa83f7ab2
fix(deps): update module golang.org/x/mod to v0.18.0 (#1336)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/mod | `v0.17.0` -> `v0.18.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.17.0/v0.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.17.0/v0.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 16:55:34 +00:00
renovate[bot] 2a31a17403
fix(deps): update module golang.org/x/crypto to v0.24.0 (#1335)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.23.0` -> `v0.24.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.23.0/v0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.23.0/v0.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 12:30:20 +00:00
renovate[bot] 1097b9961b
fix(deps): update module github.com/spf13/viper to v1.19.0 (#1334)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | `v1.18.2`
-> `v1.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fspf13%2fviper/v1.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fspf13%2fviper/v1.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fspf13%2fviper/v1.18.2/v1.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fspf13%2fviper/v1.18.2/v1.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.19.0`](https://togithub.com/spf13/viper/releases/tag/v1.19.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.18.2...v1.19.0)

<!-- Release notes generated using configuration in .github/release.yml
at v1.19.0 -->

#### What's Changed

##### Bug Fixes 🐛

- fix!: hide struct binding behind a feature flag by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1720](https://togithub.com/spf13/viper/pull/1720)

##### Dependency Updates ⬆️

- build(deps): bump github/codeql-action from 2.22.8 to 2.22.9 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1705](https://togithub.com/spf13/viper/pull/1705)
- build(deps): bump actions/setup-go from 4.1.0 to 5.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1703](https://togithub.com/spf13/viper/pull/1703)
- build(deps): bump github/codeql-action from 2.22.9 to 3.22.11 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1713](https://togithub.com/spf13/viper/pull/1713)
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.1.0 to 2.1.1
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1711](https://togithub.com/spf13/viper/pull/1711)
- build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1722](https://togithub.com/spf13/viper/pull/1722)
- build(deps): bump github/codeql-action from 3.22.11 to 3.23.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1734](https://togithub.com/spf13/viper/pull/1734)
- build(deps): bump actions/dependency-review-action from 3.1.4 to 3.1.5
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1731](https://togithub.com/spf13/viper/pull/1731)
- build(deps): bump mheap/github-action-required-labels from 5.1.0 to
5.2.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1743](https://togithub.com/spf13/viper/pull/1743)
- build(deps): bump github/codeql-action from 3.23.0 to 3.23.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1742](https://togithub.com/spf13/viper/pull/1742)
- build(deps): bump actions/dependency-review-action from 3.1.5 to 4.0.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1739](https://togithub.com/spf13/viper/pull/1739)
- build(deps): bump cachix/install-nix-action from 24 to 25 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1737](https://togithub.com/spf13/viper/pull/1737)
- build(deps): bump github/codeql-action from 3.23.2 to 3.24.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1751](https://togithub.com/spf13/viper/pull/1751)
- build(deps): bump github/codeql-action from 3.24.0 to 3.24.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1760](https://togithub.com/spf13/viper/pull/1760)
- build(deps): bump actions/dependency-review-action from 4.0.0 to 4.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1761](https://togithub.com/spf13/viper/pull/1761)
- build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1757](https://togithub.com/spf13/viper/pull/1757)
- build(deps): bump mheap/github-action-required-labels from 5.2.0 to
5.3.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1759](https://togithub.com/spf13/viper/pull/1759)
- build(deps): bump github/codeql-action from 3.24.1 to 3.24.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1763](https://togithub.com/spf13/viper/pull/1763)
- build(deps): bump github.com/sagikazarmark/crypt from 0.17.0 to 0.18.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1774](https://togithub.com/spf13/viper/pull/1774)
- build(deps): bump github/codeql-action from 3.24.3 to 3.24.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1770](https://togithub.com/spf13/viper/pull/1770)
- build(deps): bump github.com/stretchr/testify from 1.8.4 to 1.9.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1776](https://togithub.com/spf13/viper/pull/1776)
- build(deps): bump github/codeql-action from 3.24.5 to 3.24.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1775](https://togithub.com/spf13/viper/pull/1775)
- build(deps): bump cachix/install-nix-action from 25 to 26 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1778](https://togithub.com/spf13/viper/pull/1778)
- build(deps): bump actions/dependency-review-action from 4.1.0 to 4.1.3
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1767](https://togithub.com/spf13/viper/pull/1767)
- build(deps): bump github/codeql-action from 3.24.6 to 3.24.9 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1790](https://togithub.com/spf13/viper/pull/1790)
- build(deps): bump mheap/github-action-required-labels from 5.3.0 to
5.4.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1789](https://togithub.com/spf13/viper/pull/1789)
- build(deps): bump actions/checkout from 4.1.1 to 4.1.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1780](https://togithub.com/spf13/viper/pull/1780)
- build(deps): bump actions/dependency-review-action from 4.1.3 to 4.2.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1793](https://togithub.com/spf13/viper/pull/1793)
- chore: upgrade crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1794](https://togithub.com/spf13/viper/pull/1794)
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.1.1 to 2.2.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1788](https://togithub.com/spf13/viper/pull/1788)
- build(deps): bump actions/dependency-review-action from 4.2.4 to 4.2.5
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1796](https://togithub.com/spf13/viper/pull/1796)
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.0 to 2.2.1
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1804](https://togithub.com/spf13/viper/pull/1804)
- build(deps): bump github/codeql-action from 3.24.9 to 3.25.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1806](https://togithub.com/spf13/viper/pull/1806)
- build(deps): bump golang.org/x/net from 0.22.0 to 0.23.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1807](https://togithub.com/spf13/viper/pull/1807)
- build(deps): bump actions/checkout from 4.1.2 to 4.1.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1808](https://togithub.com/spf13/viper/pull/1808)
- build(deps): bump actions/checkout from 4.1.3 to 4.1.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1813](https://togithub.com/spf13/viper/pull/1813)
- build(deps): bump github/codeql-action from 3.25.1 to 3.25.2 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1811](https://togithub.com/spf13/viper/pull/1811)
- build(deps): bump mheap/github-action-required-labels from 5.4.0 to
5.4.1 by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1817](https://togithub.com/spf13/viper/pull/1817)
- build(deps): bump actions/dependency-review-action from 4.2.5 to 4.3.2
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1821](https://togithub.com/spf13/viper/pull/1821)
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.1 to 2.2.2
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1822](https://togithub.com/spf13/viper/pull/1822)
- build(deps): bump actions/setup-go from 5.0.0 to 5.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1824](https://togithub.com/spf13/viper/pull/1824)
- build(deps): bump github/codeql-action from 3.25.2 to 3.25.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1828](https://togithub.com/spf13/viper/pull/1828)
- build(deps): bump golangci/golangci-lint-action from 4.0.0 to 6.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1829](https://togithub.com/spf13/viper/pull/1829)
- build(deps): bump github/codeql-action from 3.25.4 to 3.25.7 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1844](https://togithub.com/spf13/viper/pull/1844)
- build(deps): bump cachix/install-nix-action from 26 to 27 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1833](https://togithub.com/spf13/viper/pull/1833)
- build(deps): bump actions/checkout from 4.1.4 to 4.1.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1835](https://togithub.com/spf13/viper/pull/1835)

##### Other Changes

- Update links to Golang Modules documentation by
[@&#8203;tobb10001](https://togithub.com/tobb10001) in
[https://github.com/spf13/viper/pull/1758](https://togithub.com/spf13/viper/pull/1758)
- chore: add Go 1.22 support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1762](https://togithub.com/spf13/viper/pull/1762)
- fix [#&#8203;1700](https://togithub.com/spf13/viper/issues/1700):
update tests to use local viper instance by
[@&#8203;smukk9](https://togithub.com/smukk9) in
[https://github.com/spf13/viper/pull/1791](https://togithub.com/spf13/viper/pull/1791)
- Update references to bketelsen/crypt by
[@&#8203;skitt](https://togithub.com/skitt) in
[https://github.com/spf13/viper/pull/1842](https://togithub.com/spf13/viper/pull/1842)

#### New Contributors

- [@&#8203;tobb10001](https://togithub.com/tobb10001) made their first
contribution in
[https://github.com/spf13/viper/pull/1758](https://togithub.com/spf13/viper/pull/1758)
- [@&#8203;smukk9](https://togithub.com/smukk9) made their first
contribution in
[https://github.com/spf13/viper/pull/1791](https://togithub.com/spf13/viper/pull/1791)
- [@&#8203;skitt](https://togithub.com/skitt) made their first
contribution in
[https://github.com/spf13/viper/pull/1842](https://togithub.com/spf13/viper/pull/1842)

**Full Changelog**:
https://github.com/spf13/viper/compare/v1.18.1...v1.19.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 09:19:37 +00:00
renovate[bot] 494062fed8
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.4.0-20240215170432-1e611e2999cc.1 (#1333)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go |
`v1.3.0-20240215170432-1e611e2999cc.3` ->
`v1.4.0-20240215170432-1e611e2999cc.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.4.0-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.4.0-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.3.0-20240215170432-1e611e2999cc.3/v1.4.0-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fgrpc%2fgo/v1.3.0-20240215170432-1e611e2999cc.3/v1.4.0-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 06:09:35 +00:00
renovate[bot] c62bcb0ec6
fix(deps): update module github.com/spf13/cobra to v1.8.1 (#1332)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/spf13/cobra](https://togithub.com/spf13/cobra) | `v1.8.0`
-> `v1.8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fspf13%2fcobra/v1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fspf13%2fcobra/v1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fspf13%2fcobra/v1.8.0/v1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fspf13%2fcobra/v1.8.0/v1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>spf13/cobra (github.com/spf13/cobra)</summary>

### [`v1.8.1`](https://togithub.com/spf13/cobra/releases/tag/v1.8.1)

[Compare
Source](https://togithub.com/spf13/cobra/compare/v1.8.0...v1.8.1)

####  Features

- Add env variable to suppress completion descriptions on create by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/spf13/cobra/pull/1938](https://togithub.com/spf13/cobra/pull/1938)

#### 🐛 Bug fixes

- Micro-optimizations by [@&#8203;scop](https://togithub.com/scop) in
[https://github.com/spf13/cobra/pull/1957](https://togithub.com/spf13/cobra/pull/1957)

#### 🔧 Maintenance

- build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.3 to 2.0.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/2127](https://togithub.com/spf13/cobra/pull/2127)
- Consistent annotation names by
[@&#8203;nirs](https://togithub.com/nirs) in
[https://github.com/spf13/cobra/pull/2140](https://togithub.com/spf13/cobra/pull/2140)
- Remove fully inactivated linters by
[@&#8203;nirs](https://togithub.com/nirs) in
[https://github.com/spf13/cobra/pull/2148](https://togithub.com/spf13/cobra/pull/2148)
- Address golangci-lint deprecation warnings, enable some more linters
by [@&#8203;scop](https://togithub.com/scop) in
[https://github.com/spf13/cobra/pull/2152](https://togithub.com/spf13/cobra/pull/2152)

#### 🧪 Testing & CI/CD

- Add test for func in cobra.go by
[@&#8203;korovindenis](https://togithub.com/korovindenis) in
[https://github.com/spf13/cobra/pull/2094](https://togithub.com/spf13/cobra/pull/2094)
- ci: test golang 1.22 by
[@&#8203;cyrilico](https://togithub.com/cyrilico) in
[https://github.com/spf13/cobra/pull/2113](https://togithub.com/spf13/cobra/pull/2113)
- Optimized and added more linting by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/spf13/cobra/pull/2099](https://togithub.com/spf13/cobra/pull/2099)
- build(deps): bump actions/setup-go from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/2087](https://togithub.com/spf13/cobra/pull/2087)
- build(deps): bump actions/labeler from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/2086](https://togithub.com/spf13/cobra/pull/2086)
- build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/2108](https://togithub.com/spf13/cobra/pull/2108)
- build(deps): bump actions/cache from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/2102](https://togithub.com/spf13/cobra/pull/2102)

#### ✏️ Documentation

- Fixes and docs for usage as plugin by
[@&#8203;nirs](https://togithub.com/nirs) in
[https://github.com/spf13/cobra/pull/2070](https://togithub.com/spf13/cobra/pull/2070)
- flags: clarify documentation that LocalFlags related function do not
modify the state by [@&#8203;niamster](https://togithub.com/niamster) in
[https://github.com/spf13/cobra/pull/2064](https://togithub.com/spf13/cobra/pull/2064)
- chore: remove repetitive words by
[@&#8203;racerole](https://togithub.com/racerole) in
[https://github.com/spf13/cobra/pull/2122](https://togithub.com/spf13/cobra/pull/2122)
- Add LXC to the list of projects using Cobra
[@&#8203;VaradBelwalkar](https://togithub.com/VaradBelwalkar) in
[https://github.com/spf13/cobra/pull/2071](https://togithub.com/spf13/cobra/pull/2071)
- Update projects_using_cobra.md by
[@&#8203;marcuskohlberg](https://togithub.com/marcuskohlberg) in
[https://github.com/spf13/cobra/pull/2089](https://togithub.com/spf13/cobra/pull/2089)
- \[chore]: update projects using cobra by
[@&#8203;cmwylie19](https://togithub.com/cmwylie19) in
[https://github.com/spf13/cobra/pull/2093](https://togithub.com/spf13/cobra/pull/2093)
- Add Taikun CLI to list of projects by
[@&#8203;Smidra](https://togithub.com/Smidra) in
[https://github.com/spf13/cobra/pull/2098](https://togithub.com/spf13/cobra/pull/2098)
- Add Incus to the list of projects using Cobra by
[@&#8203;montag451](https://togithub.com/montag451) in
[https://github.com/spf13/cobra/pull/2118](https://togithub.com/spf13/cobra/pull/2118)

#### New Contributors

- [@&#8203;VaradBelwalkar](https://togithub.com/VaradBelwalkar) made
their first contribution in
[https://github.com/spf13/cobra/pull/2071](https://togithub.com/spf13/cobra/pull/2071)
- [@&#8203;marcuskohlberg](https://togithub.com/marcuskohlberg) made
their first contribution in
[https://github.com/spf13/cobra/pull/2089](https://togithub.com/spf13/cobra/pull/2089)
- [@&#8203;cmwylie19](https://togithub.com/cmwylie19) made their first
contribution in
[https://github.com/spf13/cobra/pull/2093](https://togithub.com/spf13/cobra/pull/2093)
- [@&#8203;korovindenis](https://togithub.com/korovindenis) made their
first contribution in
[https://github.com/spf13/cobra/pull/2094](https://togithub.com/spf13/cobra/pull/2094)
- [@&#8203;niamster](https://togithub.com/niamster) made their first
contribution in
[https://github.com/spf13/cobra/pull/2064](https://togithub.com/spf13/cobra/pull/2064)
- [@&#8203;Smidra](https://togithub.com/Smidra) made their first
contribution in
[https://github.com/spf13/cobra/pull/2098](https://togithub.com/spf13/cobra/pull/2098)
- [@&#8203;montag451](https://togithub.com/montag451) made their first
contribution in
[https://github.com/spf13/cobra/pull/2118](https://togithub.com/spf13/cobra/pull/2118)
- [@&#8203;cyrilico](https://togithub.com/cyrilico) made their first
contribution in
[https://github.com/spf13/cobra/pull/2113](https://togithub.com/spf13/cobra/pull/2113)
- [@&#8203;racerole](https://togithub.com/racerole) made their first
contribution in
[https://github.com/spf13/cobra/pull/2122](https://togithub.com/spf13/cobra/pull/2122)
- [@&#8203;pedromotita](https://togithub.com/pedromotita) made their
first contribution in
[https://github.com/spf13/cobra/pull/2120](https://togithub.com/spf13/cobra/pull/2120)
- [@&#8203;cubxxw](https://togithub.com/cubxxw) made their first
contribution in
[https://github.com/spf13/cobra/pull/2128](https://togithub.com/spf13/cobra/pull/2128)

***

Thank you everyone who contributed to this release and all your hard
work! Cobra and this community would never be possible without all of
you!!!! 🐍

**Full Changelog**:
https://github.com/spf13/cobra/compare/v1.8.0...v1.8.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 04:06:35 +00:00
renovate[bot] 1f7b8bd938
fix(deps): update module github.com/open-feature/flagd/core to v0.9.3 (#1296)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.9.0` -> `v0.9.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.9.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.9.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.9.0/v0.9.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.9.0/v0.9.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMDEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjM5My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-20 00:27:53 +00:00
renovate[bot] 8bacb7c59c
fix(deps): update module connectrpc.com/connect to v1.16.2 (#1289)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [connectrpc.com/connect](https://togithub.com/connectrpc/connect-go) |
`v1.16.1` -> `v1.16.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/connectrpc.com%2fconnect/v1.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/connectrpc.com%2fconnect/v1.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/connectrpc.com%2fconnect/v1.16.1/v1.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/connectrpc.com%2fconnect/v1.16.1/v1.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>connectrpc/connect-go (connectrpc.com/connect)</summary>

###
[`v1.16.2`](https://togithub.com/connectrpc/connect-go/releases/tag/v1.16.2)

[Compare
Source](https://togithub.com/connectrpc/connect-go/compare/v1.16.1...v1.16.2)

This is a patch release to make sure that consuming modules won't be
vulnerable to
[CVE-2023-45288](https://nvd.nist.gov/vuln/detail/CVE-2023-45288).

##### What's Changed

- Update the golang.org/x/net dependency to v0.23.0 in
[#&#8203;729](https://togithub.com/connectrpc/connect-go/issues/729).

**Full Changelog**:
https://github.com/connectrpc/connect-go/compare/v1.16.1...v1.16.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMDEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjM2My41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 21:37:13 +00:00
renovate[bot] 32291ad93d
fix(deps): update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.34.2-20240215170432-1e611e2999cc.2 (#1330)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/protocolbuffers/go |
`v1.34.1-20240215170432-1e611e2999cc.1` ->
`v1.34.2-20240215170432-1e611e2999cc.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.34.2-20240215170432-1e611e2999cc.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.34.2-20240215170432-1e611e2999cc.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.34.1-20240215170432-1e611e2999cc.1/v1.34.2-20240215170432-1e611e2999cc.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fprotocolbuffers%2fgo/v1.34.1-20240215170432-1e611e2999cc.1/v1.34.2-20240215170432-1e611e2999cc.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 19:18:07 +00:00
renovate[bot] 2694e7f99f
fix(deps): update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.16.2-20240215170432-1e611e2999cc.1 (#1293)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.16.0-20240215170432-1e611e2999cc.1` ->
`v1.16.2-20240215170432-1e611e2999cc.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.2-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.2-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.0-20240215170432-1e611e2999cc.1/v1.16.2-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.16.0-20240215170432-1e611e2999cc.1/v1.16.2-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMDEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjM2My41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 15:35:06 +00:00
renovate[bot] 5f775413fb
fix(deps): update module github.com/rs/cors to v1.11.0 (#1299)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/rs/cors](https://togithub.com/rs/cors) | `v1.10.1` ->
`v1.11.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2frs%2fcors/v1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2frs%2fcors/v1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2frs%2fcors/v1.10.1/v1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2frs%2fcors/v1.10.1/v1.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>rs/cors (github.com/rs/cors)</summary>

### [`v1.11.0`](https://togithub.com/rs/cors/compare/v1.10.1...v1.11.0)

[Compare Source](https://togithub.com/rs/cors/compare/v1.10.1...v1.11.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-19 10:44:57 -04:00
Kavindu Dodanduwa ccb4ebf225
chore: fix renovate by setting correct renovate constrant (#1329)
Renovate constraints to Go 1.21

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-06-19 09:41:31 -04:00
Dave 7ff33effcc
fix: readable error messages (#1325)
- Mapped the error codes to easier to read error messages
- Created unit test to check functionality

 #1100

---------

Signed-off-by: DBlanchard88 <davidblanchard88@gmail.com>
Signed-off-by: Dave <89858058+DBlanchard88@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-06-18 16:38:16 -04:00
Salar Nosrati-Ershad 298bd36698
feat: support `FLAGD_DEBUG` / `--debug` / `-x` (#1326)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
- Observes debug env variable [with or prefix will be `FLAGD_DEBUG`] and
binds `--debug` and `-x` flags to it.

### Related Issues
Fixes #1323

---------

Signed-off-by: Salar Nosrati-Ershad <snosratiershad@gmail.com>
2024-06-17 11:18:48 -04:00
github-actions[bot] 01b50e09f9
chore: release main (#1319)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.10.3</summary>

##
[0.10.3](https://github.com/open-feature/flagd/compare/flagd/v0.10.2...flagd/v0.10.3)
(2024-06-06)


### 🧹 Chore

* adapt telemetry setup error handling
([#1315](https://github.com/open-feature/flagd/issues/1315))
([20bcb78](20bcb78d11))
* fix unit tests and ensure their execution
([#1316](https://github.com/open-feature/flagd/issues/1316))
([25041c0](25041c016a))
</details>

<details><summary>core: 0.9.3</summary>

##
[0.9.3](https://github.com/open-feature/flagd/compare/core/v0.9.2...core/v0.9.3)
(2024-06-06)


### 🐛 Bug Fixes

* fixes store merge when selector is used
([#1322](https://github.com/open-feature/flagd/issues/1322))
([ed5025d](ed5025d8f2))


### 🧹 Chore

* adapt telemetry setup error handling
([#1315](https://github.com/open-feature/flagd/issues/1315))
([20bcb78](20bcb78d11))
</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>
2024-06-06 10:42:38 -04:00
Kavindu Dodanduwa ed5025d8f2
fix: fixes store merge when selector is used (#1322)
## This PR

This change address
https://github.com/open-feature/open-feature-operator/issues/664.

**Background**

We allow using multiple flag source CRDs when using flagd-proxy with
OFO. Internally, this converts to flagd using gRPC syncs with scopes,
where scopes specify the CRD names that need to source flags from.

**Bug**

We had two bugs, first gRPC resyncs never contained `scope`. This is why
we observed `unable to build sync from URI for target` message.
Secondly, we triggered resyncs only considering source equility. This is
not valid with flagd-proxy as we always go through the proxy for any
CRD.

**Fix**

Fix here adds scope to gRPC resyncs and considers both source and
selector equality when triggering a resync

**How to validate the fix**

[Use this
image](https://hub.docker.com/repository/docker/kavindudodanduwa/flagd/general)
with OFO sidecar image override

```helm upgrade --install openfeature openfeature/open-feature-operator --set sidecarConfiguration.image.tag=1,sidecarConfiguration.image.repository=kavindudodanduwa/flagd```

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-06-06 09:36:11 -04:00
Florian Bacher 20bcb78d11
chore: adapt telemetry setup error handling (#1315)
Closes #1194

This PR adapts the service setup to not fail when encountering an error
in the telemetry setup.

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2024-05-27 12:53:48 -04:00
Todd Baert 9b8fa74596
chore: update to fix unary bug in playground (#1318)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-23 17:05:52 -04:00
Florian Bacher 25041c016a
chore: fix unit tests and ensure their execution (#1316)
When running the tests locally I noticed that one of them was failing in
the `flagd` submodule of the repo. After looking into this, I noticed
that the unit tests are only executed for the `core` package in the PR
checks - this is fixed with this PR

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2024-05-23 13:25:47 -07:00
Todd Baert 470d038346
fix: public schema update - fix unary op shorthand (#1317)
See title, and: 


https://github.com/open-feature/flagd-schemas/compare/json/json-schema-v0.2.4...json/json-schema-v0.2.5

https://github.com/open-feature/flagd-schemas/compare/json/json-schema-v0.2.3...json/json-schema-v0.2.4

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-05-23 15:40:00 -04:00
Michael Beemer 34756fe02d
docs: fix typos in the intro
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-05-10 14:19:19 -04:00
github-actions[bot] d58fe3c3ac
chore: release main (#1301)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.10.2</summary>

##
[0.10.2](https://github.com/open-feature/flagd/compare/flagd/v0.10.1...flagd/v0.10.2)
(2024-05-10)


###  New Features

* Create interface for eval events.
([#1288](https://github.com/open-feature/flagd/issues/1288))
([9714215](9714215ced))


### 🧹 Chore

* bump go deps to latest
([#1307](https://github.com/open-feature/flagd/issues/1307))
([004ad08](004ad083dc))
</details>

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

##
[0.6.2](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.1...flagd-proxy/v0.6.2)
(2024-05-10)


### 🧹 Chore

* bump go deps to latest
([#1307](https://github.com/open-feature/flagd/issues/1307))
([004ad08](004ad083dc))
</details>

<details><summary>core: 0.9.2</summary>

##
[0.9.2](https://github.com/open-feature/flagd/compare/core/v0.9.1...core/v0.9.2)
(2024-05-10)


###  New Features

* improve error log and add flag disabled handling for ofrep
([#1306](https://github.com/open-feature/flagd/issues/1306))
([39ae4fe](39ae4fe113))


### 🧹 Chore

* bump go deps to latest
([#1307](https://github.com/open-feature/flagd/issues/1307))
([004ad08](004ad083dc))
</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>
2024-05-10 08:15:14 -07:00
Kavindu Dodanduwa 39ae4fe113
feat: improve error log and add flag disabled handling for ofrep (#1306)
## This PR

- Handle `FlagDisabledErrorCode` and include a specific error message
along with general error code
- Improve error message for targeting rule validation failure

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-05-10 07:34:58 -07:00
Kavindu Dodanduwa 004ad083dc
chore: bump go deps to latest (#1307)
## This PR

Bumps go dependencies to latest in all components

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-05-09 10:43:46 -07:00
Michael Beemer 90c0be4a64
docs: add python, update .net provider docs (#1305)
## This PR

- fixes an invalid link
- adds python provider page
- update .NET provider to include in-process

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-04-30 12:17:30 -04:00
Connor Hindley 9714215ced
feat: Create interface for eval events. (#1288)
## This PR

Before this change the eval services used a unexported
struct which prevented creating eval services outside of
this package.

This change creates a new IEvents interface that allows
providing custom impls of flag eval services.

### Related Issues


### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

Signed-off-by: Connor Hindley <connor.hindley@tanium.com>
2024-04-25 12:19:38 -07:00
github-actions[bot] e1752badc2
chore: release main (#1292)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.10.1</summary>

##
[0.10.1](https://github.com/open-feature/flagd/compare/flagd/v0.10.0...flagd/v0.10.1)
(2024-04-19)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.9.0
([#1281](https://github.com/open-feature/flagd/issues/1281))
([3cfb052](3cfb0523cc))


###  New Features

* move json logic operator registration to resolver
([#1291](https://github.com/open-feature/flagd/issues/1291))
([b473457](b473457ddf))
</details>

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

##
[0.6.1](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.6.0...flagd-proxy/v0.6.1)
(2024-04-19)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.9.0
([#1281](https://github.com/open-feature/flagd/issues/1281))
([3cfb052](3cfb0523cc))
</details>

<details><summary>core: 0.9.1</summary>

##
[0.9.1](https://github.com/open-feature/flagd/compare/core/v0.9.0...core/v0.9.1)
(2024-04-19)


### 🐛 Bug Fixes

* missing/nil custom variables in fractional operator
([#1295](https://github.com/open-feature/flagd/issues/1295))
([418c5cd](418c5cd7c0))


###  New Features

* move json logic operator registration to resolver
([#1291](https://github.com/open-feature/flagd/issues/1291))
([b473457](b473457ddf))
</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>
2024-04-19 12:55:07 -07:00
Kavindu Dodanduwa 418c5cd7c0
fix: missing/nil custom variables in fractional operator (#1295)
## This PR

Fixes https://github.com/open-feature/flagd/issues/1285

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-04-19 12:48:55 -07:00
Michael Beemer 281c8094ef
docs: update playground example to use chained if conditions (#1287)
## This PR

- update playground example to use chained if conditions

### Related Issues

Fixes #1263

### Notes

The docs already described this behavior. This PR updates the playground
example.

https://flagd.dev/reference/flag-definitions/#conditions

### How to test

Use the progressive rollout example in the playground.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-19 09:40:06 -07:00
renovate[bot] 3cfb0523cc
fix(deps): update module github.com/open-feature/flagd/core to v0.9.0 (#1281)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.8.2` -> `v0.9.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.8.2/v0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.8.2/v0.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-19 12:36:10 -04:00
Kavindu Dodanduwa b473457ddf
feat: move json logic operator registration to resolver (#1291)
## This PR

Attempts to isolate Resolver creation and related logic into a single
component.

Previously, custom Json logic operator registration was done at flagd
using `WithEvaluator` option . But this adds confusion when Resolver
needs to be reused in another component. Further the option was merely
adding the custom operator to json logic through its global methods and
did not perform anything on the evaluator . Given that Resolver is
responsible for flag resolving (core logic of the flag evaluations), I
have deprecated `WithEvaluator` option and added custom json logic
registration as part of the resolver constructor.

I have not removed `JSONEvaluatorOption` option so we have flexibility
to support any future option (ex:-option to have a customized
`IResolver` implemetnation )

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-04-18 14:59:53 -04:00
Todd Baert 06584a7abb
chore: update public schema (#1284)
Update publicly served schema (flagd.dev)

Specifically this supports
[enhancements](https://github.com/open-feature/flagd/pull/1266) from
@colebaileygit

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-16 10:20:20 -04:00
github-actions[bot] 584a469d08
chore: release main (#1267)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.10.0</summary>

##
[0.10.0](https://github.com/open-feature/flagd/compare/flagd/v0.9.2...flagd/v0.10.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* allow custom seed when using targetingKey override for fractional op
([#1266](https://github.com/open-feature/flagd/issues/1266))
* This is a breaking change only to the extent that it changes the
assignment of evaluated flag values.
Previously, flagd's `fractional` op would internally concatenate any
specified bucketing property with the `flag-key`.
This improved apparent "randomness" by reducing the chances that users
were assigned a bucket of the same ordinality across multiple flags.
However, sometimes it's desireable to have such predictibility, so now
**flagd will use the bucketing value as is**.
If you are specifying a bucketing value in a `fractional` rule, and want
to maintain the previous assignments, you can do this concatenation
manually:
`{ "var": "user.name" }` => `{"cat": [{ "var": "$flagd.flagKey" }, {
"var": "user.name" }]}`.
      This will result in the same assignment as before.
Please note, that if you do not specify a bucketing key at all (the
shorthand version of the `fractional` op), flagd still uses a
concatentation of the `flag-key` and `targetingKey` as before; this
behavior has not changed.

### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.8.2
([#1255](https://github.com/open-feature/flagd/issues/1255))
([9005089](9005089b3e))


###  New Features

* allow custom seed when using targetingKey override for fractional op
([#1266](https://github.com/open-feature/flagd/issues/1266))
([f62bc72](f62bc721e8))


### 🧹 Chore

* refactor evaluation core
([#1259](https://github.com/open-feature/flagd/issues/1259))
([0e6604c](0e6604cd03))
* update go deps
([#1279](https://github.com/open-feature/flagd/issues/1279))
([219789f](219789fca8))
</details>

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

##
[0.6.0](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.5.2...flagd-proxy/v0.6.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* allow custom seed when using targetingKey override for fractional op
([#1266](https://github.com/open-feature/flagd/issues/1266))
* This is a breaking change only to the extent that it changes the
assignment of evaluated flag values.
Previously, flagd's `fractional` op would internally concatenate any
specified bucketing property with the `flag-key`.
This improved apparent "randomness" by reducing the chances that users
were assigned a bucket of the same ordinality across multiple flags.
However, sometimes it's desireable to have such predictibility, so now
**flagd will use the bucketing value as is**.
If you are specifying a bucketing value in a `fractional` rule, and want
to maintain the previous assignments, you can do this concatenation
manually:
`{ "var": "user.name" }` => `{"cat": [{ "var": "$flagd.flagKey" }, {
"var": "user.name" }]}`.
      This will result in the same assignment as before.
Please note, that if you do not specify a bucketing key at all (the
shorthand version of the `fractional` op), flagd still uses a
concatentation of the `flag-key` and `targetingKey` as before; this
behavior has not changed.

### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.8.2
([#1255](https://github.com/open-feature/flagd/issues/1255))
([9005089](9005089b3e))


###  New Features

* allow custom seed when using targetingKey override for fractional op
([#1266](https://github.com/open-feature/flagd/issues/1266))
([f62bc72](f62bc721e8))


### 🧹 Chore

* update go deps
([#1279](https://github.com/open-feature/flagd/issues/1279))
([219789f](219789fca8))
</details>

<details><summary>core: 0.9.0</summary>

##
[0.9.0](https://github.com/open-feature/flagd/compare/core/v0.8.2...core/v0.9.0)
(2024-04-10)


### ⚠ BREAKING CHANGES

* allow custom seed when using targetingKey override for fractional op
([#1266](https://github.com/open-feature/flagd/issues/1266))
* This is a breaking change only to the extent that it changes the
assignment of evaluated flag values.
Previously, flagd's `fractional` op would internally concatenate any
specified bucketing property with the `flag-key`.
This improved apparent "randomness" by reducing the chances that users
were assigned a bucket of the same ordinality across multiple flags.
However, sometimes it's desireable to have such predictibility, so now
**flagd will use the bucketing value as is**.
If you are specifying a bucketing value in a `fractional` rule, and want
to maintain the previous assignments, you can do this concatenation
manually:
`{ "var": "user.name" }` => `{"cat": [{ "var": "$flagd.flagKey" }, {
"var": "user.name" }]}`.
      This will result in the same assignment as before.
Please note, that if you do not specify a bucketing key at all (the
shorthand version of the `fractional` op), flagd still uses a
concatentation of the `flag-key` and `targetingKey` as before; this
behavior has not changed.

###  New Features

* allow custom seed when using targetingKey override for fractional op
([#1266](https://github.com/open-feature/flagd/issues/1266))
([f62bc72](f62bc721e8))


### 🧹 Chore

* refactor evaluation core
([#1259](https://github.com/open-feature/flagd/issues/1259))
([0e6604c](0e6604cd03))
* update go deps
([#1279](https://github.com/open-feature/flagd/issues/1279))
([219789f](219789fca8))
* wire evaluation ctx to store methods
([#1273](https://github.com/open-feature/flagd/issues/1273))
([0075932](0075932259))
</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>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-10 12:30:49 -04:00
Todd Baert 0fc2d0a683
fix: submodules and doc (#1280)
Remove references to old protos, update `/schemas` submodule.

The old protos were still being used to generate the doc. I've updated
them. Also, the `schemas` submodule was set to some very old version, I
couldn't even run the live docs for that reason. I've updated it to the
latest release of that module.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-10 09:49:01 -04:00
Kavindu Dodanduwa 219789fca8
chore: update go deps (#1279)
Update Go dependencies to their latests.

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-04-09 12:57:25 -04:00
Cole Bailey f62bc721e8
feat!: allow custom seed when using targetingKey override for fractional op (#1266)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- no longer injects flagKey as seed for fractional op when user has
provided custom targeting
- updates schema to allow `cat` and other operations so that custom
targeting can be properly seeded

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

https://github.com/open-feature/flagd/issues/1264

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

```bash
# unit tests
make test

# gherkin tests
./bin/flagd start -f file:test-harness/flags/testing-flags.json -f file:test-harness/flags/custom-ops.json -f file:test-harness/flags/evaluator-refs.json -f file:test-harness/flags/zero-flags.json
make flagd-integration-test
```

---------

Signed-off-by: Cole Bailey <cole.bailey@deliveryhero.com>
Signed-off-by: Cole Bailey <cole.bailey.one@gmail.com>
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-04-09 08:41:41 -07:00
Kavindu Dodanduwa 0075932259
chore: wire evaluation ctx to store methods (#1273)
## This PR

A follow-up to https://github.com/open-feature/flagd/pull/1259 where
binds context from evaluation request to store contract (passing context
to `evaluateVariant()`)

No changes for evaluation logic or any other component

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-04-05 12:39:02 -07:00
Dave 3a0a6a7318
docs: playground share button (#1253)
Added share button to flagd playground

---------

Signed-off-by: DBlanchard88 <davidblanchard88@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-04-04 11:37:34 -07:00
renovate[bot] 9005089b3e
fix(deps): update module github.com/open-feature/flagd/core to v0.8.2 (#1255)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.8.0` -> `v0.8.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.8.0/v0.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.8.0/v0.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yNjkuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-03 08:23:07 -07:00
Kavindu Dodanduwa 0e6604cd03
chore: refactor evaluation core (#1259)
## This PR

Refactor the flagd evaluator such that storage and evaluation logic are
isolated. This allows us to plug any storage layer to the same
evaluation logic, which could be valuable in the long run


![image](https://github.com/open-feature/flagd/assets/8186721/247656ed-883f-4c34-892e-29bc3d93fe66)

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-04-03 06:59:46 -07:00
Michael Beemer 2a185fdaa4
docs: disable social plugin (#1261)
## This PR

- disables the social plugin in mkdocs

### Notes

Disables the social plugin until the Google Font issue is resolved.

https://github.com/squidfunk/mkdocs-material/issues/6983

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-03-29 14:38:52 -04:00
github-actions[bot] f72faebc0c
chore: release main (#1254)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.9.2</summary>

##
[0.9.2](https://github.com/open-feature/flagd/compare/flagd/v0.9.1...flagd/v0.9.2)
(2024-03-27)


###  New Features

* OFREP support for flagd
([#1247](https://github.com/open-feature/flagd/issues/1247))
([9d12fc2](9d12fc2070))
</details>

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

##
[0.5.2](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.5.1...flagd-proxy/v0.5.2)
(2024-03-27)


###  New Features

* OFREP support for flagd
([#1247](https://github.com/open-feature/flagd/issues/1247))
([9d12fc2](9d12fc2070))
</details>

<details><summary>core: 0.8.2</summary>

##
[0.8.2](https://github.com/open-feature/flagd/compare/core/v0.8.1...core/v0.8.2)
(2024-03-27)


###  New Features

* OFREP support for flagd
([#1247](https://github.com/open-feature/flagd/issues/1247))
([9d12fc2](9d12fc2070))
</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>
2024-03-28 07:29:37 -07:00
Kavindu Dodanduwa 9d12fc2070
feat: OFREP support for flagd (#1247)
## This PR

Fixes #1245 and introduce OFREP support for flagd

OFREP service runs on 8016 by default and can simply use curl for flag
evaluations,

```shell
curl -X POST 'http://localhost:8016/ofrep/v1/evaluate/flags/myBoolFlag'
```

NOTE - This PR touch several files as I had to migrate from
`github.com/golang/mock/gomock` to `go.uber.org/mock/gomock`. This is
because https://github.com/golang/mock is no longer maintained.

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
Co-authored-by: Florian Bacher <florian.bacher@dynatrace.com>
2024-03-27 10:03:01 -07:00
Blaž Dular 4dfd19e617
docs: Typo in syncs.md (#1250)
## This PR

- updates documentation [typo](docs/concepts/syncs.md)

### Related Issues


### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

Signed-off-by: Blaž Dular <22869613+xBlaz3kx@users.noreply.github.com>
2024-03-19 17:36:09 -04:00
github-actions[bot] b755a643bd
chore: release main (#1238)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.9.1</summary>

##
[0.9.1](https://github.com/open-feature/flagd/compare/flagd/v0.9.0...flagd/v0.9.1)
(2024-03-15)


### 🐛 Bug Fixes

* **deps:** update module google.golang.org/protobuf to v1.33.0
[security] ([#1248](https://github.com/open-feature/flagd/issues/1248))
([b2b0fa1](b2b0fa19a6))
* update protobuff CVE-2024-24786
([#1249](https://github.com/open-feature/flagd/issues/1249))
([fd81c23](fd81c235fb))


###  New Features

* serve sync.proto on port 8015
([#1237](https://github.com/open-feature/flagd/issues/1237))
([7afdc0c](7afdc0cda4))


### 🧹 Chore

* move packaging & isolate service implementations
([#1234](https://github.com/open-feature/flagd/issues/1234))
([b58fab3](b58fab3df0))
</details>

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

##
[0.5.1](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.5.0...flagd-proxy/v0.5.1)
(2024-03-15)


### 🐛 Bug Fixes

* update protobuff CVE-2024-24786
([#1249](https://github.com/open-feature/flagd/issues/1249))
([fd81c23](fd81c235fb))


### 🧹 Chore

* move packaging & isolate service implementations
([#1234](https://github.com/open-feature/flagd/issues/1234))
([b58fab3](b58fab3df0))
</details>

<details><summary>core: 0.8.1</summary>

##
[0.8.1](https://github.com/open-feature/flagd/compare/core/v0.8.0...core/v0.8.1)
(2024-03-15)


### 🐛 Bug Fixes

* occasional panic when watched YAML files change
([#1246](https://github.com/open-feature/flagd/issues/1246))
([6249d12](6249d12ec4))
* update protobuff CVE-2024-24786
([#1249](https://github.com/open-feature/flagd/issues/1249))
([fd81c23](fd81c235fb))


### 🧹 Chore

* move packaging & isolate service implementations
([#1234](https://github.com/open-feature/flagd/issues/1234))
([b58fab3](b58fab3df0))
</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>
2024-03-15 12:35:18 -07:00
Todd Baert fd81c235fb
fix: update protobuff CVE-2024-24786 (#1249)
Update protobuf dep to address
[CVE-2024-24786](https://nvd.nist.gov/vuln/detail/CVE-2024-24786).

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-15 15:31:16 -04:00
renovate[bot] b2b0fa19a6
fix(deps): update module google.golang.org/protobuf to v1.33.0 [security] (#1248)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/protobuf](https://togithub.com/protocolbuffers/protobuf-go)
| `v1.32.0` -> `v1.33.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fprotobuf/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fprotobuf/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.32.0/v1.33.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

### GitHub Vulnerability Alerts

#### [CVE-2024-24786](https://nvd.nist.gov/vuln/detail/CVE-2024-24786)

The protojson.Unmarshal function can enter an infinite loop when
unmarshaling certain forms of invalid JSON. This condition can occur
when unmarshaling into a message which contains a google.protobuf.Any
value, or when the UnmarshalOptions.DiscardUnknown option is set.

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.33.0`](https://togithub.com/protocolbuffers/protobuf-go/compare/v1.32.0...v1.33.0)

[Compare
Source](https://togithub.com/protocolbuffers/protobuf-go/compare/v1.32.0...v1.33.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMzguMSIsInVwZGF0ZWRJblZlciI6IjM3LjIzOC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-15 15:15:19 -04:00
DinhLocTran 6249d12ec4
fix: occasional panic when watched YAML files change (#1246)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
At the moment, the yamlToJSON will convert `[]byte("")` to `"null"`.
While "null" is a normal string, it will bypass all validator and lead
to panic.
### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes [#1242](https://github.com/open-feature/flagd/issues/1242)

### Notes
I found that sometime, the os.Readfile will return empty byte and no
error, this will cause the yamlToJSON convert the rawData ("") to
jsonData ("null").
Moreover, when I check the log, the watcher is reading file content a
lot at a times for checking file changes, so it could be the reason why
os.Readfile return empty byte?

![image](https://github.com/open-feature/flagd/assets/20945393/75b68be0-eba4-4f96-b5ee-5f4f383bae5c)
### Follow-up Tasks
I think we have to check the behavior of os.Readfile?

### How to test
<!-- if applicable, add testing instructions under this section -->

Signed-off-by: Tran Dinh Loc <dinhlockt02@gmail.com>
2024-03-12 15:47:37 -04:00
Kavindu Dodanduwa 7afdc0cda4
feat: serve sync.proto on port 8015 (#1237)
## This PR

Introduce flag sync capability to flagd as discussed at [1] and fixes
https://github.com/open-feature/flagd/issues/1230 .

**What's changed ?**

The change included with this PR introduces the gRPC sync contract [2].
This allows flagd to expose its store to in-process provider which
consumes gRPC flag stream.


![image](https://github.com/open-feature/flagd/assets/8186721/871ed21f-612a-46d4-95b6-6459d43cb077)

**How to use ?**

flagd will start sync service on port `8015`. You can alter the default
sync port by providing desired port to the startup flag `syncPort`
(`--sync-port=8686`)

**Implementation details**

- Sync service startup is delayed to allow configured flag sources to
complete their initial loading (dealy is 5 seconds)
- Sync request's `selector` can be used to specify the specific flag
source. If unset, all flags will be sent
- A new stream response will be created whenever there are updates from
flag sources


[1] - https://github.com/open-feature/flagd/discussions/1153 
[2] -
https://github.com/open-feature/flagd-schemas/blob/main/protobuf/flagd/sync/v1/sync.proto

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-12 07:54:47 -07:00
Todd Baert 9e3d06b034
docs: use monaco+schema in playground (#1244)
Uses monaco (vs code) for the playground for better experience,
including JSON schema validation.

Try it out:
https://deploy-preview-1244--polite-licorice-3db33c.netlify.app/playground/


![image](https://github.com/open-feature/flagd/assets/25272906/de430a81-a167-4421-8dc7-612c35f06178)

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-11 10:42:56 -04:00
Todd Baert c7a7341820
docs: relax CO headers for schemas (#1243)
See title. This just allows frontend apps to pull schemas instead of
getting blocked by the CO policy.

EDIT:

Tested in the netlify preview and works as expected. Only the `schemas`
path is impacted, no CORS on rest of site.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-09 11:09:30 -05:00
Jon Watte b06a5035cb
docs: fix a broken search link (#1241)
## This PR
The link for "speaks your language" links to a wrong spelling of 'flagd'
so make it actually work.

### How to test
Follow the "speaks your language" link in the "README.md" document.

Signed-off-by: jwatte <jwatte@observeinc.com>
Co-authored-by: jwatte <jwatte@observeinc.com>
2024-03-07 14:20:45 -05:00
Todd Baert 49ae9b1b89
chore: update schemas submodule for new json (#1240)
see title.

mainly for this: https://github.com/open-feature/flagd-schemas/pull/134

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-03-07 11:43:37 -05:00
Kavindu Dodanduwa b58fab3df0
chore: move packaging & isolate service implementations (#1234)
## This PR

**Background**

This is an attempt to move services and wiring logic to their end usage.

For example, having `runtime` package in the core module did not provide
any advantage. This package was only used by `flagd` and contained the
logic that binds configurations to service implementations.

Similarly, `flagd-proxy` exposed `sync` service, and having that inside
the core module seemed out of place.

**What's changed**

I have moved `runtime` package to `flagd` & specific service
implementations (flag evaluation and sync service) to their end usage.

**Why ?**

I considered this to be a pre-requisite for
https://github.com/open-feature/flagd/issues/1230. If I attempted to add
another `sync` implementation to the current core module, it would have
made the whole packaging confusing (ex:- we have two sync proto
implementations, which do not serve the same purpose. One for
flagd-proxy and the other for flagd).

After this refactoring, I could add the flagd's sync service, where it
serve buf connect and I can locate that within flagd.

Besides, we still have a core module with all the sharables. 

Consider the current packaging in the below diagram,


![image](https://github.com/open-feature/flagd/assets/8186721/ce8b2358-c136-492c-a646-178fe42d9841)


* nore - core sync is for flag data sync listeners such as files, K8s
...

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-03-05 09:52:06 -08:00
Todd Baert 517973fa84
docs: json schema update json/json-schema-v0.2.1 (#1215)
Updates schema to include
https://github.com/open-feature/flagd-schemas/pull/131.

Fixes: https://github.com/open-feature/flagd/issues/1205

@austindrenski I imagine this is cached quite heavily by IDEs, etc. Not
sure how long it will take to clear.

Preview link:
https://deploy-preview-1215--polite-licorice-3db33c.netlify.app/schema/v0/targeting.json

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-20 12:55:28 -05:00
Kavindu Dodanduwa 5dade3071a
chore: fix examples (#1222)
## This PR

Fixes flagd flag configuration examples.

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-20 12:52:23 -05:00
github-actions[bot] 534b5bf654
chore: release main (#1209)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.9.0</summary>

##
[0.9.0](https://github.com/open-feature/flagd/compare/flagd/v0.8.2...flagd/v0.9.0)
(2024-02-20)


### ⚠ BREAKING CHANGES

* new proto (flagd.sync.v1) for sync sources
([#1214](https://github.com/open-feature/flagd/issues/1214))

### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.5
([#1198](https://github.com/open-feature/flagd/issues/1198))
([ce38845](ce388458b9))


###  New Features

* new proto (flagd.sync.v1) for sync sources
([#1214](https://github.com/open-feature/flagd/issues/1214))
([544234e](544234ebd9))


### 🧹 Chore

* **deps:** update golang docker tag to v1.22
([#1201](https://github.com/open-feature/flagd/issues/1201))
([d14c69e](d14c69e93e))
</details>

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

##
[0.5.0](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.4.2...flagd-proxy/v0.5.0)
(2024-02-20)


### ⚠ BREAKING CHANGES

* new proto (flagd.sync.v1) for sync sources
([#1214](https://github.com/open-feature/flagd/issues/1214))

### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.5
([#1198](https://github.com/open-feature/flagd/issues/1198))
([ce38845](ce388458b9))


###  New Features

* new proto (flagd.sync.v1) for sync sources
([#1214](https://github.com/open-feature/flagd/issues/1214))
([544234e](544234ebd9))


### 🧹 Chore

* **deps:** update golang docker tag to v1.22
([#1201](https://github.com/open-feature/flagd/issues/1201))
([d14c69e](d14c69e93e))
</details>

<details><summary>core: 0.8.0</summary>

##
[0.8.0](https://github.com/open-feature/flagd/compare/core/v0.7.5...core/v0.8.0)
(2024-02-20)


### ⚠ BREAKING CHANGES

* new proto (flagd.sync.v1) for sync sources
([#1214](https://github.com/open-feature/flagd/issues/1214))

### 🐛 Bug Fixes

* **deps:** update github.com/open-feature/flagd-schemas digest to
8c72c14 ([#1212](https://github.com/open-feature/flagd/issues/1212))
([4add9fd](4add9fd1c4))
* **deps:** update kubernetes packages to v0.29.2
([#1213](https://github.com/open-feature/flagd/issues/1213))
([b0c805f](b0c805f7f5))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/connectrpc/go to
v1.15.0-20240215170432-1e611e2999cc.1
([#1219](https://github.com/open-feature/flagd/issues/1219))
([4c4f08a](4c4f08afab))
* **deps:** update module golang.org/x/crypto to v0.19.0
([#1203](https://github.com/open-feature/flagd/issues/1203))
([f0ff317](f0ff3177f6))
* **deps:** update module golang.org/x/mod to v0.15.0
([#1202](https://github.com/open-feature/flagd/issues/1202))
([6ca8e6d](6ca8e6d33f))
* **deps:** update module golang.org/x/net to v0.21.0
([#1204](https://github.com/open-feature/flagd/issues/1204))
([bccf365](bccf365fa2))
* **deps:** update module google.golang.org/grpc to v1.61.1
([#1210](https://github.com/open-feature/flagd/issues/1210))
([10cc63e](10cc63e799))
* **deps:** update opentelemetry-go monorepo
([#1199](https://github.com/open-feature/flagd/issues/1199))
([422ebaa](422ebaa30b))


###  New Features

* new proto (flagd.sync.v1) for sync sources
([#1214](https://github.com/open-feature/flagd/issues/1214))
([544234e](544234ebd9))
</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>
2024-02-20 12:48:13 -05:00
RealAnna 544234ebd9
feat!: new proto (flagd.sync.v1) for sync sources (#1214)
## This PR
- update mockgen
- update proto in core
- update to go 1.21

---------

Signed-off-by: RealAnna <anna.reale@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: RealAnna <89971034+RealAnna@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-02-20 10:20:03 -05:00
renovate[bot] 4add9fd1c4
fix(deps): update github.com/open-feature/flagd-schemas digest to 8c72c14 (#1212)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd-schemas](https://togithub.com/open-feature/flagd-schemas)
| require | digest | `b98a826` -> `8c72c14` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-20 09:58:50 -05:00
renovate[bot] 4c4f08afab
fix(deps): update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.15.0-20240215170432-1e611e2999cc.1 (#1219)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.14.0-20231031123731-ac2ec0f39838.1` ->
`v1.15.0-20240215170432-1e611e2999cc.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.15.0-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.15.0-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.14.0-20231031123731-ac2ec0f39838.1/v1.15.0-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.14.0-20231031123731-ac2ec0f39838.1/v1.15.0-20240215170432-1e611e2999cc.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-17 04:42:33 +00:00
renovate[bot] b0c805f7f5
fix(deps): update kubernetes packages to v0.29.2 (#1213)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
`v0.29.1` -> `v0.29.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fapimachinery/v0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fapimachinery/v0.29.1/v0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.29.1/v0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
`v0.29.1` -> `v0.29.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fclient-go/v0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fclient-go/v0.29.1/v0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.29.1/v0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.29.2`](https://togithub.com/kubernetes/apimachinery/compare/v0.29.1...v0.29.2)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.29.1...v0.29.2)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.29.2`](https://togithub.com/kubernetes/client-go/compare/v0.29.1...v0.29.2)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.29.1...v0.29.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-15 03:13:04 +00:00
renovate[bot] 422ebaa30b
fix(deps): update opentelemetry-go monorepo (#1199)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.22.0` -> `v1.23.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.22.0` -> `v1.23.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.22.0` -> `v1.23.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| `v0.45.0` -> `v0.45.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.45.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.45.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.45.0/v0.45.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.45.0/v0.45.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.22.0` -> `v1.23.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.22.0` -> `v1.23.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.22.0` -> `v1.23.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.22.0` -> `v1.23.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.22.0/v1.23.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.23.1`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.1):
/v0.43.2

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.23.0...v1.23.1)

##### Fixed

- Register all callbacks passed during observable instrument creation
instead of just the last one multiple times in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4888](https://togithub.com/open-telemetry/opentelemetry-go/issues/4888))

###
[`v1.23.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.23.0):
/v0.45.1

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.23.0)

This release contains the first stable, `v1`, release of the following
modules:

-   `go.opentelemetry.io/otel/bridge/opencensus`
-   `go.opentelemetry.io/otel/bridge/opencensus/test`
-   `go.opentelemetry.io/otel/example/opencensus`
-   `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`
-   `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`
-   `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric`

See our [versioning policy](VERSIONING.md) for more information about
these stability guarantees.

##### Added

- Add `WithEndpointURL` option to the
`exporters/otlp/otlpmetric/otlpmetricgrpc`,
`exporters/otlp/otlpmetric/otlpmetrichttp`,
`exporters/otlp/otlptrace/otlptracegrpc` and
`exporters/otlp/otlptrace/otlptracehttp` packages.
([#&#8203;4808](https://togithub.com/open-telemetry/opentelemetry-go/issues/4808))
- Experimental exemplar exporting is added to the metric SDK. See
[metric documentation](./sdk/metric/EXPERIMENTAL.md#exemplars) for more
information about this feature and how to enable it.
([#&#8203;4871](https://togithub.com/open-telemetry/opentelemetry-go/issues/4871))
- `ErrSchemaURLConflict` is added to
`go.opentelemetry.io/otel/sdk/resource`. This error is returned when a
merge of two `Resource`s with different (non-empty) schema URL is
attempted.
([#&#8203;4876](https://togithub.com/open-telemetry/opentelemetry-go/issues/4876))

##### Changed

- The `Merge` and `New` functions in
`go.opentelemetry.io/otel/sdk/resource` now returns a partial result if
there is a schema URL merge conflict. Instead of returning `nil` when
two `Resource`s with different (non-empty) schema URLs are merged the
merged `Resource`, along with the new `ErrSchemaURLConflict` error, is
returned. It is up to the user to decide if they want to use the
returned `Resource` or not. It may have desired attributes overwritten
or include stale semantic conventions.
([#&#8203;4876](https://togithub.com/open-telemetry/opentelemetry-go/issues/4876))

##### Fixed

- Fix `ContainerID` resource detection on systemd when cgroup path has a
colon.
([#&#8203;4449](https://togithub.com/open-telemetry/opentelemetry-go/issues/4449))
- Fix `go.opentelemetry.io/otel/sdk/metric` to cache instruments to
avoid leaking memory when the same instrument is created multiple times.
([#&#8203;4820](https://togithub.com/open-telemetry/opentelemetry-go/issues/4820))
- Fix missing `Mix` and `Max` values for
`go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` by introducing
`MarshalText` and `MarshalJSON` for the `Extrema` type in
`go.opentelemetry.io/sdk/metric/metricdata`.
([#&#8203;4827](https://togithub.com/open-telemetry/opentelemetry-go/issues/4827))

#### New Contributors

- [@&#8203;Fricounet](https://togithub.com/Fricounet) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4449](https://togithub.com/open-telemetry/opentelemetry-go/pull/4449)
- [@&#8203;StLeoX](https://togithub.com/StLeoX) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4855](https://togithub.com/open-telemetry/opentelemetry-go/pull/4855)
- [@&#8203;m-posluszny](https://togithub.com/m-posluszny) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4827](https://togithub.com/open-telemetry/opentelemetry-go/pull/4827)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.22.0...v1.23.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-14 10:01:43 +00:00
renovate[bot] 6ca8e6d33f
fix(deps): update module golang.org/x/mod to v0.15.0 (#1202)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/mod | `v0.14.0` -> `v0.15.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fmod/v0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fmod/v0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fmod/v0.14.0/v0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fmod/v0.14.0/v0.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-14 07:33:28 +00:00
renovate[bot] 10cc63e799
fix(deps): update module google.golang.org/grpc to v1.61.1 (#1210)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) |
`v1.61.0` -> `v1.61.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.61.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.61.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.61.0/v1.61.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.61.0/v1.61.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.61.1`](https://togithub.com/grpc/grpc-go/releases/tag/v1.61.1):
Release 1.61.1

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.61.0...v1.61.1)

### Bug Fixes

- server: wait to close connection until incoming socket is drained
(with timeout) to prevent data loss on client-side
([#&#8203;6977](https://togithub.com/grpc/grpc-go/issues/6977))
- Special Thanks:
[@&#8203;s-matyukevich](https://togithub.com/s-matyukevich) for
discovering the root cause

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-14 03:56:12 +00:00
renovate[bot] bccf365fa2
fix(deps): update module golang.org/x/net to v0.21.0 (#1204)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.20.0` -> `v0.21.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.20.0/v0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.20.0/v0.21.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-13 22:35:07 +00:00
renovate[bot] f0ff3177f6
fix(deps): update module golang.org/x/crypto to v0.19.0 (#1203)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.18.0` -> `v0.19.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.18.0/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.18.0/v0.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-13 22:34:17 +00:00
renovate[bot] d14c69e93e
chore(deps): update golang docker tag to v1.22 (#1201)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang | stage | minor | `1.21-alpine` -> `1.22-alpine` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-13 18:31:23 +00:00
renovate[bot] ce388458b9
fix(deps): update module github.com/open-feature/flagd/core to v0.7.5 (#1198)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.7.4` -> `v0.7.5` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.4/v0.7.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.4/v0.7.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-13 16:56:09 +00:00
Todd Baert 6b8e954f96
docs: add targeting key doc/demo/spec (#1206)
Speccing this out and providing an example for maximum clarity.

New playground entry is last in the list:
https://deploy-preview-1206--polite-licorice-3db33c.netlify.app/playground/

New section:
https://deploy-preview-1206--polite-licorice-3db33c.netlify.app/reference/flag-definitions/#targeting-key

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-13 07:59:02 -05:00
Todd Baert fb567ee031
chore: fix readme casing
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-06 10:42:43 -05:00
github-actions[bot] 116ad362aa
chore: release main (#1130)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.8.2</summary>

##
[0.8.2](https://github.com/open-feature/flagd/compare/flagd/v0.8.1...flagd/v0.8.2)
(2024-02-05)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.4
([#1119](https://github.com/open-feature/flagd/issues/1119))
([e998e41](e998e41f7c))
* use correct link in sources flag helper text in start cmd
([#1126](https://github.com/open-feature/flagd/issues/1126))
([b9d30e0](b9d30e0a52))
</details>

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

##
[0.4.2](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.4.1...flagd-proxy/v0.4.2)
(2024-02-05)


### 🐛 Bug Fixes

* add signal handling to SyncFlags grpc
([#1176](https://github.com/open-feature/flagd/issues/1176))
([5c8ed7c](5c8ed7c6dd))
* **deps:** update module github.com/open-feature/flagd/core to v0.7.4
([#1119](https://github.com/open-feature/flagd/issues/1119))
([e998e41](e998e41f7c))
</details>

<details><summary>core: 0.7.5</summary>

##
[0.7.5](https://github.com/open-feature/flagd/compare/core/v0.7.4...core/v0.7.5)
(2024-02-05)


### 🐛 Bug Fixes

* add signal handling to SyncFlags grpc
([#1176](https://github.com/open-feature/flagd/issues/1176))
([5c8ed7c](5c8ed7c6dd))
* **deps:** update kubernetes packages to v0.29.1
([#1156](https://github.com/open-feature/flagd/issues/1156))
([899e6b5](899e6b505a))
* **deps:** update module
buf.build/gen/go/open-feature/flagd/connectrpc/go to
v1.14.0-20231031123731-ac2ec0f39838.1
([#1170](https://github.com/open-feature/flagd/issues/1170))
([8b3c8d6](8b3c8d6c87))
* **deps:** update module golang.org/x/crypto to v0.18.0
([#1138](https://github.com/open-feature/flagd/issues/1138))
([53569d9](53569d9cd8))
* **deps:** update module golang.org/x/net to v0.20.0
([#1139](https://github.com/open-feature/flagd/issues/1139))
([fdb1d0c](fdb1d0c909))
* **deps:** update module google.golang.org/grpc to v1.61.0
([#1164](https://github.com/open-feature/flagd/issues/1164))
([11ccecd](11ccecd5ac))
* **deps:** update opentelemetry-go monorepo
([#1155](https://github.com/open-feature/flagd/issues/1155))
([436fefe](436fefedf6))


###  New Features

* add targeting validation
([#1146](https://github.com/open-feature/flagd/issues/1146))
([b727dd0](b727dd00c5))
* **core:** support any auth scheme in HTTP-sync auth header
([#1152](https://github.com/open-feature/flagd/issues/1152))
([df65966](df6596634e))


### 🧹 Chore

* update test dependencies, fix for otel api change and update renovate
configuration
([#1188](https://github.com/open-feature/flagd/issues/1188))
([3270346](32703464d5))


### 📚 Documentation

* update schemas
([#1158](https://github.com/open-feature/flagd/issues/1158))
([396c618](396c618bac))
</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>
2024-02-06 10:32:40 -05:00
Todd Baert ec634d94fc
chore: schema docs, add to all examples (#1181)
I've added a small page about the schema, and I've added the schema to
all examples.

Preview:
https://deploy-preview-1181--polite-licorice-3db33c.netlify.app/reference/schema/

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-05 15:21:27 -08:00
Kavindu Dodanduwa 32703464d5
chore: update test dependencies, fix for otel api change and update renovate configuration (#1188)
## This PR

Update test dependencies and add specific paths to renovate
configurations so that renovate can take care of test module updates.

Also, update to match connect API change -
https://github.com/connectrpc/otelconnect-go/releases/tag/v0.7.0

Note - `test/**` was ignored as this comes from default preset [^1] [^2]

[^1]: https://docs.renovatebot.com/presets-default/
[^2]:
https://docs.renovatebot.com/presets-default/#ignoremodulesandtests

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-02-05 10:39:57 -05:00
renovate[bot] f1198d2823
chore(deps): update dependency @types/react to v18.2.53 (#1197)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.52` ->
`18.2.53`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.52/18.2.53)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.53?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.53?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.52/18.2.53?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.52/18.2.53?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzAuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3MC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-05 06:41:17 +00:00
renovate[bot] 40b67148d4
fix(deps): update dependency mkdocs-material to v9.5.7 (#1196)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mkdocs-material](https://togithub.com/squidfunk/mkdocs-material) |
`9.5.6` -> `9.5.7` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mkdocs-material/9.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mkdocs-material/9.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mkdocs-material/9.5.6/9.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mkdocs-material/9.5.6/9.5.7?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>squidfunk/mkdocs-material (mkdocs-material)</summary>

###
[`v9.5.7`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.5.7):
mkdocs-material-9.5.7

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.5.6...9.5.7)

- Fixed
[#&#8203;6731](https://togithub.com/squidfunk/mkdocs-material/issues/6731):
Small images in figures are not centered
- Fixed
[#&#8203;6719](https://togithub.com/squidfunk/mkdocs-material/issues/6719):
Instant navigation breaks table of contents (9.5.5 regression)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-03 10:12:12 +00:00
renovate[bot] 6a1e12c552
chore(deps): update dependency @types/react to v18.2.52 (#1195)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.51` ->
`18.2.52`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.51/18.2.52)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.52?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.52?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.51/18.2.52?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.51/18.2.52?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-03 08:14:46 +00:00
renovate[bot] 4c3014aba4
chore(deps): update github/codeql-action digest to e8893c5 (#1193)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `b7bf0a3` -> `e8893c5` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 22:34:38 +00:00
renovate[bot] 8f07d41cdd
chore(deps): update codecov/codecov-action digest to e0b68c6 (#1192)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [codecov/codecov-action](https://togithub.com/codecov/codecov-action)
| action | digest | `f30e495` -> `e0b68c6` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-02 03:55:23 +00:00
renovate[bot] 4ca1d76637
chore(deps): update dependency @types/react to v18.2.51 (#1190)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.48` ->
`18.2.51`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.48/18.2.51)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.48/18.2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.48/18.2.51?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-01 16:08:29 +00:00
renovate[bot] 6431bb66d5
chore(deps): update amannn/action-semantic-pull-request digest to e9fabac (#1191)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[amannn/action-semantic-pull-request](https://togithub.com/amannn/action-semantic-pull-request)
| action | digest | `c3cd5d1` -> `e9fabac` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-01 12:18:55 +00:00
renovate[bot] 2e8e8c1e79
chore(deps): update marocchino/sticky-pull-request-comment digest to 331f8f5 (#1189)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[marocchino/sticky-pull-request-comment](https://togithub.com/marocchino/sticky-pull-request-comment)
| action | digest | `efaaab3` -> `331f8f5` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-01 10:57:06 +00:00
renovate[bot] b9b99dc62b
chore(deps): update codecov/codecov-action action to v4 (#1187)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [codecov/codecov-action](https://togithub.com/codecov/codecov-action)
| action | major | `v3` -> `v4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>codecov/codecov-action (codecov/codecov-action)</summary>

### [`v4`](https://togithub.com/codecov/codecov-action/compare/v3...v4)

[Compare
Source](https://togithub.com/codecov/codecov-action/compare/v3...v4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 23:02:44 +00:00
Michael Beemer 1c530abc03
docs: update playground flagd version, add new scenarios (#1180)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-31 14:40:05 -05:00
renovate[bot] 94e7c78bd8
chore(deps): update sigstore/cosign-installer digest to e1523de (#1186)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `b18d21a` -> `e1523de` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 19:13:50 +00:00
renovate[bot] ba02283b2f
chore(deps): update anchore/sbom-action digest to b6a39da (#1185)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `767b08f` -> `b6a39da` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 19:05:49 +00:00
Michael Beemer 99da3b7c54
docs: move OFO doc references (#1174)
## This PR

- adds redirects to appropriate OFO docs
- adds an OFO overview page

### Related Issues

Fixes #1055

### Notes

This PR removes most of the OFO docs so that we only have to maintain
content in a single location. In the future, it would be ideal if we
could include relative content automatically in the flagd docs, but that
was out of scope of this PR.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-31 11:49:55 -05:00
renovate[bot] 155b5cce81
chore(deps): update docker/metadata-action digest to 8e5442c (#1184)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `dbef880` -> `8e5442c` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 15:20:54 +00:00
renovate[bot] 579326ec46
chore(deps): update codecov/codecov-action digest to ab904c4 (#1183)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [codecov/codecov-action](https://togithub.com/codecov/codecov-action)
| action | digest | `4fe8c5f` -> `ab904c4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 03:03:54 +00:00
renovate[bot] 1b08c6fb71
chore(deps): update anchore/sbom-action digest to 767b08f (#1182)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `c6aed38` -> `767b08f` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 00:57:48 +00:00
Todd Baert b76b862f49
chore: add release-plz manifest commands
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-30 14:03:22 -05:00
Todd Baert cd0d5e8d80
chore: revert release-plz version (#1178)
- reverts release please action to v3 (see
[bug](https://github.com/google-github-actions/release-please-action/issues/912)).
- removes GH action SHA pinning

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-30 13:44:45 -05:00
Giovanni Liva 5c8ed7c6dd
fix: add signal handling to SyncFlags grpc (#1176)
Signed-off-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2024-01-30 08:53:12 -05:00
renovate[bot] 184d3e0ec3
chore(deps): update typescript-eslint monorepo to v6.20.0 (#1173)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.19.1` ->
`6.20.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.19.1/6.20.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.19.1/6.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.19.1/6.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.19.1` ->
`6.20.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.19.1/6.20.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.19.1/6.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.19.1/6.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.20.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6200-2024-01-29)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.19.1...v6.20.0)

##### 🚀 Features

- **eslint-plugin:** \[member-ordering] allow easy reuse of the default
ordering

##### 🩹 Fixes

- **eslint-plugin:** \[no-useless-template-literals] incorrect bigint
autofix result

- **eslint-plugin:** \[prefer-nullish-coalescing] treat any/unknown as
non-nullable

- **eslint-plugin:** \[no-useless-template-literals] report Infinity &
NaN

-   **eslint-plugin:** \[prefer-readonly] disable checking accessors

##### ❤️  Thank You

-   Alex Parloti
-   auvred
-   James Browning
-   StyleShit
-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.20.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6200-2024-01-29)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.19.1...v6.20.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-29 21:18:13 +00:00
renovate[bot] d6c5bb0dc7
chore(deps): update anchore/sbom-action digest to c6aed38 (#1172)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `24b0d52` -> `c6aed38` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-29 20:41:14 +00:00
renovate[bot] 8b3c8d6c87
fix(deps): update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.14.0-20231031123731-ac2ec0f39838.1 (#1170)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/connectrpc/go |
`v1.12.0-20231031123731-ac2ec0f39838.1` ->
`v1.14.0-20231031123731-ac2ec0f39838.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.14.0-20231031123731-ac2ec0f39838.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.14.0-20231031123731-ac2ec0f39838.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.12.0-20231031123731-ac2ec0f39838.1/v1.14.0-20231031123731-ac2ec0f39838.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/buf.build%2fgen%2fgo%2fopen-feature%2fflagd%2fconnectrpc%2fgo/v1.12.0-20231031123731-ac2ec0f39838.1/v1.14.0-20231031123731-ac2ec0f39838.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-28 16:30:36 +00:00
renovate[bot] 700352f804
fix(deps): update dependency mkdocs-material to v9.5.6 (#1169)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mkdocs-material](https://togithub.com/squidfunk/mkdocs-material) |
`9.5.5` -> `9.5.6` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mkdocs-material/9.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mkdocs-material/9.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mkdocs-material/9.5.5/9.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mkdocs-material/9.5.5/9.5.6?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>squidfunk/mkdocs-material (mkdocs-material)</summary>

###
[`v9.5.6`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.5.6):
mkdocs-material-9.5.6

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.5.5...9.5.6)

- Fixed
[#&#8203;6700](https://togithub.com/squidfunk/mkdocs-material/issues/6700):
Missing styles for Mermaid.js labels with Markdown

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-28 14:49:36 +00:00
renovate[bot] 436fefedf6
fix(deps): update opentelemetry-go monorepo (#1155)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.21.0` -> `v1.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v0.44.0` -> `v0.45.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v0.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v0.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v0.44.0/v0.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlpmetric%2fotlpmetricgrpc/v0.44.0/v0.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.21.0` -> `v1.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.21.0` -> `v1.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fotlp%2fotlptrace%2fotlptracegrpc/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| `v0.44.0` -> `v0.45.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.44.0/v0.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fexporters%2fprometheus/v0.44.0/v0.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.21.0` -> `v1.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fmetric/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fmetric/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fmetric/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fmetric/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.21.0` -> `v1.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.21.0` -> `v1.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2fsdk%2fmetric/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| `v1.21.0` -> `v1.22.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fotel%2ftrace/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/go.opentelemetry.io%2fotel%2ftrace/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/go.opentelemetry.io%2fotel%2ftrace/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fotel%2ftrace/v1.21.0/v1.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.22.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.22.0):
/v0.45.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.21.0...v1.22.0)

##### Added

-   The `go.opentelemetry.io/otel/semconv/v1.22.0` package.
The package contains semantic conventions from the `v1.22.0` version of
the OpenTelemetry Semantic Conventions.
([#&#8203;4735](https://togithub.com/open-telemetry/opentelemetry-go/issues/4735))
-   The `go.opentelemetry.io/otel/semconv/v1.23.0` package.
The package contains semantic conventions from the `v1.23.0` version of
the OpenTelemetry Semantic Conventions.
([#&#8203;4746](https://togithub.com/open-telemetry/opentelemetry-go/issues/4746))
-   The `go.opentelemetry.io/otel/semconv/v1.23.1` package.
The package contains semantic conventions from the `v1.23.1` version of
the OpenTelemetry Semantic Conventions.
([#&#8203;4749](https://togithub.com/open-telemetry/opentelemetry-go/issues/4749))
-   The `go.opentelemetry.io/otel/semconv/v1.24.0` package.
The package contains semantic conventions from the `v1.24.0` version of
the OpenTelemetry Semantic Conventions.
([#&#8203;4770](https://togithub.com/open-telemetry/opentelemetry-go/issues/4770))
- Add `WithResourceAsConstantLabels` option to apply resource attributes
for every metric emitted by the Prometheus exporter.
([#&#8203;4733](https://togithub.com/open-telemetry/opentelemetry-go/issues/4733))
-   Experimental cardinality limiting is added to the metric SDK.
See [metric
documentation](./sdk/metric/EXPERIMENTAL.md#cardinality-limit) for more
information about this feature and how to enable it.
([#&#8203;4457](https://togithub.com/open-telemetry/opentelemetry-go/issues/4457))
- Add `NewMemberRaw` and `NewKeyValuePropertyRaw` in
`go.opentelemetry.io/otel/baggage`.
([#&#8203;4804](https://togithub.com/open-telemetry/opentelemetry-go/issues/4804))

##### Changed

- Upgrade all use of `go.opentelemetry.io/otel/semconv` to use
`v1.24.0`.
([#&#8203;4754](https://togithub.com/open-telemetry/opentelemetry-go/issues/4754))
- Update transformations in `go.opentelemetry.io/otel/exporters/zipkin`
to follow `v1.19.0` version of the OpenTelemetry specification.
([#&#8203;4754](https://togithub.com/open-telemetry/opentelemetry-go/issues/4754))
- Record synchronous measurements when the passed context is canceled
instead of dropping in `go.opentelemetry.io/otel/sdk/metric`.
If you do not want to make a measurement when the context is cancelled,
you need to handle it yourself (e.g `if ctx.Err() != nil`).
([#&#8203;4671](https://togithub.com/open-telemetry/opentelemetry-go/issues/4671))
- Improve `go.opentelemetry.io/otel/trace.TraceState`'s performance.
([#&#8203;4722](https://togithub.com/open-telemetry/opentelemetry-go/issues/4722))
- Improve `go.opentelemetry.io/otel/propagation.TraceContext`'s
performance.
([#&#8203;4721](https://togithub.com/open-telemetry/opentelemetry-go/issues/4721))
- Improve `go.opentelemetry.io/otel/baggage` performance.
([#&#8203;4743](https://togithub.com/open-telemetry/opentelemetry-go/issues/4743))
- Improve performance of the `(*Set).Filter` method in
`go.opentelemetry.io/otel/attribute` when the passed filter does not
filter out any attributes from the set.
([#&#8203;4774](https://togithub.com/open-telemetry/opentelemetry-go/issues/4774))
- `Member.String` in `go.opentelemetry.io/otel/baggage` percent-encodes
only when necessary.
([#&#8203;4775](https://togithub.com/open-telemetry/opentelemetry-go/issues/4775))
- `Property.Value` in `go.opentelemetry.io/otel/baggage` now returns a
raw string instead of a percent-encoded value.
([#&#8203;4804](https://togithub.com/open-telemetry/opentelemetry-go/issues/4804))

##### Fixed

- Fix `Parse` in `go.opentelemetry.io/otel/baggage` to validate member
value before percent-decoding.
([#&#8203;4755](https://togithub.com/open-telemetry/opentelemetry-go/issues/4755))
- Fix whitespace encoding of `Member.String` in
`go.opentelemetry.io/otel/baggage`.
([#&#8203;4756](https://togithub.com/open-telemetry/opentelemetry-go/issues/4756))
- Fix baggage item key so that it is not canonicalized in
`go.opentelemetry.io/otel/bridge/opentracing`.
([#&#8203;4776](https://togithub.com/open-telemetry/opentelemetry-go/issues/4776))
- Fix `go.opentelemetry.io/otel/bridge/opentracing` to properly handle
baggage values that requires escaping during propagation.
([#&#8203;4804](https://togithub.com/open-telemetry/opentelemetry-go/issues/4804))
- Fix a bug where using multiple readers resulted in incorrect
asynchronous counter values in `go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4742](https://togithub.com/open-telemetry/opentelemetry-go/issues/4742))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 13:35:29 +00:00
renovate[bot] 11ccecd5ac
fix(deps): update module google.golang.org/grpc to v1.61.0 (#1164)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) |
`v1.60.1` -> `v1.61.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fgrpc/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fgrpc/v1.60.1/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.60.1/v1.61.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.61.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.61.0):
Release 1.61.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.60.1...v1.61.0)

### New Features

- resolver: provide method, `AuthorityOverrider`, to allow
resolver.Builders to override the default authority for a `ClientConn`.
(EXPERIMENTAL)
([#&#8203;6752](https://togithub.com/grpc/grpc-go/issues/6752))
- Special Thanks:
[@&#8203;Aditya-Sood](https://togithub.com/Aditya-Sood)
- xds: add support for mTLS Credentials in xDS bootstrap ([gRFC
A65](github.com/grpc/proposal/blob/8c31bfedded5f0a51c4933e9e9a8246122f9c41a/A65-xds-mtls-creds-in-bootstrap.md))
([#&#8203;6757](https://togithub.com/grpc/grpc-go/issues/6757))
- Special Thanks: [@&#8203;atollena](https://togithub.com/atollena)
- server: add `grpc.WaitForHandlers` `ServerOption` to cause
`Server.Stop` to block until method handlers return. (EXPERIMENTAL)
([#&#8203;6922](https://togithub.com/grpc/grpc-go/issues/6922))

### Performance Improvements

- grpc: skip compression of empty messages as an optimization
([#&#8203;6842](https://togithub.com/grpc/grpc-go/issues/6842))
    -   Special Thanks: [@&#8203;jroper](https://togithub.com/jroper)
- orca: use atomic pointer to improve performance in server metrics
recorder ([#&#8203;6799](https://togithub.com/grpc/grpc-go/issues/6799))
- Special Thanks:
[@&#8203;danielzhaotongliu](https://togithub.com/danielzhaotongliu)

### Bug Fixes

- client: correctly enable TCP keepalives with OS defaults on windows
([#&#8203;6863](https://togithub.com/grpc/grpc-go/issues/6863))
- Special Thanks: [@&#8203;mmatczuk](https://togithub.com/mmatczuk)
- server: change some stream operations to return `UNAVAILABLE` instead
of `UNKNOWN` when underlying connection is broken
([#&#8203;6891](https://togithub.com/grpc/grpc-go/issues/6891))
- Special Thanks:
[@&#8203;mustafasen81](https://togithub.com/mustafasen81)
- server: fix `GracefulStop` to block until all method handlers return
(v1.60 regression).
([#&#8203;6922](https://togithub.com/grpc/grpc-go/issues/6922))
- server: fix two bugs that could lead to panics at shutdown when using
[`NumStreamWorkers`](https://pkg.go.dev/google.golang.org/grpc#NumStreamWorkers)
(EXPERIMENTAL).
([#&#8203;6856](https://togithub.com/grpc/grpc-go/issues/6856))
- reflection: do not send invalid descriptors to clients for files that
cannot be fully resolved
([#&#8203;6771](https://togithub.com/grpc/grpc-go/issues/6771))
    -   Special Thanks: [@&#8203;jhump](https://togithub.com/jhump)
- xds: don't fail channel/server startup when xds creds is specified,
but bootstrap is missing certificate providers
([#&#8203;6848](https://togithub.com/grpc/grpc-go/issues/6848))
- xds: Atomically read and write xDS security configuration client side
([#&#8203;6796](https://togithub.com/grpc/grpc-go/issues/6796))
- xds/server: fix RDS handling for non-inline route configs
([#&#8203;6915](https://togithub.com/grpc/grpc-go/issues/6915))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 11:24:34 +00:00
renovate[bot] fdb1d0c909
fix(deps): update module golang.org/x/net to v0.20.0 (#1139)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/net | `v0.19.0` -> `v0.20.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fnet/v0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fnet/v0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fnet/v0.19.0/v0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fnet/v0.19.0/v0.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 03:27:44 +00:00
renovate[bot] 53569d9cd8
fix(deps): update module golang.org/x/crypto to v0.18.0 (#1138)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.17.0` -> `v0.18.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.17.0/v0.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.17.0/v0.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 03:26:36 +00:00
renovate[bot] e998e41f7c
fix(deps): update module github.com/open-feature/flagd/core to v0.7.4 (#1119)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.7.3` -> `v0.7.4` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.3/v0.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.3/v0.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-27 01:53:44 +00:00
renovate[bot] 899e6b505a
fix(deps): update kubernetes packages to v0.29.1 (#1156)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
`v0.29.0` -> `v0.29.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fapimachinery/v0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fapimachinery/v0.29.0/v0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.29.0/v0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
`v0.29.0` -> `v0.29.1` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fclient-go/v0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fclient-go/v0.29.0/v0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.29.0/v0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.29.1`](https://togithub.com/kubernetes/apimachinery/compare/v0.29.0...v0.29.1)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.29.0...v0.29.1)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.29.1`](https://togithub.com/kubernetes/client-go/compare/v0.29.0...v0.29.1)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.29.0...v0.29.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 23:30:55 +00:00
renovate[bot] dbfbcd9e48
chore(deps): update github/codeql-action digest to b7bf0a3 (#1167)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `0b21cf2` -> `b7bf0a3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-26 20:16:30 +00:00
Kavindu Dodanduwa 185fce5664
chore: fix renovate go version (#1168)
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2024-01-26 12:44:20 -05:00
renovate[bot] f7cc5be5a0
chore(deps): update codecov/codecov-action digest to 4fe8c5f (#1166)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [codecov/codecov-action](https://togithub.com/codecov/codecov-action)
| action | digest | `eaaf4be` -> `4fe8c5f` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-25 22:53:16 +00:00
renovate[bot] c26a6488b4
fix(deps): update dependency mkdocs-material to v9.5.5 (#1165)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mkdocs-material](https://togithub.com/squidfunk/mkdocs-material) |
`9.5.4` -> `9.5.5` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mkdocs-material/9.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mkdocs-material/9.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mkdocs-material/9.5.4/9.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mkdocs-material/9.5.4/9.5.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>squidfunk/mkdocs-material (mkdocs-material)</summary>

###
[`v9.5.5`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.5.5):
mkdocs-material-9.5.5

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.5.4...9.5.5)

-   Updated Tagalog translations
-   Updated Pillow to 10.2 to mitigate security vulnerabilities
-   Improved resilience of instant navigation
- Fixed
[#&#8203;6687](https://togithub.com/squidfunk/mkdocs-material/issues/6687):
Updated Mermaid.js to version 10.7.0 (latest)
- Fixed
[#&#8203;6652](https://togithub.com/squidfunk/mkdocs-material/issues/6652):
Keyboard events in custom elements captured
- Fixed
[#&#8203;6582](https://togithub.com/squidfunk/mkdocs-material/issues/6582):
Instant navigation doesn't correctly handle alternate URLs
- Fixed
[#&#8203;6565](https://togithub.com/squidfunk/mkdocs-material/issues/6565):
Instant navigation doesn't allow for `onclick` handlers
- Fixed
[#&#8203;6345](https://togithub.com/squidfunk/mkdocs-material/issues/6345):
Instant navigation sometimes breaks browser back button
- Fixed
[#&#8203;6334](https://togithub.com/squidfunk/mkdocs-material/issues/6334):
Instant navigation doesn't correctly position anchors (Safari)
- Fixed
[#&#8203;6275](https://togithub.com/squidfunk/mkdocs-material/issues/6275):
Instant navigation doesn't correctly resolve after 404
- Fixed
[#&#8203;6102](https://togithub.com/squidfunk/mkdocs-material/issues/6102):
Instant navigation reloads page on same link navigation

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-24 09:30:40 +00:00
renovate[bot] aa11388ccb
chore(deps): update typescript-eslint monorepo to v6.19.1 (#1163)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.19.0` ->
`6.19.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.19.0/6.19.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.19.0/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.19.0/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.19.0` ->
`6.19.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.19.0/6.19.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.19.0/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.19.0/6.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.19.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6191-2024-01-22)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.19.0...v6.19.1)

##### 🩹 Fixes

- **type-utils:** preventing isUnsafeAssignment infinite recursive calls

- **eslint-plugin:** \[no-unnecessary-condition] fix false positive for
type variable

##### ❤️  Thank You

-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.19.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6191-2024-01-22)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.19.0...v6.19.1)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 21:27:41 +00:00
renovate[bot] f63a98e395
chore(deps): update anchore/sbom-action digest to 24b0d52 (#1162)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `41f7a6c` -> `24b0d52` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 18:35:21 +00:00
renovate[bot] f2f15edeca
fix(deps): update dependency react-use to v17.5.0 (#1161)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [react-use](https://togithub.com/streamich/react-use) | [`17.4.4` ->
`17.5.0`](https://renovatebot.com/diffs/npm/react-use/17.4.4/17.5.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-use/17.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-use/17.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-use/17.4.4/17.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-use/17.4.4/17.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>streamich/react-use (react-use)</summary>

###
[`v17.5.0`](https://togithub.com/streamich/react-use/blob/HEAD/CHANGELOG.md#1750-2024-01-22)

[Compare
Source](https://togithub.com/streamich/react-use/compare/v17.4.4...v17.5.0)

##### Features

- add `isFirst` and `isLast` methods to `useStateList` hook
([ac64414](ac64414bea))
- **pencil:** add isFirst and isLast return value to 'useStateList'
([75218e4](75218e45df))
- **pencil:** fix with yarn lint:fix
([6a9dde5](6a9dde596a))

####
[17.4.4](https://togithub.com/streamich/react-use/compare/v17.4.3...v17.4.4)
(2024-01-21)

##### Bug Fixes

- typo in example
([0534648](05346481a1))

####
[17.4.3](https://togithub.com/streamich/react-use/compare/v17.4.2...v17.4.3)
(2024-01-13)

##### Bug Fixes

- update useMedia hook to use recommended approach of MDN
([e7379f0](e7379f0887))

####
[17.4.2](https://togithub.com/streamich/react-use/compare/v17.4.1...v17.4.2)
(2023-12-01)

##### Bug Fixes

- correct peer dependencies
([d770587](d770587296))

####
[17.4.1](https://togithub.com/streamich/react-use/compare/v17.4.0...v17.4.1)
(2023-11-28)

##### Bug Fixes

- 🐛 bump nano-css version
([812952b](812952bb9f))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 12:58:32 +00:00
renovate[bot] 271bf44860
fix(deps): update dependency react-use to v17.4.4 (#1160)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [react-use](https://togithub.com/streamich/react-use) | [`17.4.3` ->
`17.4.4`](https://renovatebot.com/diffs/npm/react-use/17.4.3/17.4.4) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-use/17.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-use/17.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-use/17.4.3/17.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-use/17.4.3/17.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>streamich/react-use (react-use)</summary>

###
[`v17.4.4`](https://togithub.com/streamich/react-use/blob/HEAD/CHANGELOG.md#1744-2024-01-21)

[Compare
Source](https://togithub.com/streamich/react-use/compare/v17.4.3...v17.4.4)

##### Bug Fixes

- typo in example
([0534648](05346481a1))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-21 16:52:34 +00:00
renovate[bot] bb639256aa
chore(deps): update dependency vite to v5.0.12 (#1159)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.0.11` ->
`5.0.12`](https://renovatebot.com/diffs/npm/vite/5.0.11/5.0.12) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.0.11/5.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.0.11/5.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

### [`v5.0.12`](https://togithub.com/vitejs/vite/releases/tag/v5.0.12)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.0.11...v5.0.12)

Please refer to
[CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v5.0.12/packages/vite/CHANGELOG.md)
for details.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-19 18:55:47 +00:00
Todd Baert 396c618bac
docs: update schemas (#1158)
Absorbs new schema, and go module changes from:
https://github.com/open-feature/flagd-schemas/pull/128

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-19 10:06:48 -05:00
Best Olunusi df6596634e
feat(core): support any auth scheme in HTTP-sync auth header (#1152)
## This PR

- adds support for any auth scheme in HTTP-sync auth header

### Related Issues

Closes #1150

---------

Signed-off-by: Best Olunusi <olunusibest@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-18 15:35:06 -05:00
renovate[bot] 64ee20e191
chore(deps): update anchore/sbom-action digest to 41f7a6c (#1157)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `c7f031d` -> `41f7a6c` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 18:31:14 +00:00
renovate[bot] 5fca1fa047
chore(deps): update github/codeql-action digest to 0b21cf2 (#1154)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `e5f05b8` -> `0b21cf2` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMzUuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEzNS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-17 22:47:15 +00:00
Todd Baert 4c3eec0355
docs: add json-schema (#1115)
Adds JSON schema at
`https://flagd.dev/schema/v0/flagd-definitions.json`, which can be used
to add validation to flagd config files.

~Note, to accomplish this cleanly, I have cloned the schemas module
twice (at different versions) one is used for json releases (and tagged
to something like `json/json-schema-v0.1.2`) while the other is for the
protobuf generation and tagged to a release of that. I don't love this,
but I think it's needed.~

I've decided against this. I don't think we'll really have conflicts
here.

See schema here:
https://deploy-preview-1115--polite-licorice-3db33c.netlify.app/schema/v0/flagd-definitions.json

Once this is available, I intend to update a bunch of docs and examples
to leverage this schema, and and an blurb in the docs about it.

~Blocked by: https://github.com/open-feature/flagd-schemas/pull/122~

~I think I'll wait for
[this](https://github.com/open-feature/flagd/pull/1146) to be done
before adding this, to avoid conflicts.~

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-16 22:53:29 -05:00
renovate[bot] f425337d69
chore(deps): update typescript-eslint monorepo to v6.19.0 (#1149)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.18.1` ->
`6.19.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.18.1/6.19.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.18.1/6.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.18.1/6.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.18.1` ->
`6.19.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.18.1/6.19.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.18.1/6.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.18.1/6.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.19.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6190-2024-01-15)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.18.1...v6.19.0)

##### 🚀 Features

-   **eslint-plugin:** \[prefer-promise-reject-errors] add rule

-   **eslint-plugin:** \[no-array-delete] add new rule

- **eslint-plugin:** \[no-useless-template-literals] add fix suggestions

##### 🩹 Fixes

- **eslint-plugin:** \[no-unnecessary-type-assertion] detect unnecessary
non-null-assertion on a call expression

- **eslint-plugin:** \[no-unnecesary-type-assertion] treat unknown/any
as nullable

##### ❤️  Thank You

-   auvred
-   Brad Zacher
-   Josh Goldberg 
-   Joshua Chen
-   LJX
-   Steven
-   StyleShit

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.19.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6190-2024-01-15)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.18.1...v6.19.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 22:11:49 +00:00
renovate[bot] 5f28feff61
fix(deps): update dependency mkdocs-material to v9.5.4 (#1148)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mkdocs-material](https://togithub.com/squidfunk/mkdocs-material) |
`9.5.3` -> `9.5.4` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mkdocs-material/9.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mkdocs-material/9.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mkdocs-material/9.5.3/9.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mkdocs-material/9.5.3/9.5.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>squidfunk/mkdocs-material (mkdocs-material)</summary>

###
[`v9.5.4`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.5.4):
mkdocs-material-9.5.4

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.5.3...9.5.4)

- Fixed
[#&#8203;6645](https://togithub.com/squidfunk/mkdocs-material/issues/6645):
Local storage with invalid value can break site
- Fixed
[#&#8203;6635](https://togithub.com/squidfunk/mkdocs-material/issues/6635):
Tags icons before default ignored if default is set

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-16 18:54:09 +00:00
Best Olunusi b727dd00c5
feat: add targeting validation (#1146)
- adds targeting validation
- updates sample json files
- updates schemas modules to most recent release

Closes #1140 

Signed-off-by: Best Olunusi <olunusibest@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2024-01-16 13:28:20 -05:00
renovate[bot] 2adfa573a2
chore(deps): update actions/deploy-pages digest to 87c3283 (#1144)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | digest | `7a9bd94` -> `87c3283` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 18:26:02 +00:00
renovate[bot] 12e91d4d20
chore(deps): update dependency @types/react to v18.2.48 (#1147)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.47` ->
`18.2.48`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.47/18.2.48)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.48?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.48?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.47/18.2.48?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.47/18.2.48?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 16:23:09 +00:00
renovate[bot] ba54234330
fix(deps): update dependency react-use to v17.4.3 (#1145)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [react-use](https://togithub.com/streamich/react-use) | [`17.4.2` ->
`17.4.3`](https://renovatebot.com/diffs/npm/react-use/17.4.2/17.4.3) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-use/17.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-use/17.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-use/17.4.2/17.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-use/17.4.2/17.4.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>streamich/react-use (react-use)</summary>

###
[`v17.4.3`](https://togithub.com/streamich/react-use/blob/HEAD/CHANGELOG.md#1743-2024-01-13)

[Compare
Source](https://togithub.com/streamich/react-use/compare/v17.4.2...v17.4.3)

##### Bug Fixes

- update useMedia hook to use recommended approach of MDN
([e7379f0](e7379f0887))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-13 20:16:24 +00:00
Michael Beemer 3efe321617
docs: add provider to the documentation (#1027)
## This PR

- adds a section on the install page that lists the available providers
- includes the readmes of the available providers

### How to test

- Install:
https://deploy-preview-1027--polite-licorice-3db33c.netlify.app/installation/
- Overview Page:
https://deploy-preview-1027--polite-licorice-3db33c.netlify.app/providers/
- Go:
https://deploy-preview-1027--polite-licorice-3db33c.netlify.app/providers/go/
- Java:
https://deploy-preview-1027--polite-licorice-3db33c.netlify.app/providers/java/
- Node.JS:
https://deploy-preview-1027--polite-licorice-3db33c.netlify.app/providers/nodejs/
- PHP:
https://deploy-preview-1027--polite-licorice-3db33c.netlify.app/providers/php/
- .NET:
https://deploy-preview-1027--polite-licorice-3db33c.netlify.app/providers/dotnet/
- Web:
https://deploy-preview-1027--polite-licorice-3db33c.netlify.app/providers/web/

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-12 17:26:05 -05:00
renovate[bot] 55dc8cfae6
chore(deps): update typescript-eslint monorepo to v6.18.1 (#1134)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.17.0` ->
`6.18.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.17.0/6.18.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.17.0/6.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.17.0/6.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.17.0` ->
`6.18.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.17.0/6.18.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.17.0/6.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.17.0/6.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.18.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6181-2024-01-08)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.18.0...v6.18.1)

##### 🩹 Fixes

- **eslint-plugin:** \[no-non-null-assertion] provide valid fix when
member access is on next line

- **eslint-plugin:** \[no-unnecessary-condition] improve checking
optional callee

- **eslint-plugin:** \[prefer-readonly] support modifiers of unions and
intersections

- **eslint-plugin:** \[switch-exhaustiveness-check] fix new
allowDefaultCaseForExhaustiveSwitch option

##### ❤️  Thank You

-   auvred
-   James
-   Josh Goldberg 
-   YeonJuan

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v6.18.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6180-2024-01-06)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.17.0...v6.18.0)

##### 🚀 Features

-   **typescript-estree:** throw on invalid update expressions

- **eslint-plugin:** \[no-var-requires, no-require-imports] allow option

##### ❤️  Thank You

-   auvred
-   Joshua Chen

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.18.1`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6181-2024-01-08)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.18.0...v6.18.1)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

###
[`v6.18.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6180-2024-01-06)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.17.0...v6.18.0)

This was a version bump only for parser to align it with other projects,
there were no code changes.

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 04:23:08 +00:00
renovate[bot] 32c058b157
chore(deps): update dependency @types/react to v18.2.47 (#1133)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.46` ->
`18.2.47`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.46/18.2.47)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.47?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.47?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.46/18.2.47?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.46/18.2.47?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 22:46:03 +00:00
renovate[bot] e27e7954f0
chore(deps): update github/codeql-action digest to e5f05b8 (#1135)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `012739e` -> `e5f05b8` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 19:10:45 +00:00
renovate[bot] 0b7de9a044
chore(deps): update anchore/sbom-action digest to c7f031d (#1136)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `7191336` -> `c7f031d` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 16:50:08 +00:00
Austin Drenski a598407211
docs: Update flag-definitions.md (#1132)
Signed-off-by: Austin Drenski <austin@austindrenski.io>
2024-01-08 09:52:36 -05:00
renovate[bot] e4ffa88076
fix(deps): update dependency @openfeature/flagd-core to v0.1.8 (#1137)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @&#8203;openfeature/flagd-core | [`0.1.7` ->
`0.1.8`](https://renovatebot.com/diffs/npm/@openfeature%2fflagd-core/0.1.7/0.1.8)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@openfeature%2fflagd-core/0.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@openfeature%2fflagd-core/0.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@openfeature%2fflagd-core/0.1.7/0.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@openfeature%2fflagd-core/0.1.7/0.1.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-08 09:52:05 -05:00
Michael Beemer 029874c1e2
docs: update the fractional playground description (#1131)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-08 09:48:42 -05:00
Best Olunusi 933aaa9aae
fix(playground): remove unnecessary context properties in 'enable by timestamp' scenario (#1127)
Signed-off-by: Best Olunusi <olunusibest@gmail.com>
2024-01-05 14:34:19 -05:00
Best Olunusi b9d30e0a52
fix: use correct link in sources flag helper text in start cmd (#1126)
Signed-off-by: Best Olunusi <olunusibest@gmail.com>
2024-01-05 14:21:23 -05:00
renovate[bot] b6f990a2e6
chore(deps): update dependency vite to v5.0.11 (#1128)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.0.10` ->
`5.0.11`](https://renovatebot.com/diffs/npm/vite/5.0.10/5.0.11) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.0.10/5.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.0.10/5.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.0.11`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small5011-2024-01-05-small)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.0.10...v5.0.11)

- fix: don't pretransform classic script links
([#&#8203;15361](https://togithub.com/vitejs/vite/issues/15361))
([19e3c9a](https://togithub.com/vitejs/vite/commit/19e3c9a)), closes
[#&#8203;15361](https://togithub.com/vitejs/vite/issues/15361)
- fix: inject `__vite__mapDeps` code before sourcemap file comment
([#&#8203;15483](https://togithub.com/vitejs/vite/issues/15483))
([d2aa096](https://togithub.com/vitejs/vite/commit/d2aa096)), closes
[#&#8203;15483](https://togithub.com/vitejs/vite/issues/15483)
- fix(assets): avoid splitting `,` inside base64 value of `srcset`
attribute
([#&#8203;15422](https://togithub.com/vitejs/vite/issues/15422))
([8de7bd2](https://togithub.com/vitejs/vite/commit/8de7bd2)), closes
[#&#8203;15422](https://togithub.com/vitejs/vite/issues/15422)
- fix(html): handle offset magic-string slice error
([#&#8203;15435](https://togithub.com/vitejs/vite/issues/15435))
([5ea9edb](https://togithub.com/vitejs/vite/commit/5ea9edb)), closes
[#&#8203;15435](https://togithub.com/vitejs/vite/issues/15435)
- chore(deps): update dependency strip-literal to v2
([#&#8203;15475](https://togithub.com/vitejs/vite/issues/15475))
([49d21fe](https://togithub.com/vitejs/vite/commit/49d21fe)), closes
[#&#8203;15475](https://togithub.com/vitejs/vite/issues/15475)
- chore(deps): update tj-actions/changed-files action to v41
([#&#8203;15476](https://togithub.com/vitejs/vite/issues/15476))
([2a540ee](https://togithub.com/vitejs/vite/commit/2a540ee)), closes
[#&#8203;15476](https://togithub.com/vitejs/vite/issues/15476)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-05 15:29:15 +00:00
renovate[bot] 2d03bc9276
chore(deps): update docker/metadata-action digest to dbef880 (#1118)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `9dc751f` -> `dbef880` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-05 12:29:35 +00:00
github-actions[bot] 9bc9cae340
chore: release main (#1105)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.8.1</summary>

##
[0.8.1](https://github.com/open-feature/flagd/compare/flagd/v0.8.0...flagd/v0.8.1)
(2024-01-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.3
([#1104](https://github.com/open-feature/flagd/issues/1104))
([b6c00c7](b6c00c7615))
* **deps:** update module github.com/spf13/viper to v1.18.2
([#1069](https://github.com/open-feature/flagd/issues/1069))
([f0d6206](f0d620698a))
</details>

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

##
[0.4.1](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.4.0...flagd-proxy/v0.4.1)
(2024-01-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.3
([#1104](https://github.com/open-feature/flagd/issues/1104))
([b6c00c7](b6c00c7615))
* **deps:** update module github.com/spf13/viper to v1.18.2
([#1069](https://github.com/open-feature/flagd/issues/1069))
([f0d6206](f0d620698a))
</details>

<details><summary>core: 0.7.4</summary>

##
[0.7.4](https://github.com/open-feature/flagd/compare/core/v0.7.3...core/v0.7.4)
(2024-01-04)


### 🐛 Bug Fixes

* add custom marshalling options
([#1117](https://github.com/open-feature/flagd/issues/1117))
([e8e49de](e8e49de909))
* **deps:** update kubernetes packages to v0.29.0
([#1082](https://github.com/open-feature/flagd/issues/1082))
([751a79a](751a79a165))
* **deps:** update module connectrpc.com/connect to v1.14.0
([#1108](https://github.com/open-feature/flagd/issues/1108))
([0a41aca](0a41acae08))
* **deps:** update module github.com/prometheus/client_golang to v1.18.0
([#1110](https://github.com/open-feature/flagd/issues/1110))
([745bbb0](745bbb079a))
* **deps:** update module golang.org/x/crypto to v0.17.0 [security]
([#1090](https://github.com/open-feature/flagd/issues/1090))
([26681de](26681ded73))
* **deps:** update module google.golang.org/protobuf to v1.32.0
([#1106](https://github.com/open-feature/flagd/issues/1106))
([e0d3b34](e0d3b34aa2))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2024-01-04 10:55:24 -05:00
Michael Beemer e8e49de909
fix: add custom marshalling options (#1117)
## This PR

- add custom marshalling options

### Related Issues

Fixes #1116

### Notes

I manually tested to confirm the fix is working. However, it's currently
not automatically tested because the issue only affects HTTP-based
requests, and the E2E tests use gRPC. I'll create a follow-up task to
expand the E2E test suite to include HTTP tests.

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2024-01-04 10:39:05 -05:00
renovate[bot] d179a1b3e8
chore(deps): update anchore/sbom-action digest to 7191336 (#1114)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `5ecf649` -> `7191336` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-04 00:04:55 +00:00
renovate[bot] e644ea178d
chore(deps): update dependency node to v20 (#1099)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [node](https://togithub.com/nodejs/node) | major | `v18` -> `20` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

###
[`v20.10.0`](https://togithub.com/nodejs/node/compare/v20.9.0...v20.10.0)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.9.0...v20.10.0)

###
[`v20.9.0`](https://togithub.com/nodejs/node/compare/v20.8.1...v20.9.0)

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.8.1...v20.9.0)

### [`v20.8.1`](https://togithub.com/nodejs/node/releases/tag/v20.8.1):
2023-10-13, Version 20.8.1 (Current), @&#8203;RafaelGSS

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.8.0...v20.8.1)

This is a security release.

##### Notable Changes

The following CVEs are fixed in this release:

-
[CVE-2023-44487](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-44487):
`nghttp2` Security Release (High)
-
[CVE-2023-45143](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-45143):
`undici` Security Release (High)
-
[CVE-2023-39332](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39332):
Path traversal through path stored in Uint8Array (High)
-
[CVE-2023-39331](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39331):
Permission model improperly protects against path traversal (High)
-
[CVE-2023-38552](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-38552):
Integrity checks according to policies can be circumvented (Medium)
-
[CVE-2023-39333](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-39333):
Code injection via WebAssembly export names (Low)

More detailed information on each of the vulnerabilities can be found in
[October 2023 Security
Releases](https://nodejs.org/en/blog/vulnerability/october-2023-security-releases/)
blog post.

##### Commits

- \[[`c86883e844`](https://togithub.com/nodejs/node/commit/c86883e844)]
- **deps**: update nghttp2 to 1.57.0 (James M Snell)
[#&#8203;50121](https://togithub.com/nodejs/node/pull/50121)
- \[[`2860631359`](https://togithub.com/nodejs/node/commit/2860631359)]
- **deps**: update undici to v5.26.3 (Matteo Collina)
[#&#8203;50153](https://togithub.com/nodejs/node/pull/50153)
- \[[`cd37838bf8`](https://togithub.com/nodejs/node/commit/cd37838bf8)]
- **lib**: let deps require `node` prefixed modules (Matthew Aitken)
[#&#8203;50047](https://togithub.com/nodejs/node/pull/50047)
- \[[`f5c90b2951`](https://togithub.com/nodejs/node/commit/f5c90b2951)]
- **module**: fix code injection through export names (Tobias Nießen)
[nodejs-private/node-private#461](https://togithub.com/nodejs-private/node-private/pull/461)
- \[[`fa5dae1944`](https://togithub.com/nodejs/node/commit/fa5dae1944)]
- **permission**: fix Uint8Array path traversal (Tobias Nießen)
[nodejs-private/node-private#456](https://togithub.com/nodejs-private/node-private/pull/456)
- \[[`cd35275111`](https://togithub.com/nodejs/node/commit/cd35275111)]
- **permission**: improve path traversal protection (Tobias Nießen)
[nodejs-private/node-private#456](https://togithub.com/nodejs-private/node-private/pull/456)
- \[[`a4cb7fc7c0`](https://togithub.com/nodejs/node/commit/a4cb7fc7c0)]
- **policy**: use tamper-proof integrity check function (Tobias Nießen)
[nodejs-private/node-private#462](https://togithub.com/nodejs-private/node-private/pull/462)

### [`v20.8.0`](https://togithub.com/nodejs/node/releases/tag/v20.8.0):
2023-09-28, Version 20.8.0 (Current), @&#8203;ruyadorno

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.7.0...v20.8.0)

##### Notable Changes

##### Stream performance improvements

Performance improvements to writable and readable streams, improving the
creation and destruction by ±15% and reducing the memory overhead each
stream takes in Node.js

Contributed by Benjamin Gruenbaum in
[#&#8203;49745](https://togithub.com/nodejs/node/pull/49745) and Raz
Luvaton in [#&#8203;49834](https://togithub.com/nodejs/node/pull/49834).

Performance improvements for readable webstream, improving readable
stream async iterator consumption by ±140% and improving readable stream
`pipeTo` consumption by ±60%

Contributed by Raz Luvaton in
[#&#8203;49662](https://togithub.com/nodejs/node/pull/49662) and
[#&#8203;49690](https://togithub.com/nodejs/node/pull/49690).

##### Rework of memory management in `vm` APIs with the
`importModuleDynamically` option

This rework addressed a series of long-standing memory leaks and
use-after-free issues in the following APIs that support
`importModuleDynamically`:

-   `vm.Script`
-   `vm.compileFunction`
-   `vm.SyntheticModule`
-   `vm.SourceTextModule`

This should enable affected users (in particular Jest users) to upgrade
from older versions of Node.js.

Contributed by Joyee Cheung in
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510).

##### Other notable changes

- \[[`32d4d29d02`](https://togithub.com/nodejs/node/commit/32d4d29d02)]
- **deps**: add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung)
[#&#8203;49874](https://togithub.com/nodejs/node/pull/49874)
- \[[`0e686d096b`](https://togithub.com/nodejs/node/commit/0e686d096b)]
- **doc**: deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia
Medeiros) [#&#8203;49683](https://togithub.com/nodejs/node/pull/49683)
- \[[`a5dd057540`](https://togithub.com/nodejs/node/commit/a5dd057540)]
- **doc**: deprecate `util.toUSVString` (Yagiz Nizipli)
[#&#8203;49725](https://togithub.com/nodejs/node/pull/49725)
- \[[`7b6a73172f`](https://togithub.com/nodejs/node/commit/7b6a73172f)]
- **doc**: deprecate calling `promisify` on a function that returns a
promise (Antoine du Hamel)
[#&#8203;49647](https://togithub.com/nodejs/node/pull/49647)
- \[[`1beefd5f16`](https://togithub.com/nodejs/node/commit/1beefd5f16)]
- **esm**: set all hooks as release candidate (Geoffrey Booth)
[#&#8203;49597](https://togithub.com/nodejs/node/pull/49597)
- \[[`b0ce78a75b`](https://togithub.com/nodejs/node/commit/b0ce78a75b)]
- **module**: fix the leak in SourceTextModule and ContextifySript
(Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`4e578f8ab1`](https://togithub.com/nodejs/node/commit/4e578f8ab1)]
- **module**: fix leak of vm.SyntheticModule (Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`69e4218772`](https://togithub.com/nodejs/node/commit/69e4218772)]
- **module**: use symbol in WeakMap to manage host defined options
(Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`14ece0aa76`](https://togithub.com/nodejs/node/commit/14ece0aa76)]
- **(SEMVER-MINOR)** **src**: allow embedders to override
NODE_MODULE_VERSION (Cheng Zhao)
[#&#8203;49279](https://togithub.com/nodejs/node/pull/49279)
- \[[`9fd67fbff0`](https://togithub.com/nodejs/node/commit/9fd67fbff0)]
- **stream**: use bitmap in writable state (Raz Luvaton)
[#&#8203;49834](https://togithub.com/nodejs/node/pull/49834)
- \[[`0ccd4638ac`](https://togithub.com/nodejs/node/commit/0ccd4638ac)]
- **stream**: use bitmap in readable state (Benjamin Gruenbaum)
[#&#8203;49745](https://togithub.com/nodejs/node/pull/49745)
- \[[`7c5e322346`](https://togithub.com/nodejs/node/commit/7c5e322346)]
- **stream**: improve webstream readable async iterator performance (Raz
Luvaton) [#&#8203;49662](https://togithub.com/nodejs/node/pull/49662)
- \[[`80b342cc38`](https://togithub.com/nodejs/node/commit/80b342cc38)]
- **(SEMVER-MINOR)** **test_runner**: accept `testOnly` in `run` (Moshe
Atlow) [#&#8203;49753](https://togithub.com/nodejs/node/pull/49753)
- \[[`17a05b141d`](https://togithub.com/nodejs/node/commit/17a05b141d)]
- **(SEMVER-MINOR)** **test_runner**: add junit reporter (Moshe Atlow)
[#&#8203;49614](https://togithub.com/nodejs/node/pull/49614)

##### Commits

- \[[`4879e3fbbe`](https://togithub.com/nodejs/node/commit/4879e3fbbe)]
- **benchmark**: add a benchmark for read() of ReadableStreams (Debadree
Chatterjee) [#&#8203;49622](https://togithub.com/nodejs/node/pull/49622)
- \[[`78a6c73157`](https://togithub.com/nodejs/node/commit/78a6c73157)]
- **benchmark**: shorten pipe-to by reducing number of chunks (Raz
Luvaton) [#&#8203;49577](https://togithub.com/nodejs/node/pull/49577)
- \[[`4126a6e4c9`](https://togithub.com/nodejs/node/commit/4126a6e4c9)]
- **benchmark**: fix webstream pipe-to (Raz Luvaton)
[#&#8203;49552](https://togithub.com/nodejs/node/pull/49552)
- \[[`6010a91825`](https://togithub.com/nodejs/node/commit/6010a91825)]
- **bootstrap**: do not expand argv1 for snapshots (Joyee Cheung)
[#&#8203;49506](https://togithub.com/nodejs/node/pull/49506)
- \[[`8480280c4b`](https://togithub.com/nodejs/node/commit/8480280c4b)]
- **bootstrap**: only use the isolate snapshot when compiling code cache
(Joyee Cheung)
[#&#8203;49288](https://togithub.com/nodejs/node/pull/49288)
- \[[`b30754aa87`](https://togithub.com/nodejs/node/commit/b30754aa87)]
- **build**: run embedtest using node executable (Joyee Cheung)
[#&#8203;49506](https://togithub.com/nodejs/node/pull/49506)
- \[[`31db0b8e2b`](https://togithub.com/nodejs/node/commit/31db0b8e2b)]
- **build**: add --write-snapshot-as-array-literals to configure.py
(Joyee Cheung)
[#&#8203;49312](https://togithub.com/nodejs/node/pull/49312)
- \[[`6fcb51d3ba`](https://togithub.com/nodejs/node/commit/6fcb51d3ba)]
- **debugger**: use `internal/url.URL` instead of `url.parse`
(LiviaMedeiros)
[#&#8203;49590](https://togithub.com/nodejs/node/pull/49590)
- \[[`32d4d29d02`](https://togithub.com/nodejs/node/commit/32d4d29d02)]
- **deps**: add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung)
[#&#8203;49874](https://togithub.com/nodejs/node/pull/49874)
- \[[`ad37cadc3f`](https://togithub.com/nodejs/node/commit/ad37cadc3f)]
- **deps**: V8: backport
[`de9a5de`](https://togithub.com/nodejs/node/commit/de9a5de2274f) (Joyee
Cheung) [#&#8203;49703](https://togithub.com/nodejs/node/pull/49703)
- \[[`cdd1c66222`](https://togithub.com/nodejs/node/commit/cdd1c66222)]
- **deps**: V8: cherry-pick
[`b33bf2d`](https://togithub.com/nodejs/node/commit/b33bf2dfd261) (Joyee
Cheung) [#&#8203;49703](https://togithub.com/nodejs/node/pull/49703)
- \[[`61d18d6473`](https://togithub.com/nodejs/node/commit/61d18d6473)]
- **deps**: update undici to 5.24.0 (Node.js GitHub Bot)
[#&#8203;49559](https://togithub.com/nodejs/node/pull/49559)
- \[[`b8a4fef393`](https://togithub.com/nodejs/node/commit/b8a4fef393)]
- **deps**: remove pthread-fixes.c from uv.gyp (Ben Noordhuis)
[#&#8203;49744](https://togithub.com/nodejs/node/pull/49744)
- \[[`6c86c0683c`](https://togithub.com/nodejs/node/commit/6c86c0683c)]
- **deps**: update googletest to
[`d1467f5`](https://togithub.com/nodejs/node/commit/d1467f5) (Node.js
GitHub Bot) [#&#8203;49676](https://togithub.com/nodejs/node/pull/49676)
- \[[`1424404742`](https://togithub.com/nodejs/node/commit/1424404742)]
- **deps**: update nghttp2 to 1.56.0 (Node.js GitHub Bot)
[#&#8203;49582](https://togithub.com/nodejs/node/pull/49582)
- \[[`15b54ff95d`](https://togithub.com/nodejs/node/commit/15b54ff95d)]
- **deps**: update googletest to
[`8a6feab`](https://togithub.com/nodejs/node/commit/8a6feab) (Node.js
GitHub Bot) [#&#8203;49463](https://togithub.com/nodejs/node/pull/49463)
- \[[`2ceab877c2`](https://togithub.com/nodejs/node/commit/2ceab877c2)]
- **deps**: update corepack to 0.20.0 (Node.js GitHub Bot)
[#&#8203;49464](https://togithub.com/nodejs/node/pull/49464)
- \[[`4814872ddc`](https://togithub.com/nodejs/node/commit/4814872ddc)]
- **doc**: fix `DEP0176` number (LiviaMedeiros)
[#&#8203;49858](https://togithub.com/nodejs/node/pull/49858)
- \[[`0e686d096b`](https://togithub.com/nodejs/node/commit/0e686d096b)]
- **doc**: deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia
Medeiros) [#&#8203;49683](https://togithub.com/nodejs/node/pull/49683)
- \[[`5877c403a2`](https://togithub.com/nodejs/node/commit/5877c403a2)]
- **doc**: add mertcanaltin as a triager (mert.altin)
[#&#8203;49826](https://togithub.com/nodejs/node/pull/49826)
- \[[`864fe56432`](https://togithub.com/nodejs/node/commit/864fe56432)]
- **doc**: add `git node backport` way to the backporting guide (Raz
Luvaton) [#&#8203;49760](https://togithub.com/nodejs/node/pull/49760)
- \[[`e0f93492d5`](https://togithub.com/nodejs/node/commit/e0f93492d5)]
- **doc**: improve documentation about ICU data fallback (Joyee Cheung)
[#&#8203;49666](https://togithub.com/nodejs/node/pull/49666)
- \[[`a5dd057540`](https://togithub.com/nodejs/node/commit/a5dd057540)]
- **doc**: deprecate `util.toUSVString` (Yagiz Nizipli)
[#&#8203;49725](https://togithub.com/nodejs/node/pull/49725)
- \[[`774c1cfd52`](https://togithub.com/nodejs/node/commit/774c1cfd52)]
- **doc**: add missing function call to example for `util.promisify`
(Jungku Lee)
[#&#8203;49719](https://togithub.com/nodejs/node/pull/49719)
- \[[`fe78a34845`](https://togithub.com/nodejs/node/commit/fe78a34845)]
- **doc**: update output of example in `mimeParams.set()` (Deokjin Kim)
[#&#8203;49718](https://togithub.com/nodejs/node/pull/49718)
- \[[`4175ea33bd`](https://togithub.com/nodejs/node/commit/4175ea33bd)]
- **doc**: add missed `inspect` with numericSeparator to example
(Deokjin Kim)
[#&#8203;49717](https://togithub.com/nodejs/node/pull/49717)
- \[[`3a88571972`](https://togithub.com/nodejs/node/commit/3a88571972)]
- **doc**: fix history comments (Antoine du Hamel)
[#&#8203;49701](https://togithub.com/nodejs/node/pull/49701)
- \[[`db4ab1ccbb`](https://togithub.com/nodejs/node/commit/db4ab1ccbb)]
- **doc**: add missing history info for `import.meta.resolve` (Antoine
du Hamel) [#&#8203;49700](https://togithub.com/nodejs/node/pull/49700)
- \[[`a304d1ee19`](https://togithub.com/nodejs/node/commit/a304d1ee19)]
- **doc**: link maintaining deps to pull-request.md (Marco Ippolito)
[#&#8203;49716](https://togithub.com/nodejs/node/pull/49716)
- \[[`35294486ad`](https://togithub.com/nodejs/node/commit/35294486ad)]
- **doc**: fix print results in `events` (Jungku Lee)
[#&#8203;49548](https://togithub.com/nodejs/node/pull/49548)
- \[[`9f0b0e15c9`](https://togithub.com/nodejs/node/commit/9f0b0e15c9)]
- **doc**: alphabetize cli.md sections (Geoffrey Booth)
[#&#8203;49668](https://togithub.com/nodejs/node/pull/49668)
- \[[`7b6a73172f`](https://togithub.com/nodejs/node/commit/7b6a73172f)]
- **doc**: deprecate calling `promisify` on a function that returns a
promise (Antoine du Hamel)
[#&#8203;49647](https://togithub.com/nodejs/node/pull/49647)
- \[[`d316b32fff`](https://togithub.com/nodejs/node/commit/d316b32fff)]
- **doc**: update `corepack.md` to account for 0.20.0 changes (Antoine
du Hamel) [#&#8203;49486](https://togithub.com/nodejs/node/pull/49486)
- \[[`c2eac7dc7c`](https://togithub.com/nodejs/node/commit/c2eac7dc7c)]
- **doc**: remove `@anonrig` from performance initiative (Yagiz Nizipli)
[#&#8203;49641](https://togithub.com/nodejs/node/pull/49641)
- \[[`3d839fbf87`](https://togithub.com/nodejs/node/commit/3d839fbf87)]
- **doc**: mark Node.js 16 as End-of-Life (Richard Lau)
[#&#8203;49651](https://togithub.com/nodejs/node/pull/49651)
- \[[`53fb5aead8`](https://togithub.com/nodejs/node/commit/53fb5aead8)]
- **doc**: save user preference for JS flavor (Vidar Eldøy)
[#&#8203;49526](https://togithub.com/nodejs/node/pull/49526)
- \[[`e3594d5658`](https://togithub.com/nodejs/node/commit/e3594d5658)]
- **doc**: update documentation for node:process warning (Shubham
Pandey) [#&#8203;49517](https://togithub.com/nodejs/node/pull/49517)
- \[[`8e033c3963`](https://togithub.com/nodejs/node/commit/8e033c3963)]
- **doc**: rename possibly confusing variable and CSS class (Antoine du
Hamel) [#&#8203;49536](https://togithub.com/nodejs/node/pull/49536)
- \[[`d0e0eb4bb3`](https://togithub.com/nodejs/node/commit/d0e0eb4bb3)]
- **doc**: update outdated history info (Antoine du Hamel)
[#&#8203;49530](https://togithub.com/nodejs/node/pull/49530)
- \[[`b4724e2e3a`](https://togithub.com/nodejs/node/commit/b4724e2e3a)]
- **doc**: close a parenthesis (Sébastien Règne)
[#&#8203;49525](https://togithub.com/nodejs/node/pull/49525)
- \[[`0471c5798e`](https://togithub.com/nodejs/node/commit/0471c5798e)]
- **doc**: cast GetInternalField() return type to v8::Value in addons.md
(Joyee Cheung)
[#&#8203;49439](https://togithub.com/nodejs/node/pull/49439)
- \[[`9f8bea3dda`](https://togithub.com/nodejs/node/commit/9f8bea3dda)]
- **doc**: fix documentation for input option in child_process (Ariel
Weiss) [#&#8203;49481](https://togithub.com/nodejs/node/pull/49481)
- \[[`f3fea92f8a`](https://togithub.com/nodejs/node/commit/f3fea92f8a)]
- **doc**: fix missing imports in `test.run` code examples (Oshri
Asulin) [#&#8203;49489](https://togithub.com/nodejs/node/pull/49489)
- \[[`e426b77b67`](https://togithub.com/nodejs/node/commit/e426b77b67)]
- **doc**: fix documentation for fs.createWriteStream highWaterMark
option (Mert Can Altın)
[#&#8203;49456](https://togithub.com/nodejs/node/pull/49456)
- \[[`2b119108ff`](https://togithub.com/nodejs/node/commit/2b119108ff)]
- **doc**: updated releasers instructions for node.js website (Claudio
W) [#&#8203;49427](https://togithub.com/nodejs/node/pull/49427)
- \[[`b9d4a80183`](https://togithub.com/nodejs/node/commit/b9d4a80183)]
- **doc**: edit `import.meta.resolve` documentation (Antoine du Hamel)
[#&#8203;49247](https://togithub.com/nodejs/node/pull/49247)
- \[[`f67433f666`](https://togithub.com/nodejs/node/commit/f67433f666)]
- **doc,tools**: switch to `@node-core/utils` (Michaël Zasso)
[#&#8203;49851](https://togithub.com/nodejs/node/pull/49851)
- \[[`142e256fc5`](https://togithub.com/nodejs/node/commit/142e256fc5)]
- **errors**: improve classRegExp in errors.js (Uzlopak)
[#&#8203;49643](https://togithub.com/nodejs/node/pull/49643)
- \[[`6377f1bce2`](https://togithub.com/nodejs/node/commit/6377f1bce2)]
- **errors**: use `determineSpecificType` in more error messages
(Antoine du Hamel)
[#&#8203;49580](https://togithub.com/nodejs/node/pull/49580)
- \[[`05f0fcb4c4`](https://togithub.com/nodejs/node/commit/05f0fcb4c4)]
- **esm**: identify parent importing a url with invalid host (Jacob
Smith) [#&#8203;49736](https://togithub.com/nodejs/node/pull/49736)
- \[[`8a6f5fb8f3`](https://togithub.com/nodejs/node/commit/8a6f5fb8f3)]
- **esm**: fix return type of `import.meta.resolve` (Antoine du Hamel)
[#&#8203;49698](https://togithub.com/nodejs/node/pull/49698)
- \[[`a6140f1b8c`](https://togithub.com/nodejs/node/commit/a6140f1b8c)]
- **esm**: update loaders warning (Geoffrey Booth)
[#&#8203;49633](https://togithub.com/nodejs/node/pull/49633)
- \[[`521a9327e0`](https://togithub.com/nodejs/node/commit/521a9327e0)]
- **esm**: fix support for `URL` instances in `register` (Antoine du
Hamel) [#&#8203;49655](https://togithub.com/nodejs/node/pull/49655)
- \[[`3a9ea0925a`](https://togithub.com/nodejs/node/commit/3a9ea0925a)]
- **esm**: clarify ERR_REQUIRE_ESM errors (Daniel Compton)
[#&#8203;49521](https://togithub.com/nodejs/node/pull/49521)
- \[[`1beefd5f16`](https://togithub.com/nodejs/node/commit/1beefd5f16)]
- **esm**: set all hooks as release candidate (Geoffrey Booth)
[#&#8203;49597](https://togithub.com/nodejs/node/pull/49597)
- \[[`be48267888`](https://togithub.com/nodejs/node/commit/be48267888)]
- **esm**: remove return value for `Module.register` (Antoine du Hamel)
[#&#8203;49529](https://togithub.com/nodejs/node/pull/49529)
- \[[`e74a075124`](https://togithub.com/nodejs/node/commit/e74a075124)]
- **esm**: refactor test-esm-loader-resolve-type (Geoffrey Booth)
[#&#8203;49493](https://togithub.com/nodejs/node/pull/49493)
- \[[`17823b3533`](https://togithub.com/nodejs/node/commit/17823b3533)]
- **esm**: refactor test-esm-named-exports (Geoffrey Booth)
[#&#8203;49493](https://togithub.com/nodejs/node/pull/49493)
- \[[`f34bd15ac1`](https://togithub.com/nodejs/node/commit/f34bd15ac1)]
- **esm**: refactor mocking test (Geoffrey Booth)
[#&#8203;49465](https://togithub.com/nodejs/node/pull/49465)
- \[[`ec323bbd99`](https://togithub.com/nodejs/node/commit/ec323bbd99)]
- **fs**: replace `SetMethodNoSideEffect` in node_file (CanadaHonk)
[#&#8203;49857](https://togithub.com/nodejs/node/pull/49857)
- \[[`6acf800123`](https://togithub.com/nodejs/node/commit/6acf800123)]
- **fs**: improve error performance for `unlinkSync` (CanadaHonk)
[#&#8203;49856](https://togithub.com/nodejs/node/pull/49856)
- \[[`31702c9403`](https://togithub.com/nodejs/node/commit/31702c9403)]
- **fs**: improve `readFileSync` with file descriptors (Yagiz Nizipli)
[#&#8203;49691](https://togithub.com/nodejs/node/pull/49691)
- \[[`835f9fe7b9`](https://togithub.com/nodejs/node/commit/835f9fe7b9)]
- **fs**: fix file descriptor validator (Yagiz Nizipli)
[#&#8203;49752](https://togithub.com/nodejs/node/pull/49752)
- \[[`b618fe262f`](https://togithub.com/nodejs/node/commit/b618fe262f)]
- **fs**: improve error performance of `opendirSync` (Yagiz Nizipli)
[#&#8203;49705](https://togithub.com/nodejs/node/pull/49705)
- \[[`938471ef55`](https://togithub.com/nodejs/node/commit/938471ef55)]
- **fs**: improve error performance of sync methods (Yagiz Nizipli)
[#&#8203;49593](https://togithub.com/nodejs/node/pull/49593)
- \[[`db3fc6d087`](https://togithub.com/nodejs/node/commit/db3fc6d087)]
- **fs**: fix readdir and opendir recursive with unknown file types
(William Marlow)
[#&#8203;49603](https://togithub.com/nodejs/node/pull/49603)
- \[[`0f020ed22d`](https://togithub.com/nodejs/node/commit/0f020ed22d)]
- **gyp**: put cctest filenames in variables (Cheng Zhao)
[#&#8203;49178](https://togithub.com/nodejs/node/pull/49178)
- \[[`0ce1e94d12`](https://togithub.com/nodejs/node/commit/0ce1e94d12)]
- **lib**: update encoding sets in `WHATWG API` (Jungku Lee)
[#&#8203;49610](https://togithub.com/nodejs/node/pull/49610)
- \[[`efd6815a7a`](https://togithub.com/nodejs/node/commit/efd6815a7a)]
- **lib**: fix `internalBinding` typings (Yagiz Nizipli)
[#&#8203;49742](https://togithub.com/nodejs/node/pull/49742)
- \[[`1287d5b74e`](https://togithub.com/nodejs/node/commit/1287d5b74e)]
- **lib**: allow byob reader for 'blob.stream()' (Debadree Chatterjee)
[#&#8203;49713](https://togithub.com/nodejs/node/pull/49713)
- \[[`bbc710522d`](https://togithub.com/nodejs/node/commit/bbc710522d)]
- **lib**: reset the cwd cache before execution (Maël Nison)
[#&#8203;49684](https://togithub.com/nodejs/node/pull/49684)
- \[[`f62d649e4d`](https://togithub.com/nodejs/node/commit/f62d649e4d)]
- **lib**: use internal `fileURLToPath` (Deokjin Kim)
[#&#8203;49558](https://togithub.com/nodejs/node/pull/49558)
- \[[`e515046941`](https://togithub.com/nodejs/node/commit/e515046941)]
- **lib**: use internal `pathToFileURL` (Livia Medeiros)
[#&#8203;49553](https://togithub.com/nodejs/node/pull/49553)
- \[[`00608e8070`](https://togithub.com/nodejs/node/commit/00608e8070)]
- **lib**: check SharedArrayBuffer availability in freeze_intrinsics.js
(Milan Burda)
[#&#8203;49482](https://togithub.com/nodejs/node/pull/49482)
- \[[`8bfbe7079c`](https://togithub.com/nodejs/node/commit/8bfbe7079c)]
- **meta**: fix linter error (Antoine du Hamel)
[#&#8203;49755](https://togithub.com/nodejs/node/pull/49755)
- \[[`58f7a9e096`](https://togithub.com/nodejs/node/commit/58f7a9e096)]
- **meta**: add primordials strategic initiative (Benjamin Gruenbaum)
[#&#8203;49706](https://togithub.com/nodejs/node/pull/49706)
- \[[`5366027756`](https://togithub.com/nodejs/node/commit/5366027756)]
- **meta**: bump github/codeql-action from 2.21.2 to 2.21.5
(dependabot\[bot])
[#&#8203;49438](https://togithub.com/nodejs/node/pull/49438)
- \[[`fe26b74082`](https://togithub.com/nodejs/node/commit/fe26b74082)]
- **meta**: bump rtCamp/action-slack-notify from 2.2.0 to 2.2.1
(dependabot\[bot])
[#&#8203;49437](https://togithub.com/nodejs/node/pull/49437)
- \[[`b0ce78a75b`](https://togithub.com/nodejs/node/commit/b0ce78a75b)]
- **module**: fix the leak in SourceTextModule and ContextifySript
(Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`4e578f8ab1`](https://togithub.com/nodejs/node/commit/4e578f8ab1)]
- **module**: fix leak of vm.SyntheticModule (Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`69e4218772`](https://togithub.com/nodejs/node/commit/69e4218772)]
- **module**: use symbol in WeakMap to manage host defined options
(Joyee Cheung)
[#&#8203;48510](https://togithub.com/nodejs/node/pull/48510)
- \[[`96874e8fbc`](https://togithub.com/nodejs/node/commit/96874e8fbc)]
- **node-api**: enable uncaught exceptions policy by default (Chengzhong
Wu) [#&#8203;49313](https://togithub.com/nodejs/node/pull/49313)
- \[[`b931aeadfd`](https://togithub.com/nodejs/node/commit/b931aeadfd)]
- **perf_hooks**: reduce overhead of new performance_entries (Vinicius
Lourenço) [#&#8203;49803](https://togithub.com/nodejs/node/pull/49803)
- \[[`ad043bac31`](https://togithub.com/nodejs/node/commit/ad043bac31)]
- **process**: add custom dir support for heapsnapshot-signal (Jithil P
Ponnan) [#&#8203;47854](https://togithub.com/nodejs/node/pull/47854)
- \[[`8a7c10194c`](https://togithub.com/nodejs/node/commit/8a7c10194c)]
- **repl**: don't accumulate excess indentation in .load (Daniel X
Moore) [#&#8203;49461](https://togithub.com/nodejs/node/pull/49461)
- \[[`10a2adeed5`](https://togithub.com/nodejs/node/commit/10a2adeed5)]
- **src**: improve error message when ICU data cannot be initialized
(Joyee Cheung)
[#&#8203;49666](https://togithub.com/nodejs/node/pull/49666)
- \[[`ce37688bac`](https://togithub.com/nodejs/node/commit/ce37688bac)]
- **src**: remove unnecessary todo (Rafael Gonzaga)
[#&#8203;49227](https://togithub.com/nodejs/node/pull/49227)
- \[[`f611583b71`](https://togithub.com/nodejs/node/commit/f611583b71)]
- **src**: use SNAPSHOT_SERDES to log snapshot ser/deserialization
(Joyee Cheung)
[#&#8203;49637](https://togithub.com/nodejs/node/pull/49637)
- \[[`a597cb8457`](https://togithub.com/nodejs/node/commit/a597cb8457)]
- **src**: port Pipe to uv_pipe_bind2, uv_pipe_connect2 (Geoff Goodman)
[#&#8203;49667](https://togithub.com/nodejs/node/pull/49667)
- \[[`fb21062338`](https://togithub.com/nodejs/node/commit/fb21062338)]
- **src**: set --rehash-snapshot explicitly (Joyee Cheung)
[#&#8203;49556](https://togithub.com/nodejs/node/pull/49556)
- \[[`14ece0aa76`](https://togithub.com/nodejs/node/commit/14ece0aa76)]
- **(SEMVER-MINOR)** **src**: allow embedders to override
NODE_MODULE_VERSION (Cheng Zhao)
[#&#8203;49279](https://togithub.com/nodejs/node/pull/49279)
- \[[`4b5e23c71b`](https://togithub.com/nodejs/node/commit/4b5e23c71b)]
- **src**: set ModuleWrap internal fields only once (Joyee Cheung)
[#&#8203;49391](https://togithub.com/nodejs/node/pull/49391)
- \[[`2d3f5c7cab`](https://togithub.com/nodejs/node/commit/2d3f5c7cab)]
- **src**: fix fs_type_to_name default value (Mustafa Ateş Uzun)
[#&#8203;49239](https://togithub.com/nodejs/node/pull/49239)
- \[[`cfbcb1059c`](https://togithub.com/nodejs/node/commit/cfbcb1059c)]
- **src**: fix comment on StreamResource (rogertyang)
[#&#8203;49193](https://togithub.com/nodejs/node/pull/49193)
- \[[`39fb83ad16`](https://togithub.com/nodejs/node/commit/39fb83ad16)]
- **src**: do not rely on the internal field being default to undefined
(Joyee Cheung)
[#&#8203;49413](https://togithub.com/nodejs/node/pull/49413)
- \[[`9fd67fbff0`](https://togithub.com/nodejs/node/commit/9fd67fbff0)]
- **stream**: use bitmap in writable state (Raz Luvaton)
[#&#8203;49834](https://togithub.com/nodejs/node/pull/49834)
- \[[`0ccd4638ac`](https://togithub.com/nodejs/node/commit/0ccd4638ac)]
- **stream**: use bitmap in readable state (Benjamin Gruenbaum)
[#&#8203;49745](https://togithub.com/nodejs/node/pull/49745)
- \[[`b29d927010`](https://togithub.com/nodejs/node/commit/b29d927010)]
- **stream**: improve readable webstream `pipeTo` (Raz Luvaton)
[#&#8203;49690](https://togithub.com/nodejs/node/pull/49690)
- \[[`7c5e322346`](https://togithub.com/nodejs/node/commit/7c5e322346)]
- **stream**: improve webstream readable async iterator performance (Raz
Luvaton) [#&#8203;49662](https://togithub.com/nodejs/node/pull/49662)
- \[[`be211ef818`](https://togithub.com/nodejs/node/commit/be211ef818)]
- **test**: deflake test-vm-contextified-script-leak (Joyee Cheung)
[#&#8203;49710](https://togithub.com/nodejs/node/pull/49710)
- \[[`355f10dab2`](https://togithub.com/nodejs/node/commit/355f10dab2)]
- **test**: use checkIfCollectable in vm leak tests (Joyee Cheung)
[#&#8203;49671](https://togithub.com/nodejs/node/pull/49671)
- \[[`17cfc531aa`](https://togithub.com/nodejs/node/commit/17cfc531aa)]
- **test**: add checkIfCollectable to test/common/gc.js (Joyee Cheung)
[#&#8203;49671](https://togithub.com/nodejs/node/pull/49671)
- \[[`e49a573752`](https://togithub.com/nodejs/node/commit/e49a573752)]
- **test**: add os setPriority, getPriority test coverage (Wael)
[#&#8203;38771](https://togithub.com/nodejs/node/pull/38771)
- \[[`5f02711522`](https://togithub.com/nodejs/node/commit/5f02711522)]
- **test**: deflake test-runner-output (Moshe Atlow)
[#&#8203;49878](https://togithub.com/nodejs/node/pull/49878)
- \[[`cd9754d6a7`](https://togithub.com/nodejs/node/commit/cd9754d6a7)]
- **test**: mark test-runner-output as flaky (Joyee Cheung)
[#&#8203;49854](https://togithub.com/nodejs/node/pull/49854)
- \[[`5ad00424dd`](https://togithub.com/nodejs/node/commit/5ad00424dd)]
- **test**: use mustSucceed instead of mustCall (SiddharthDevulapalli)
[#&#8203;49788](https://togithub.com/nodejs/node/pull/49788)
- \[[`3db9b40081`](https://togithub.com/nodejs/node/commit/3db9b40081)]
- **test**: refactor test-readline-async-iterators into a benchmark
(Shubham Pandey)
[#&#8203;49237](https://togithub.com/nodejs/node/pull/49237)
- \[[`2cc5ad7859`](https://togithub.com/nodejs/node/commit/2cc5ad7859)]
- ***Revert*** "**test**: mark
test-http-regr-[gh-2928](https://togithub.com/nodejs/node/issues/2928)
as flaky" (Luigi Pinca)
[#&#8203;49708](https://togithub.com/nodejs/node/pull/49708)
- \[[`e5185b053c`](https://togithub.com/nodejs/node/commit/e5185b053c)]
- **test**: use `fs.constants` for `fs.access` constants (Livia
Medeiros) [#&#8203;49685](https://togithub.com/nodejs/node/pull/49685)
- \[[`b9e5b43462`](https://togithub.com/nodejs/node/commit/b9e5b43462)]
- **test**: deflake
test-http-regr-[gh-2928](https://togithub.com/nodejs/node/issues/2928)
(Luigi Pinca)
[#&#8203;49574](https://togithub.com/nodejs/node/pull/49574)
- \[[`1fffda504e`](https://togithub.com/nodejs/node/commit/1fffda504e)]
- **test**: fix argument computation in embedtest (Joyee Cheung)
[#&#8203;49506](https://togithub.com/nodejs/node/pull/49506)
- \[[`6e56f2db52`](https://togithub.com/nodejs/node/commit/6e56f2db52)]
- **test**: skip test-child-process-stdio-reuse-readable-stdio on
Windows (Joyee Cheung)
[#&#8203;49621](https://togithub.com/nodejs/node/pull/49621)
- \[[`ab3afb330d`](https://togithub.com/nodejs/node/commit/ab3afb330d)]
- **test**: mark test-runner-watch-mode as flaky (Joyee Cheung)
[#&#8203;49627](https://togithub.com/nodejs/node/pull/49627)
- \[[`185d9b50db`](https://togithub.com/nodejs/node/commit/185d9b50db)]
- **test**: deflake test-tls-socket-close (Luigi Pinca)
[#&#8203;49575](https://togithub.com/nodejs/node/pull/49575)
- \[[`c70c74a9e6`](https://togithub.com/nodejs/node/commit/c70c74a9e6)]
- **test**: show more info on failure in test-cli-syntax-require.js
(Joyee Cheung)
[#&#8203;49561](https://togithub.com/nodejs/node/pull/49561)
- \[[`ed7c6d1114`](https://togithub.com/nodejs/node/commit/ed7c6d1114)]
- **test**: mark
test-http-regr-[gh-2928](https://togithub.com/nodejs/node/issues/2928)
as flaky (Joyee Cheung)
[#&#8203;49565](https://togithub.com/nodejs/node/pull/49565)
- \[[`3599eebab9`](https://togithub.com/nodejs/node/commit/3599eebab9)]
- **test**: use spawnSyncAndExitWithoutError in sea tests (Joyee Cheung)
[#&#8203;49543](https://togithub.com/nodejs/node/pull/49543)
- \[[`f79b153e89`](https://togithub.com/nodejs/node/commit/f79b153e89)]
- **test**: use spawnSyncAndExitWithoutError in test/common/sea.js
(Joyee Cheung)
[#&#8203;49543](https://togithub.com/nodejs/node/pull/49543)
- \[[`c079c73769`](https://togithub.com/nodejs/node/commit/c079c73769)]
- **test**: use setImmediate() in test-heapdump-shadowrealm.js (Joyee
Cheung) [#&#8203;49573](https://togithub.com/nodejs/node/pull/49573)
- \[[`667a92493c`](https://togithub.com/nodejs/node/commit/667a92493c)]
- **test**: skip test-child-process-pipe-dataflow.js on Windows (Joyee
Cheung) [#&#8203;49563](https://togithub.com/nodejs/node/pull/49563)
- \[[`91af0a9a3c`](https://togithub.com/nodejs/node/commit/91af0a9a3c)]
- ***Revert*** "**test**: ignore the copied entry_point.c" (Chengzhong
Wu) [#&#8203;49515](https://togithub.com/nodejs/node/pull/49515)
- \[[`567afc71b8`](https://togithub.com/nodejs/node/commit/567afc71b8)]
- **test**: avoid copying test source files (Chengzhong Wu)
[#&#8203;49515](https://togithub.com/nodejs/node/pull/49515)
- \[[`ced25a976d`](https://togithub.com/nodejs/node/commit/ced25a976d)]
- **test**: increase coverage of `Module.register` and `initialize` hook
(Antoine du Hamel)
[#&#8203;49532](https://togithub.com/nodejs/node/pull/49532)
- \[[`be02fbdb8a`](https://togithub.com/nodejs/node/commit/be02fbdb8a)]
- **test**: isolate `globalPreload` tests (Geoffrey Booth)
[#&#8203;49545](https://togithub.com/nodejs/node/pull/49545)
- \[[`f214428845`](https://togithub.com/nodejs/node/commit/f214428845)]
- **test**: split test-crypto-dh to avoid timeout on slow machines in
the CI (Joyee Cheung)
[#&#8203;49492](https://togithub.com/nodejs/node/pull/49492)
- \[[`3987094569`](https://togithub.com/nodejs/node/commit/3987094569)]
- **test**: make `test-dotenv-node-options` locale-independent (Livia
Medeiros) [#&#8203;49470](https://togithub.com/nodejs/node/pull/49470)
- \[[`34c1741792`](https://togithub.com/nodejs/node/commit/34c1741792)]
- **test**: add test for urlstrings usage in `node:fs` (Livia Medeiros)
[#&#8203;49471](https://togithub.com/nodejs/node/pull/49471)
- \[[`c3c6c4f007`](https://togithub.com/nodejs/node/commit/c3c6c4f007)]
- **test**: make test-worker-prof more robust (Joyee Cheung)
[#&#8203;49274](https://togithub.com/nodejs/node/pull/49274)
- \[[`843df1a4da`](https://togithub.com/nodejs/node/commit/843df1a4da)]
- **test,crypto**: update WebCryptoAPI WPT (Filip Skokan)
[#&#8203;49714](https://togithub.com/nodejs/node/pull/49714)
- \[[`80b342cc38`](https://togithub.com/nodejs/node/commit/80b342cc38)]
- **(SEMVER-MINOR)** **test_runner**: accept `testOnly` in `run` (Moshe
Atlow) [#&#8203;49753](https://togithub.com/nodejs/node/pull/49753)
- \[[`76865515b9`](https://togithub.com/nodejs/node/commit/76865515b9)]
- **test_runner**: fix test runner watch mode when no positional
arguments (Moshe Atlow)
[#&#8203;49578](https://togithub.com/nodejs/node/pull/49578)
- \[[`17a05b141d`](https://togithub.com/nodejs/node/commit/17a05b141d)]
- **(SEMVER-MINOR)** **test_runner**: add junit reporter (Moshe Atlow)
[#&#8203;49614](https://togithub.com/nodejs/node/pull/49614)
- \[[`5672e38457`](https://togithub.com/nodejs/node/commit/5672e38457)]
- **test_runner**: add jsdocs to mock.js (Caio Borghi)
[#&#8203;49555](https://togithub.com/nodejs/node/pull/49555)
- \[[`b4d42a8f2b`](https://togithub.com/nodejs/node/commit/b4d42a8f2b)]
- **test_runner**: fix invalid timer call (Erick Wendel)
[#&#8203;49477](https://togithub.com/nodejs/node/pull/49477)
- \[[`f755e6786b`](https://togithub.com/nodejs/node/commit/f755e6786b)]
- **test_runner**: add jsdocs to MockTimers (Erick Wendel)
[#&#8203;49476](https://togithub.com/nodejs/node/pull/49476)
- \[[`e7285d4bf0`](https://togithub.com/nodejs/node/commit/e7285d4bf0)]
- **test_runner**: fix typescript coverage (Moshe Atlow)
[#&#8203;49406](https://togithub.com/nodejs/node/pull/49406)
- \[[`07a2e29bf3`](https://togithub.com/nodejs/node/commit/07a2e29bf3)]
- **tools**: support updating
[@&#8203;reporters/github](https://togithub.com/reporters/github)
manually (Moshe Atlow)
[#&#8203;49871](https://togithub.com/nodejs/node/pull/49871)
- \[[`5ac6722031`](https://togithub.com/nodejs/node/commit/5ac6722031)]
- **tools**: skip ruff on tools/node_modules (Moshe Atlow)
[#&#8203;49838](https://togithub.com/nodejs/node/pull/49838)
- \[[`462228bd24`](https://togithub.com/nodejs/node/commit/462228bd24)]
- **tools**: fix uvwasi updater (Michael Dawson)
[#&#8203;49682](https://togithub.com/nodejs/node/pull/49682)
- \[[`ff81bfb958`](https://togithub.com/nodejs/node/commit/ff81bfb958)]
- **tools**: update lint-md-dependencies to rollup@3.29.2 (Node.js
GitHub Bot) [#&#8203;49679](https://togithub.com/nodejs/node/pull/49679)
- \[[`08ffc6344c`](https://togithub.com/nodejs/node/commit/08ffc6344c)]
- **tools**: restrict internal code from using public `url` module
(LiviaMedeiros)
[#&#8203;49590](https://togithub.com/nodejs/node/pull/49590)
- \[[`728ebf6c97`](https://togithub.com/nodejs/node/commit/728ebf6c97)]
- **tools**: update eslint to 8.49.0 (Node.js GitHub Bot)
[#&#8203;49586](https://togithub.com/nodejs/node/pull/49586)
- \[[`20d038ffb1`](https://togithub.com/nodejs/node/commit/20d038ffb1)]
- **tools**: update lint-md-dependencies to rollup@3.29.0 unified@11.0.3
(Node.js GitHub Bot)
[#&#8203;49584](https://togithub.com/nodejs/node/pull/49584)
- \[[`210c15bd12`](https://togithub.com/nodejs/node/commit/210c15bd12)]
- **tools**: allow passing absolute path of config.gypi in js2c (Cheng
Zhao) [#&#8203;49162](https://togithub.com/nodejs/node/pull/49162)
- \[[`e341efe173`](https://togithub.com/nodejs/node/commit/e341efe173)]
- **tools**: configure never-stale label correctly (Michaël Zasso)
[#&#8203;49498](https://togithub.com/nodejs/node/pull/49498)
- \[[`a8a8a498ce`](https://togithub.com/nodejs/node/commit/a8a8a498ce)]
- **tools**: update doc dependencies (Node.js GitHub Bot)
[#&#8203;49467](https://togithub.com/nodejs/node/pull/49467)
- \[[`ac06607f9e`](https://togithub.com/nodejs/node/commit/ac06607f9e)]
- **typings**: fix missing property in `ExportedHooks` (Antoine du
Hamel) [#&#8203;49567](https://togithub.com/nodejs/node/pull/49567)
- \[[`097b59807a`](https://togithub.com/nodejs/node/commit/097b59807a)]
- **url**: improve invalid url performance (Yagiz Nizipli)
[#&#8203;49692](https://togithub.com/nodejs/node/pull/49692)
- \[[`7c2060cfac`](https://togithub.com/nodejs/node/commit/7c2060cfac)]
- **util**: add `getCwdSafe` internal util fn (João Lenon)
[#&#8203;48434](https://togithub.com/nodejs/node/pull/48434)
- \[[`c23c60f545`](https://togithub.com/nodejs/node/commit/c23c60f545)]
- **zlib**: disable CRC32 SIMD optimization (Luigi Pinca)
[#&#8203;49511](https://togithub.com/nodejs/node/pull/49511)

### [`v20.7.0`](https://togithub.com/nodejs/node/releases/tag/v20.7.0):
2023-09-18, Version 20.7.0 (Current), @&#8203;UlisesGascon

[Compare
Source](https://togithub.com/nodejs/node/compare/v20.6.1...v20.7.0)

##### Notable Changes

- \[[`022f1b70c1`](https://togithub.com/nodejs/node/commit/022f1b70c1)]
- **src**: support multiple `--env-file` declarations (Yagiz Nizipli)
[#&#8203;49542](https://togithub.com/nodejs/node/pull/49542)
- \[[`4a1d1cad61`](https://togithub.com/nodejs/node/commit/4a1d1cad61)]
- **crypto**: update root certificates to NSS 3.93 (Node.js GitHub Bot)
[#&#8203;49341](https://togithub.com/nodejs/node/pull/49341)
- \[[`a1a65f593c`](https://togithub.com/nodejs/node/commit/a1a65f593c)]
- **deps**: upgrade npm to 10.1.0 (npm team)
[#&#8203;49570](https://togithub.com/nodejs/node/pull/49570)
- \[[`6c2480cad9`](https://togithub.com/nodejs/node/commit/6c2480cad9)]
- **(SEMVER-MINOR)** **deps**: upgrade npm to 10.0.0 (npm team)
[#&#8203;49423](https://togithub.com/nodejs/node/pull/49423)
- \[[`bef900e56b`](https://togithub.com/nodejs/node/commit/bef900e56b)]
- **doc**: move and rename loaders section (Geoffrey Booth)
[#&#8203;49261](https://togithub.com/nodejs/node/pull/49261)
- \[[`db4ce8a593`](https://togithub.com/nodejs/node/commit/db4ce8a593)]
- **doc**: add release key for Ulises Gascon (Ulises Gascón)
[#&#8203;49196](https://togithub.com/nodejs/node/pull/49196)
- \[[`11c85ffa98`](https://togithub.com/nodejs/node/commit/11c85ffa98)]
- **(SEMVER-MINOR)** **lib**: add api to detect whether source-maps are
enabled (翠 / green)
[#&#8203;46391](https://togithub.com/nodejs/node/pull/46391)
- \[[`ec51e25ed7`](https://togithub.com/nodejs/node/commit/ec51e25ed7)]
- **src,permission**: add multiple allow-fs-\* flags (Carlos Espa)
[#&#8203;49047](https://togithub.com/nodejs/node/pull/49047)
- \[[`efdc95fbc0`](https://togithub.com/nodejs/node/commit/efdc95fbc0)]
- **(SEMVER-MINOR)** **test_runner**: expose location of tests (Colin
Ihrig) [#&#8203;48975](https://togithub.com/nodejs/node/pull/48975)

##### Commits

- \[[`e84515594e`](https://togithub.com/nodejs/node/commit/e84515594e)]
- **benchmark**: use `tmpdir.resolve()` (Livia Medeiros)
[#&#8203;49137](https://togithub.com/nodejs/node/pull/49137)
- \[[`f37444e896`](https://togithub.com/nodejs/node/commit/f37444e896)]
- **bootstrap**: build code cache from deserialized isolate (Joyee
Cheung) [#&#8203;49099](https://togithub.com/nodejs/node/pull/49099)
- \[[`af6dc1754d`](https://togithub.com/nodejs/node/commit/af6dc1754d)]
- **bootstrap**: do not generate code cache in an unfinalized isolate
(Joyee Cheung)
[#&#8203;49108](https://togithub.com/nodejs/node/pull/49108)
- \[[`cade5716df`](https://togithub.com/nodejs/node/commit/cade5716df)]
- **build**: add symlink to `compile_commands.json` file if needed (Juan
José) [#&#8203;49260](https://togithub.com/nodejs/node/pull/49260)
- \[[`34a2590b05`](https://togithub.com/nodejs/node/commit/34a2590b05)]
- **build**: expand when we run internet tests (Michael Dawson)
[#&#8203;49218](https://togithub.com/nodejs/node/pull/49218)
- \[[`f637fd46ab`](https://togithub.com/nodejs/node/commit/f637fd46ab)]
- **build**: fix typo `libray` -> `library` (configure.py)
(michalbiesek)
[#&#8203;49106](https://togithub.com/nodejs/node/pull/49106)
- \[[`ef3d8dd493`](https://togithub.com/nodejs/node/commit/ef3d8dd493)]
- **crypto**: remove webcrypto EdDSA key checks and properties (Filip
Skokan) [#&#8203;49408](https://togithub.com/nodejs/node/pull/49408)
- \[[`4a1d1cad61`](https://togithub.com/nodejs/node/commit/4a1d1cad61)]
- **crypto**: update root certificates to NSS 3.93 (Node.js GitHub Bot)
[#&#8203;49341](https://togithub.com/nodejs/node/pull/49341)
- \[[`7eb10a38ea`](https://togithub.com/nodejs/node/commit/7eb10a38ea)]
- **crypto**: remove getDefaultEncoding() (Tobias Nießen)
[#&#8203;49170](https://togithub.com/nodejs/node/pull/49170)
- \[[`772496c030`](https://togithub.com/nodejs/node/commit/772496c030)]
- **crypto**: remove default encoding from DiffieHellman (Tobias Nießen)
[#&#8203;49169](https://togithub.com/nodejs/node/pull/49169)
- \[[`c795083232`](https://togithub.com/nodejs/node/commit/c795083232)]
- **crypto**: remove default encoding from Hash/Hmac (Tobias Nießen)
[#&#8203;49167](https://togithub.com/nodejs/node/pull/49167)
- \[[`08197aa010`](https://togithub.com/nodejs/node/commit/08197aa010)]
- **crypto**: remove default encoding from sign/verify (Tobias Nießen)
[#&#8203;49145](https://togithub.com/nodejs/node/pull/49145)
- \[[`a1a65f593c`](https://togithub.com/nodejs/node/commit/a1a65f593c)]
- **deps**: upgrade npm to 10.1.0 (npm team)
[#&#8203;49570](https://togithub.com/nodejs/node/pull/49570)
- \[[`6c2480cad9`](https://togithub.com/nodejs/node/commit/6c2480cad9)]
- **(SEMVER-MINOR)** **deps**: upgrade npm to 10.0.0 (npm team)
[#&#8203;49423](https://togithub.com/nodejs/node/pull/49423)
- \[[`84195d9584`](https://togithub.com/nodejs/node/commit/84195d9584)]
- **deps**: add missing thread-common.c in uv.gyp (Santiago Gimeno)
[#&#8203;49410](https://togithub.com/nodejs/node/pull/49410)
- \[[`5b70b68b3d`](https://togithub.com/nodejs/node/commit/5b70b68b3d)]
- **deps**: V8: cherry-pick
[`eadaef5`](https://togithub.com/nodejs/node/commit/eadaef581c29) (Adam
Majer) [#&#8203;49401](https://togithub.com/nodejs/node/pull/49401)
- \[[`fe34d632e8`](https://togithub.com/nodejs/node/commit/fe34d632e8)]
- **deps**: update zlib to 1.2.13.1-motley-f5fd0ad (Node.js GitHub Bot)
[#&#8203;49252](https://togithub.com/nodejs/node/pull/49252)
- \[[`db4ce8a593`](https://togithub.com/nodejs/node/commit/db4ce8a593)]
- **doc**: add release key for Ulises Gascon (Ulises Gascón)
[#&#8203;49196](https://togithub.com/nodejs/node/pull/49196)
- \[[`e5f3a694cf`](https://togithub.com/nodejs/node/commit/e5f3a694cf)]
- **doc**: fix node-api call example (Chengzhong Wu)
[#&#8203;49395](https://togithub.com/nodejs/node/pull/49395)
- \[[`021345a724`](https://togithub.com/nodejs/node/commit/021345a724)]
- **doc**: add news issue for Diagnostics WG (Michael Dawson)
[#&#8203;49306](https://togithub.com/nodejs/node/pull/49306)
- \[[`f82347266b`](https://togithub.com/nodejs/node/commit/f82347266b)]
- **doc**: clarify policy expectations (Rafael Gonzaga)
[#&#8203;48947](https://togithub.com/nodejs/node/pull/48947)
- \[[`73cfd9c895`](https://togithub.com/nodejs/node/commit/73cfd9c895)]
- **doc**: add print results for examples in `StringDecoder` (Jungku
Lee) [#&#8203;49326](https://togithub.com/nodejs/node/pull/49326)
- \[[`63ab591416`](https://togithub.com/nodejs/node/commit/63ab591416)]
- **doc**: update outdated reference to NIST SP 800-131A (Tobias Nießen)
[#&#8203;49316](https://togithub.com/nodejs/node/pull/49316)
- \[[`935dfe2afd`](https://togithub.com/nodejs/node/commit/935dfe2afd)]
- **doc**: use `cjs` as block code's type in `MockTimers` (Deokjin Kim)
[#&#8203;49309](https://togithub.com/nodejs/node/pull/49309)
- \[[`7c0cd2fb87`](https://togithub.com/nodejs/node/commit/7c0cd2fb87)]
- **doc**: update `options.filter` description for `fs.cp` (Shubham
Pandey) [#&#8203;49289](https://togithub.com/nodejs/node/pull/49289)
- \[[`f72e79ea67`](https://togithub.com/nodejs/node/commit/f72e79ea67)]
- **doc**: add riscv64 to list of architectures (Stewart X Addison)
[#&#8203;49284](https://togithub.com/nodejs/node/pull/49284)
- \[[`d19c710064`](https://togithub.com/nodejs/node/commit/d19c710064)]
- **doc**: avoid "not currently recommended" (Tobias Nießen)
[#&#8203;49300](https://togithub.com/nodejs/node/pull/49300)
- \[[`ae656101c0`](https://togithub.com/nodejs/node/commit/ae656101c0)]
- **doc**: update module hooks docs (Geoffrey Booth)
[#&#8203;49265](https://togithub.com/nodejs/node/pull/49265)
- \[[`fefbdb92f2`](https://togithub.com/nodejs/node/commit/fefbdb92f2)]
- **doc**: modify param description for end(),write() in `StringDecoder`
(Jungku Lee)
[#&#8203;49285](https://togithub.com/nodejs/node/pull/49285)
- \[[`59e66a1ebe`](https://togithub.com/nodejs/node/commit/59e66a1ebe)]
- **doc**: use NODE_API_SUPPORTED_VERSION_MAX in release doc (Cheng
Zhao) [#&#8203;49268](https://togithub.com/nodejs/node/pull/49268)
- \[[`ac3b88449b`](https://togithub.com/nodejs/node/commit/ac3b88449b)]
- **doc**: fix typo in `stream.finished` documentation (Antoine du
Hamel) [#&#8203;49271](https://togithub.com/nodejs/node/pull/49271)
- \[[`7428ebf6c3`](https://togithub.com/nodejs/node/commit/7428ebf6c3)]
- **doc**: update description for `percent_encode` sets in `WHATWG API`
(Jungku Lee)
[#&#8203;49258](https://togithub.com/nodejs/node/pull/49258)
- \[[`bef900e56b`](https://togithub.com/nodejs/node/commit/bef900e56b)]
- **doc**: move and rename loaders section (Geoffrey Booth)
[#&#8203;49261](https://togithub.com/nodejs/node/pull/49261)
- \[[`a22e0d9696`](https://togithub.com/nodejs/node/commit/a22e0d9696)]
- **doc**: clarify use of Uint8Array for n-api (Fedor Indutny)
[#&#8203;48742](https://togithub.com/nodejs/node/pull/48742)
- \[[`1704f24cb9`](https://togithub.com/nodejs/node/commit/1704f24cb9)]
- **doc**: add signature for `module.register` (Geoffrey Booth)
[#&#8203;49251](https://togithub.com/nodejs/node/pull/49251)
- \[[`5a363bb01b`](https://togithub.com/nodejs/node/commit/5a363bb01b)]
- **doc**: caveat unavailability of `import.meta.resolve` in custom
loaders (Jacob Smith)
[#&#8203;49242](https://togithub.com/nodejs/node/pull/49242)
- \[[`8101f2b259`](https://togithub.com/nodejs/node/commit/8101f2b259)]
- **doc**: use same name in the doc as in the code (Hyunjin Kim)
[#&#8203;49216](https://togithub.com/nodejs/node/pull/49216)
- \[[`edf278d60d`](https://togithub.com/nodejs/node/commit/edf278d60d)]
- **doc**: add notable-change label mention to PR template (Rafael
Gonzaga) [#&#8203;49188](https://togithub.com/nodejs/node/pull/49188)
- \[[`3df2251a6a`](https://togithub.com/nodejs/node/commit/3df2251a6a)]
- **doc**: add h1 summary to security release process (Rafael Gonzaga)
[#&#8203;49112](https://togithub.com/nodejs/node/pull/49112)
- \[[`9fcd99a744`](https://togithub.com/nodejs/node/commit/9fcd99a744)]
- **doc**: update to semver-minor releases by default (Rafael Gonzaga)
[#&#8203;49175](https://togithub.com/nodejs/node/pull/49175)
- \[[`777931f499`](https://togithub.com/nodejs/node/commit/777931f499)]
- **doc**: fix wording in napi_async_init (Tobias Nießen)
[#&#8203;49180](https://togithub.com/nodejs/node/pull/49180)
- \[[`f45c8e10c0`](https://togithub.com/nodejs/node/commit/f45c8e10c0)]
- **doc,test**: add known path resolution issue in permission model
(Tobias Nießen)
[#&#8203;49155](https://togithub.com/nodejs/node/pull/49155)
- \[[`a6cfea3f74`](https://togithub.com/nodejs/node/commit/a6cfea3f74)]
- **esm**: align sync and async load implementations (Antoine du Hamel)
[#&#8203;49152](https://togithub.com/nodejs/node/pull/49152)
- \[[`9fac310b33`](https://togithub.com/nodejs/node/commit/9fac310b33)]
- **fs**: add the options param description in openAsBlob() (Yeseul Lee)
[#&#8203;49308](https://togithub.com/nodejs/node/pull/49308)
- \[[`92772a8175`](https://togithub.com/nodejs/node/commit/92772a8175)]
- **fs**: remove redundant code in readableWebStream() (Deokjin Kim)
[#&#8203;49298](https://togithub.com/nodejs/node/pull/49298)
- \[[`88ba79b083`](https://togithub.com/nodejs/node/commit/88ba79b083)]
- **fs**: make sure to write entire buffer (Robert Nagy)
[#&#8203;49211](https://togithub.com/nodejs/node/pull/49211)
- \[[`11c85ffa98`](https://togithub.com/nodejs/node/commit/11c85ffa98)]
- **(SEMVER-MINOR)** **lib**: add api to detect whether source-maps are
enabled (翠 / green)
[#&#8203;46391](https://togithub.com/nodejs/node/pull/46391)
- \[[`c12711ebfe`](https://togithub.com/nodejs/node/commit/c12711ebfe)]
- **lib**: implement WeakReference on top of JS WeakRef (Joyee Cheung)
[#&#8203;49053](https://togithub.com/nodejs/node/pull/49053)
- \[[`9a0891f88d`](https://togithub.com/nodejs/node/commit/9a0891f88d)]
- **meta**: bump step-security/harden-runner from 2.5.0 to 2.5.1
(dependabot\[bot])
[#&#8203;49435](https://togithub.com/nodejs/node/pull/49435)
- \[[`ae67f41ef1`](https://togithub.com/nodejs/node/commit/ae67f41ef1)]
- **meta**: bump actions/checkout from 3.5.3 to 3.6.0 (dependabot\[bot])
[#&#8203;49436](https://togithub.com/nodejs/node/pull/49436)
- \[[`71b4411fb2`](https://togithub.com/nodejs/node/commit/71b4411fb2)]
- **meta**: bump actions/setup-node from 3.7.0 to 3.8.1
(dependabot\[bot])
[#&#8203;49434](https://togithub.com/nodejs/node/pull/49434)
- \[[`83b7d3a395`](https://togithub.com/nodejs/node/commit/83b7d3a395)]
- **meta**: remove modules team from CODEOWNERS (Benjamin Gruenbaum)
[#&#8203;49412](https://togithub.com/nodejs/node/pull/49412)
- \[[`81ff68c45c`](https://togithub.com/nodejs/node/commit/81ff68c45c)]
- **meta**: move one or more collaborators to emeritus (Node.js GitHub
Bot) [#&#8203;49264](https://togithub.com/nodejs/node/pull/49264)
- \[[`ab975233cc`](https://togithub.com/nodejs/node/commit/ab975233cc)]
- **meta**: mention nodejs/tsc when changing GH templates (Rafael
Gonzaga) [#&#8203;49189](https://togithub.com/nodejs/node/pull/49189)
- \[[`ceaa5494de`](https://togithub.com/nodejs/node/commit/ceaa5494de)]
- **meta**: add test/reporters to codeowners (Chemi Atlow)
[#&#8203;49186](https://togithub.com/nodejs/node/pull/49186)
- \[[`de0a51b7cf`](https://togithub.com/nodejs/node/commit/de0a51b7cf)]
- **net**: improve performance of isIPv4 and isIPv6 (Uzlopak)
[#&#8203;49568](https://togithub.com/nodejs/node/pull/49568)
- \[[`8d0913bf95`](https://togithub.com/nodejs/node/commit/8d0913bf95)]
- **net**: use asserts in JS Socket Stream to catch races in future (Tim
Perry) [#&#8203;49400](https://togithub.com/nodejs/node/pull/49400)
- \[[`2486836a7d`](https://togithub.com/nodejs/node/commit/2486836a7d)]
- **net**: fix crash due to simultaneous close/shutdown on JS Stream
Sockets (Tim Perry)
[#&#8203;49400](https://togithub.com/nodejs/node/pull/49400)
- \[[`7a808340cd`](https://togithub.com/nodejs/node/commit/7a808340cd)]
- **node-api**: fix compiler warning in node_api.h (Michael Graeb)
[#&#8203;49103](https://togithub.com/nodejs/node/pull/49103)
- \[[`30f26a99f4`](https://togithub.com/nodejs/node/commit/30f26a99f4)]
- **permission**: ensure to resolve path when calling mkdtemp
(RafaelGSS)
[nodejs-private/node-private#440](https://togithub.com/nodejs-private/node-private/pull/440)
- \[[`5051c75a5b`](https://togithub.com/nodejs/node/commit/5051c75a5b)]
- **policy**: fix path to URL conversion (Antoine du Hamel)
[#&#8203;49133](https://togithub.com/nodejs/node/pull/49133)
- \[[`173aed4757`](https://togithub.com/nodejs/node/commit/173aed4757)]
- **report**: fix recent coverity warning (Michael Dawson)
[#&#8203;48954](https://togithub.com/nodejs/node/pull/48954)
- \[[`d7ff78b442`](https://togithub.com/nodejs/node/commit/d7ff78b442)]
- **sea**: generate code cache with deserialized isolate (Joyee Cheung)
[#&#8203;49226](https://togithub.com/nodejs/node/pull/49226)
- \[[`022f1b70c1`](https://togithub.com/nodejs/node/commit/022f1b70c1)]
- **src**: support multiple `--env-file` declarations (Yagiz Nizipli)
[#&#8203;49542](https://togithub.com/nodejs/node/pull/49542)
- \[[`154b1c2115`](https://togithub.com/nodejs/node/commit/154b1c2115)]
- **src**: don't overwrite environment from .env file (Phil Nash)
[#&#8203;49424](https://togithub.com/nodejs/node/pull/49424)
- \[[`dc4de1c69b`](https://togithub.com/nodejs/node/commit/dc4de1c69b)]
- **src**: modify code for empty string (pluris)
[#&#8203;49336](https://togithub.com/nodejs/node/pull/49336)
- \[[`701c46f967`](https://togithub.com/nodejs/node/commit/701c46f967)]
- **src**: remove unused PromiseWrap-related code (Joyee Cheung)
[#&#8203;49335](https://togithub.com/nodejs/node/pull/49335)
- \[[`4a094dc7af`](https://togithub.com/nodejs/node/commit/4a094dc7af)]
- **src**: rename IsAnyByteSource to IsAnyBufferSource (Tobias Nießen)
[#&#8203;49346](https://togithub.com/nodejs/node/pull/49346)
- \[[`55d6649175`](https://togithub.com/nodejs/node/commit/55d6649175)]
- **src**: support snapshot deserialization in RAIIIsolate (Joyee
Cheung) [#&#8203;49226](https://togithub.com/nodejs/node/pull/49226)
- \[[`dc092864ef`](https://togithub.com/nodejs/node/commit/dc092864ef)]
- **src**: remove unused function `GetName()` in node_perf (Jungku Lee)
[#&#8203;49244](https://togithub.com/nodejs/node/pull/49244)
- \[[`f2552a410e`](https://togithub.com/nodejs/node/commit/f2552a410e)]
- **src**: use ARES_SUCCESS instead of 0 (Jungku Lee)
[#&#8203;49048](https://togithub.com/nodejs/node/pull/49048)
- \[[`4a9ae31519`](https://togithub.com/nodejs/node/commit/4a9ae31519)]
- **src**: add a condition if the argument of `DomainToUnicode` is empty
(Jungku Lee)
[#&#8203;49097](https://togithub.com/nodejs/node/pull/49097)
- \[[`f460362cdf`](https://togithub.com/nodejs/node/commit/f460362cdf)]
- **src**: remove C++ WeakReference implementation (Joyee Cheung)
[#&#8203;49053](https://togithub.com/nodejs/node/pull/49053)
- \[[`2a35383b3e`](https://togithub.com/nodejs/node/commit/2a35383b3e)]
- **src**: use per-realm GetBindingData() wherever applicable (Joyee
Cheung) [#&#8203;49007](https://togithub.com/nodejs/node/pull/49007)
- \[[`184bbddcf5`](https://togithub.com/nodejs/node/commit/184bbddcf5)]
- **src**: add per-realm GetBindingData() method (Joyee Cheung)
[#&#8203;49007](https://togithub.com/nodejs/node/pull/49007)
- \[[`e9946885f9`](https://togithub.com/nodejs/node/commit/e9946885f9)]
- **src**: serialize both BaseObject slots (Joyee Cheung)
[#&#8203;48996](https://togithub.com/nodejs/node/pull/48996)
- \[[`ec51e25ed7`](https://togithub.com/nodejs/node/commit/ec51e25ed7)]
- **src,permission**: add multiple allow-fs-\* flags (Carlos Espa)
[#&#8203;49047](https://togithub.com/nodejs/node/pull/49047)
- \[[`8aac95de4b`](https://togithub.com/nodejs/node/commit/8aac95de4b)]
- **stream**: improve tee perf by reduce `ReflectConstruct` usages (Raz
Luvaton) [#&#8203;49546](https://togithub.com/nodejs/node/pull/49546)
- \[[`0eea7fd8fb`](https://togithub.com/nodejs/node/commit/0eea7fd8fb)]
- **stream**: use Buffer.from when constructor is a Buffer (Matthew
Aitken) [#&#8203;49250](https://togithub.com/nodejs/node/pull/49250)
- \[[`b961d9bd52`](https://togithub.com/nodejs/node/commit/b961d9bd52)]
- **stream**: add `highWaterMark` for the map operator (Raz Luvaton)
[#&#8203;49249](https://togithub.com/nodejs/node/pull/49249)
- \[[`ca1384166d`](https://togithub.com/nodejs/node/commit/ca1384166d)]
- **test**: fix warning for comment in embedtest (Jungku Lee)
[#&#8203;49416](https://togithub.com/nodejs/node/pull/49416)
- \[[`2a35782809`](https://togithub.com/nodejs/node/commit/2a35782809)]
- **test**: simplify test-crypto-dh-group-setters (Tobias Nießen)
[#&#8203;49404](https://togithub.com/nodejs/node/pull/49404)
- \[[`6740f3c209`](https://togithub.com/nodejs/node/commit/6740f3c209)]
- **test**: verify dynamic import call with absolute path strings
(Chengzhong Wu)
[#&#8203;49275](https://togithub.com/nodejs/node/pull/49275)
- \[[`6ed47bd8fb`](https://togithub.com/nodejs/node/commit/6ed47bd8fb)]
- **test**: reduce length in crypto keygen tests (Joyee Cheung)
[#&#8203;49221](https://togithub.com/nodejs/node/pull/49221)
- \[[`4faa30c553`](https://togithub.com/nodejs/node/commit/4faa30c553)]
- **test**: split JWK async elliptic curve keygen tests (Joyee Cheung)
[#&#8203;49221](https://togithub.com/nodejs/node/pull/49221)
- \[[`e04a2603d8`](https://togithub.com/nodejs/node/commit/e04a2603d8)]
- **test**: split test-crypto-keygen.js (Joyee Cheung)
[#&#8203;49221](https://togithub.com/nodejs/node/pull/49221)
- \[[`0d23c1d4ce`](https://togithub.com/nodejs/node/commit/0d23c1d4ce)]
- **test**: rename test-crypto-modp1-error (Tobias Nießen)
[#&#8203;49348](https://togithub.com/nodejs/node/pull/49348)
- \[[`48e41569e2`](https://togithub.com/nodejs/node/commit/48e41569e2)]
- **test**: migrate message source map tests from Python to JS (Yiyun
Lei) [#&#8203;49238](https://togithub.com/nodejs/node/pull/492

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-03 16:55:28 -05:00
renovate[bot] 0c8d7d16ac
chore(deps): update typescript-eslint monorepo to v6.17.0 (#1112)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.16.0` ->
`6.17.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.16.0/6.17.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.16.0/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.16.0/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.16.0` ->
`6.17.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.16.0/6.17.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.16.0/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.16.0/6.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.17.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6170-2024-01-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.16.0...v6.17.0)

##### Bug Fixes

- **eslint-plugin:** \[no-restricted-imports] prevent crash when
`patterns` or `paths` in options are empty
([#&#8203;8108](https://togithub.com/typescript-eslint/typescript-eslint/issues/8108))
([675e987](675e987ca1))

##### Features

- **eslint-plugin:** \[no-floating-promises] flag result of .map(async)
([#&#8203;7897](https://togithub.com/typescript-eslint/typescript-eslint/issues/7897))
([5857356](5857356962))
- **eslint-plugin:** \[switch-exhaustiveness-check] add an option to
warn against a `default` case on an already exhaustive `switch`
([#&#8203;7539](https://togithub.com/typescript-eslint/typescript-eslint/issues/7539))
([6a219bd](6a219bdfe6))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.17.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6170-2024-01-01)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.16.0...v6.17.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-01 21:56:04 +00:00
renovate[bot] 751a79a165
fix(deps): update kubernetes packages to v0.29.0 (#1082)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
`v0.28.4` -> `v0.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fapimachinery/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fapimachinery/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fapimachinery/v0.28.4/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fapimachinery/v0.28.4/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
`v0.28.4` -> `v0.29.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/k8s.io%2fclient-go/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/k8s.io%2fclient-go/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/k8s.io%2fclient-go/v0.28.4/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/k8s.io%2fclient-go/v0.28.4/v0.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.29.0`](https://togithub.com/kubernetes/apimachinery/compare/v0.28.4...v0.29.0)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.28.5...v0.29.0)

###
[`v0.28.5`](https://togithub.com/kubernetes/apimachinery/compare/v0.28.4...v0.28.5)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.28.4...v0.28.5)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.29.0`](https://togithub.com/kubernetes/client-go/compare/v0.28.4...v0.29.0)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.28.5...v0.29.0)

###
[`v0.28.5`](https://togithub.com/kubernetes/client-go/compare/v0.28.4...v0.28.5)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.28.4...v0.28.5)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTAzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-29 13:06:26 -05:00
renovate[bot] 26681ded73
fix(deps): update module golang.org/x/crypto to v0.17.0 [security] (#1090)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| golang.org/x/crypto | `v0.16.0` -> `v0.17.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/golang.org%2fx%2fcrypto/v0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/golang.org%2fx%2fcrypto/v0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/golang.org%2fx%2fcrypto/v0.16.0/v0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/golang.org%2fx%2fcrypto/v0.16.0/v0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

### GitHub Vulnerability Alerts

####
[CVE-2023-48795](https://togithub.com/warp-tech/russh/security/advisories/GHSA-45x7-px36-x8w8)

### Summary

Terrapin is a prefix truncation attack targeting the SSH protocol. More
precisely, Terrapin breaks the integrity of SSH's secure channel. By
carefully adjusting the sequence numbers during the handshake, an
attacker can remove an arbitrary amount of messages sent by the client
or server at the beginning of the secure channel without the client or
server noticing it.

### Mitigations

To mitigate this protocol vulnerability, OpenSSH suggested a so-called
"strict kex" which alters the SSH handshake to ensure a
Man-in-the-Middle attacker cannot introduce unauthenticated messages as
well as convey sequence number manipulation across handshakes.

**Warning: To take effect, both the client and server must support this
countermeasure.**

As a stop-gap measure, peers may also (temporarily) disable the affected
algorithms and use unaffected alternatives like AES-GCM instead until
patches are available.

### Details

The SSH specifications of ChaCha20-Poly1305
(chacha20-poly1305@&#8203;openssh.com) and Encrypt-then-MAC
(*-etm@openssh.com MACs) are vulnerable against an arbitrary prefix
truncation attack (a.k.a. Terrapin attack). This allows for an extension
negotiation downgrade by stripping the SSH_MSG_EXT_INFO sent after the
first message after SSH_MSG_NEWKEYS, downgrading security, and disabling
attack countermeasures in some versions of OpenSSH. When targeting
Encrypt-then-MAC, this attack requires the use of a CBC cipher to be
practically exploitable due to the internal workings of the cipher mode.
Additionally, this novel attack technique can be used to exploit
previously unexploitable implementation flaws in a Man-in-the-Middle
scenario.

The attack works by an attacker injecting an arbitrary number of
SSH_MSG_IGNORE messages during the initial key exchange and consequently
removing the same number of messages just after the initial key exchange
has concluded. This is possible due to missing authentication of the
excess SSH_MSG_IGNORE messages and the fact that the implicit sequence
numbers used within the SSH protocol are only checked after the initial
key exchange.

In the case of ChaCha20-Poly1305, the attack is guaranteed to work on
every connection as this cipher does not maintain an internal state
other than the message's sequence number. In the case of
Encrypt-Then-MAC, practical exploitation requires the use of a CBC
cipher; while theoretical integrity is broken for all ciphers when using
this mode, message processing will fail at the application layer for CTR
and stream ciphers.

For more details see
[https://terrapin-attack.com](https://terrapin-attack.com).

### Impact

This attack targets the specification of ChaCha20-Poly1305
(chacha20-poly1305@&#8203;openssh.com) and Encrypt-then-MAC
(*-etm@openssh.com), which are widely adopted by well-known SSH
implementations and can be considered de-facto standard. These
algorithms can be practically exploited; however, in the case of
Encrypt-Then-MAC, we additionally require the use of a CBC cipher. As a
consequence, this attack works against all well-behaving SSH
implementations supporting either of those algorithms and can be used to
downgrade (but not fully strip) connection security in case SSH
extension negotiation (RFC8308) is supported. The attack may also enable
attackers to exploit certain implementation flaws in a man-in-the-middle
(MitM) scenario.

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTAzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-29 12:58:29 -05:00
renovate[bot] 7f12ab4d11
chore(deps): update dependency @types/react to v18.2.46 (#1111)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react))
| [`18.2.45` ->
`18.2.46`](https://renovatebot.com/diffs/npm/@types%2freact/18.2.45/18.2.46)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/18.2.46?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/18.2.46?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/18.2.45/18.2.46?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/18.2.45/18.2.46?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-28 19:34:47 +00:00
renovate[bot] 745bbb079a
fix(deps): update module github.com/prometheus/client_golang to v1.18.0 (#1110)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)
| `v1.17.0` -> `v1.18.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fprometheus%2fclient_golang/v1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fprometheus%2fclient_golang/v1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fprometheus%2fclient_golang/v1.17.0/v1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fprometheus%2fclient_golang/v1.17.0/v1.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>prometheus/client_golang
(github.com/prometheus/client_golang)</summary>

###
[`v1.18.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.18.0):
v0.18.0

[Compare
Source](https://togithub.com/prometheus/client_golang/compare/v1.17.0...v1.18.0)

#### What's Changed

- \[FEATURE] promlint: Allow creation of custom metric validations.
[#&#8203;1311](https://togithub.com/prometheus/client_golang/issues/1311)
- \[FEATURE] Go programs using client_golang can be built in wasip1 OS.
[#&#8203;1350](https://togithub.com/prometheus/client_golang/issues/1350)
- \[BUGFIX] histograms: Add timer to reset ASAP after bucket limiting
has happened.
[#&#8203;1367](https://togithub.com/prometheus/client_golang/issues/1367)
- \[BUGFIX] testutil: Fix comparison of metrics with empty Help strings.
[#&#8203;1378](https://togithub.com/prometheus/client_golang/issues/1378)
- \[ENHANCEMENT] Improved performance of
`MetricVec.WithLabelValues(...)`.
[#&#8203;1360](https://togithub.com/prometheus/client_golang/issues/1360)

#### New Contributors

- [@&#8203;srenatus](https://togithub.com/srenatus) made their first
contribution in
[https://github.com/prometheus/client_golang/pull/1350](https://togithub.com/prometheus/client_golang/pull/1350)
- [@&#8203;jadolg](https://togithub.com/jadolg) made their first
contribution in
[https://github.com/prometheus/client_golang/pull/1342](https://togithub.com/prometheus/client_golang/pull/1342)
- [@&#8203;manas-rust](https://togithub.com/manas-rust) made their first
contribution in
[https://github.com/prometheus/client_golang/pull/1383](https://togithub.com/prometheus/client_golang/pull/1383)
- [@&#8203;bluekeyes](https://togithub.com/bluekeyes) made their first
contribution in
[https://github.com/prometheus/client_golang/pull/1378](https://togithub.com/prometheus/client_golang/pull/1378)
- [@&#8203;tsipo](https://togithub.com/tsipo) made their first
contribution in
[https://github.com/prometheus/client_golang/pull/1387](https://togithub.com/prometheus/client_golang/pull/1387)

**Full Changelog**:
https://github.com/prometheus/client_golang/compare/v1.17.0...v1.18.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-28 03:54:23 +00:00
renovate[bot] 82b382edf2
chore(deps): update typescript-eslint monorepo to v6.16.0 (#1109)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.15.0` ->
`6.16.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.15.0/6.16.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.15.0/6.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.15.0/6.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.15.0` ->
`6.16.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.15.0/6.16.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.15.0/6.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.15.0/6.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.16.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6160-2023-12-25)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.15.0...v6.16.0)

##### Bug Fixes

- **eslint-plugin:** \[unbound-method] exempt all non-Promise built-in
statics
([#&#8203;8096](https://togithub.com/typescript-eslint/typescript-eslint/issues/8096))
([3182959](31829591e2))

##### Features

- **eslint-plugin:** deprecate formatting (meta.type: layout) rules
([#&#8203;8073](https://togithub.com/typescript-eslint/typescript-eslint/issues/8073))
([04dea84](04dea84e8e))
- **eslint-plugin:** deprecate no-extra-semi in favor of ESLint
Stylistic equivalent
([#&#8203;8123](https://togithub.com/typescript-eslint/typescript-eslint/issues/8123))
([9368bf3](9368bf390a))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.16.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6160-2023-12-25)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.15.0...v6.16.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-25 21:52:32 +00:00
renovate[bot] caf7c29d6a
chore(deps): update actions/deploy-pages digest to 7a9bd94 (#1107)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | digest | `f33f41b` -> `7a9bd94` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-23 04:54:53 +00:00
renovate[bot] 0a41acae08
fix(deps): update module connectrpc.com/connect to v1.14.0 (#1108)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [connectrpc.com/connect](https://togithub.com/connectrpc/connect-go) |
`v1.13.0` -> `v1.14.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/connectrpc.com%2fconnect/v1.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/connectrpc.com%2fconnect/v1.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/connectrpc.com%2fconnect/v1.13.0/v1.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/connectrpc.com%2fconnect/v1.13.0/v1.14.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>connectrpc/connect-go (connectrpc.com/connect)</summary>

###
[`v1.14.0`](https://togithub.com/connectrpc/connect-go/releases/tag/v1.14.0)

[Compare
Source](https://togithub.com/connectrpc/connect-go/compare/v1.13.0...v1.14.0)

#### What's Changed

##### Security

- Update `google.golang.org/protobuf` to v1.32.0 to fix a security
vulnerability in `protojson` thanks to
[@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;660](https://togithub.com/connectrpc/connect-go/issues/660).
For more information, refer to the [protobuf
v1.32.0](https://togithub.com/protocolbuffers/protobuf-go/releases/tag/v1.32.0)
release notes.

##### Bugfixes

- Resolved an issue where the `ErrorWriter` misclassified GET requests
by [@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;654](https://togithub.com/connectrpc/connect-go/issues/654)

**Full Changelog**:
https://github.com/connectrpc/connect-go/compare/v1.13.0...v1.14.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-23 00:17:52 +00:00
renovate[bot] e0d3b34aa2
fix(deps): update module google.golang.org/protobuf to v1.32.0 (#1106)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[google.golang.org/protobuf](https://togithub.com/protocolbuffers/protobuf-go)
| `v1.31.0` -> `v1.32.0` |
[![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fprotobuf/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/google.golang.org%2fprotobuf/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/google.golang.org%2fprotobuf/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fprotobuf/v1.31.0/v1.32.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.32.0`](https://togithub.com/protocolbuffers/protobuf-go/releases/tag/v1.32.0)

[Compare
Source](https://togithub.com/protocolbuffers/protobuf-go/compare/v1.31.0...v1.32.0)

**Full Changelog**:
https://github.com/protocolbuffers/protobuf-go/compare/v1.31.0...v1.32.0

This release contains commit
bfcd6476a3,
which fixes a denial of service vulnerability by preventing a stack
overflow through a default maximum recursion limit. See
[https://github.com/golang/protobuf/issues/1583](https://togithub.com/golang/protobuf/issues/1583)
and
[https://github.com/golang/protobuf/issues/1584](https://togithub.com/golang/protobuf/issues/1584)
for details.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-22 15:54:22 +00:00
renovate[bot] f0d620698a
fix(deps): update module github.com/spf13/viper to v1.18.2 (#1069)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | `v1.18.0`
-> `v1.18.2` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fspf13%2fviper/v1.18.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fspf13%2fviper/v1.18.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fspf13%2fviper/v1.18.0/v1.18.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fspf13%2fviper/v1.18.0/v1.18.2?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.18.2`](https://togithub.com/spf13/viper/releases/tag/v1.18.2)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.18.1...v1.18.2)

**tl;dr Skip 1.18.0 and 1.18.1 and upgrade to this version instead.**

This release fixes a regression that appears in rare circumstances when
using `Unmarshal` or `UnmarshalExact` to decode values onto pointers
with multiple indirection (eg. pointer to a pointer, etc). The change
was introduced in 1.18.0 as a means to resolve a long-standing bug when
decoding environment variables to structs.

The feature is now disabled by default and can be enabled using the
`viper_bind_struct` build tag. It's also considered experimental at this
point, so breaking changes may be introduced in the future.

#### What's Changed

##### Bug Fixes 🐛

- feat!: hide struct binding behind a feature flag by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1715](https://togithub.com/spf13/viper/pull/1715)

**Full Changelog**:
https://github.com/spf13/viper/compare/v1.18.1...v1.18.2

### [`v1.18.1`](https://togithub.com/spf13/viper/releases/tag/v1.18.1)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.18.0...v1.18.1)

<!-- Release notes generated using configuration in .github/release.yml
at v1.18.1 -->

#### What's Changed

##### Bug Fixes 🐛

- Merge missing struct keys inside UnmarshalExact by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[https://github.com/spf13/viper/pull/1704](https://togithub.com/spf13/viper/pull/1704)

**Full Changelog**:
https://github.com/spf13/viper/compare/v1.18.0...v1.18.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTAzLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-22 13:13:32 +00:00
renovate[bot] b6c00c7615
fix(deps): update module github.com/open-feature/flagd/core to v0.7.3 (#1104)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| `v0.7.2` -> `v0.7.3` |
[![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.2/v0.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-feature%2fflagd%2fcore/v0.7.2/v0.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-22 10:37:55 +00:00
github-actions[bot] 4711aaa0ec
chore: release main (#1057)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.8.0</summary>

##
[0.8.0](https://github.com/open-feature/flagd/compare/flagd/v0.7.2...flagd/v0.8.0)
(2023-12-22)


### ⚠ BREAKING CHANGES

* remove deprecated flags
([#1075](https://github.com/open-feature/flagd/issues/1075))

### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.2
([#1056](https://github.com/open-feature/flagd/issues/1056))
([81e83ea](81e83ea0a4))
* **deps:** update module github.com/spf13/viper to v1.18.0
([#1060](https://github.com/open-feature/flagd/issues/1060))
([9dfa689](9dfa6899ed))


### 🧹 Chore

* refactoring component structure
([#1044](https://github.com/open-feature/flagd/issues/1044))
([0c7f78a](0c7f78a95f))
* remove deprecated flags
([#1075](https://github.com/open-feature/flagd/issues/1075))
([49f6fe5](49f6fe5679))
</details>

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

##
[0.4.0](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.3.2...flagd-proxy/v0.4.0)
(2023-12-22)


### ⚠ BREAKING CHANGES

* remove deprecated flags
([#1075](https://github.com/open-feature/flagd/issues/1075))

### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.2
([#1056](https://github.com/open-feature/flagd/issues/1056))
([81e83ea](81e83ea0a4))
* **deps:** update module github.com/spf13/viper to v1.18.0
([#1060](https://github.com/open-feature/flagd/issues/1060))
([9dfa689](9dfa6899ed))


### 🧹 Chore

* refactoring component structure
([#1044](https://github.com/open-feature/flagd/issues/1044))
([0c7f78a](0c7f78a95f))
* remove deprecated flags
([#1075](https://github.com/open-feature/flagd/issues/1075))
([49f6fe5](49f6fe5679))
</details>

<details><summary>core: 0.7.3</summary>

##
[0.7.3](https://github.com/open-feature/flagd/compare/core/v0.7.2...core/v0.7.3)
(2023-12-22)


### 🐛 Bug Fixes

* **deps:** update golang.org/x/exp digest to 6522937
([#1032](https://github.com/open-feature/flagd/issues/1032))
([78b23d2](78b23d25fc))
* **deps:** update module connectrpc.com/connect to v1.13.0
([#1070](https://github.com/open-feature/flagd/issues/1070))
([63f86ea](63f86ea699))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.4.0 ([#1068](https://github.com/open-feature/flagd/issues/1068))
([5c5d5ab](5c5d5abc38))
* **deps:** update module github.com/open-feature/open-feature-operator
to v0.5.2 ([#1059](https://github.com/open-feature/flagd/issues/1059))
([cefea3e](cefea3ee03))
* **deps:** update module google.golang.org/grpc to v1.60.0
([#1074](https://github.com/open-feature/flagd/issues/1074))
([bf3e9d8](bf3e9d82b4))
* **deps:** update module google.golang.org/grpc to v1.60.1
([#1092](https://github.com/open-feature/flagd/issues/1092))
([5bf1368](5bf1368e68))
* make sure sync builder is initialized to avoid nil pointer access
([#1076](https://github.com/open-feature/flagd/issues/1076))
([ebcd616](ebcd616e0d))


###  New Features

* support new flagd.evaluation and flagd.sync schemas
([#1083](https://github.com/open-feature/flagd/issues/1083))
([e9728aa](e9728aae83))


### 🧹 Chore

* refactoring component structure
([#1044](https://github.com/open-feature/flagd/issues/1044))
([0c7f78a](0c7f78a95f))
* renaming of evaluation components
([#1064](https://github.com/open-feature/flagd/issues/1064))
([d39f31d](d39f31d65b))
* use client-go library for retrieving FeatureFlag CRs
([#1077](https://github.com/open-feature/flagd/issues/1077))
([c86dff0](c86dff0bd0))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-12-21 22:48:55 -05:00
renovate[bot] 8902108979
chore(deps): update github/codeql-action digest to 012739e (#1103)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `b374143` -> `012739e` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-22 03:12:27 +00:00
Todd Baert ada40a6ae2
fix: CGO_ENABLED=0 for statically-linked builds (#1102)
Removes the dependency on native c-libs for more portability.

This is already done in the docker builds, updates were only needed for
bins. Tested this locally by mounting it into an old Ubuntu and it
resolved the issue.

Fixes: https://github.com/open-feature/flagd/issues/878

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-21 14:47:55 -05:00
Florian Bacher e9728aae83
feat: support new flagd.evaluation and flagd.sync schemas (#1083)
Closes #1029 

This PR introduces support for the newly introduced evaluation and sync
schemas.

Supporting both the old and new schemas involves some duplication, but I
tried to keep it as minimal as possible. I'm of course open for
suggestions for any ideas on how to make this simpler :)

See reasoning for new naming
[here](https://github.com/open-feature/flagd/issues/948).

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-21 10:20:01 -05:00
Michael Beemer 3385d58973
docs: fixed a type in the custom operations section
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-12-20 21:39:07 -05:00
renovate[bot] dea8c786dd
chore(deps): update dependency eslint to v8.56.0 (#1097)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint](https://eslint.org)
([source](https://togithub.com/eslint/eslint)) | [`8.55.0` ->
`8.56.0`](https://renovatebot.com/diffs/npm/eslint/8.55.0/8.56.0) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/eslint/8.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint/8.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint/8.55.0/8.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint/8.55.0/8.56.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>eslint/eslint (eslint)</summary>

### [`v8.56.0`](https://togithub.com/eslint/eslint/releases/tag/v8.56.0)

[Compare
Source](https://togithub.com/eslint/eslint/compare/v8.55.0...v8.56.0)

##### Features

-
[`0dd9704`](0dd9704c47)
feat: Support custom severity when reporting unused disable directives
([#&#8203;17212](https://togithub.com/eslint/eslint/issues/17212))
(Bryan Mishkin)
-
[`31a7e3f`](31a7e3fde4)
feat: fix no-restricted-properties false negatives with unknown objects
([#&#8203;17818](https://togithub.com/eslint/eslint/issues/17818)) (Arka
Pratim Chaudhuri)

##### Bug Fixes

-
[`7d5e5f6`](7d5e5f6884)
fix: `TypeError: fs.exists is not a function` on read-only file system
([#&#8203;17846](https://togithub.com/eslint/eslint/issues/17846))
(Francesco Trotta)
-
[`74739c8`](74739c849b)
fix: suggestion with invalid syntax in no-promise-executor-return rule
([#&#8203;17812](https://togithub.com/eslint/eslint/issues/17812))
(Bryan Mishkin)

##### Documentation

-
[`9007719`](90077199fe)
docs: update link in ways-to-extend.md
([#&#8203;17839](https://togithub.com/eslint/eslint/issues/17839)) (Amel
SELMANE)
-
[`3a22236`](3a22236f8d)
docs: Update README (GitHub Actions Bot)
-
[`54c3ca6`](54c3ca6f2d)
docs: fix migration-guide example
([#&#8203;17829](https://togithub.com/eslint/eslint/issues/17829))
(Tanuj Kanti)
-
[`4391b71`](4391b71e62)
docs: check config comments in rule examples
([#&#8203;17815](https://togithub.com/eslint/eslint/issues/17815))
(Francesco Trotta)
-
[`fd28363`](fd2836342c)
docs: remove mention about ESLint stylistic rules in readme
([#&#8203;17810](https://togithub.com/eslint/eslint/issues/17810))
(Zwyx)
-
[`48ed5a6`](48ed5a6dad)
docs: Update README (GitHub Actions Bot)

##### Chores

-
[`ba6af85`](ba6af85c7d)
chore: upgrade
[@&#8203;eslint/js](https://togithub.com/eslint/js)[@&#8203;8](https://togithub.com/8).56.0
([#&#8203;17864](https://togithub.com/eslint/eslint/issues/17864))
(Milos Djermanovic)
-
[`60a531a`](60a531a9c0)
chore: package.json update for
[@&#8203;eslint/js](https://togithub.com/eslint/js) release (Jenkins)
-
[`ba87a06`](ba87a0651a)
chore: update dependency markdownlint to ^0.32.0
([#&#8203;17783](https://togithub.com/eslint/eslint/issues/17783))
(renovate\[bot])
-
[`9271d10`](9271d10d9e)
chore: add GitHub issue template for docs issues
([#&#8203;17845](https://togithub.com/eslint/eslint/issues/17845)) (Josh
Goldberg )
-
[`70a686b`](70a686b3c1)
chore: Convert rule tests to FlatRuleTester
([#&#8203;17819](https://togithub.com/eslint/eslint/issues/17819))
(Nicholas C. Zakas)
-
[`f3a599d`](f3a599d34c)
chore: upgrade eslint-plugin-unicorn to v49.0.0
([#&#8203;17837](https://togithub.com/eslint/eslint/issues/17837)) (唯然)
-
[`905d4b7`](905d4b75ab)
chore: upgrade eslint-plugin-eslint-plugin v5.2.1
([#&#8203;17838](https://togithub.com/eslint/eslint/issues/17838)) (唯然)
-
[`4d7c3ce`](4d7c3ce246)
chore: update eslint-plugin-n v16.4.0
([#&#8203;17836](https://togithub.com/eslint/eslint/issues/17836)) (唯然)
-
[`fd0c60c`](fd0c60c3be)
ci: unpin Node.js 21.2.0
([#&#8203;17821](https://togithub.com/eslint/eslint/issues/17821))
(Francesco Trotta)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 09:05:23 +00:00
renovate[bot] 20edc12647
chore(deps): update dependency vite to v5.0.10 (#1096)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vitejs.dev)
([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) |
[`5.0.8` ->
`5.0.10`](https://renovatebot.com/diffs/npm/vite/5.0.8/5.0.10) |
[![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.0.8/5.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.0.8/5.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>vitejs/vite (vite)</summary>

###
[`v5.0.10`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small5010-2023-12-15-small)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.0.9...v5.0.10)

- fix: omit protocol does not require pre-transform
([#&#8203;15355](https://togithub.com/vitejs/vite/issues/15355))
([d9ae1b2](https://togithub.com/vitejs/vite/commit/d9ae1b2)), closes
[#&#8203;15355](https://togithub.com/vitejs/vite/issues/15355)
- fix(build): use base64 for inline SVG if it contains both single and
double quotes
([#&#8203;15271](https://togithub.com/vitejs/vite/issues/15271))
([1bbff16](https://togithub.com/vitejs/vite/commit/1bbff16)), closes
[#&#8203;15271](https://togithub.com/vitejs/vite/issues/15271)

###
[`v5.0.9`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small509-2023-12-14-small)

[Compare
Source](https://togithub.com/vitejs/vite/compare/v5.0.8...v5.0.9)

- fix: htmlFallbackMiddleware for favicon
([#&#8203;15301](https://togithub.com/vitejs/vite/issues/15301))
([c902545](https://togithub.com/vitejs/vite/commit/c902545)), closes
[#&#8203;15301](https://togithub.com/vitejs/vite/issues/15301)
- fix: more stable hash calculation for depsOptimize
([#&#8203;15337](https://togithub.com/vitejs/vite/issues/15337))
([2b39fe6](https://togithub.com/vitejs/vite/commit/2b39fe6)), closes
[#&#8203;15337](https://togithub.com/vitejs/vite/issues/15337)
- fix(scanner): catch all external files for glob imports
([#&#8203;15286](https://togithub.com/vitejs/vite/issues/15286))
([129d0d0](https://togithub.com/vitejs/vite/commit/129d0d0)), closes
[#&#8203;15286](https://togithub.com/vitejs/vite/issues/15286)
- fix(server): avoid chokidar throttling on startup
([#&#8203;15347](https://togithub.com/vitejs/vite/issues/15347))
([56a5740](https://togithub.com/vitejs/vite/commit/56a5740)), closes
[#&#8203;15347](https://togithub.com/vitejs/vite/issues/15347)
- fix(worker): replace `import.meta` correctly for IIFE worker
([#&#8203;15321](https://togithub.com/vitejs/vite/issues/15321))
([08d093c](https://togithub.com/vitejs/vite/commit/08d093c)), closes
[#&#8203;15321](https://togithub.com/vitejs/vite/issues/15321)
- feat: log re-optimization reasons
([#&#8203;15339](https://togithub.com/vitejs/vite/issues/15339))
([b1a6c84](https://togithub.com/vitejs/vite/commit/b1a6c84)), closes
[#&#8203;15339](https://togithub.com/vitejs/vite/issues/15339)
- chore: temporary typo
([#&#8203;15329](https://togithub.com/vitejs/vite/issues/15329))
([7b71854](https://togithub.com/vitejs/vite/commit/7b71854)), closes
[#&#8203;15329](https://togithub.com/vitejs/vite/issues/15329)
- perf: avoid computing paths on each request
([#&#8203;15318](https://togithub.com/vitejs/vite/issues/15318))
([0506812](https://togithub.com/vitejs/vite/commit/0506812)), closes
[#&#8203;15318](https://togithub.com/vitejs/vite/issues/15318)
- perf: temporary hack to avoid fs checks for
/[@&#8203;react-refresh](https://togithub.com/react-refresh)
([#&#8203;15299](https://togithub.com/vitejs/vite/issues/15299))
([b1d6211](https://togithub.com/vitejs/vite/commit/b1d6211)), closes
[#&#8203;15299](https://togithub.com/vitejs/vite/issues/15299)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 07:14:55 +00:00
renovate[bot] d4c94177c9
chore(deps): update typescript-eslint monorepo to v6.15.0 (#1098)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@typescript-eslint/eslint-plugin](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin))
| [`6.14.0` ->
`6.15.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/6.14.0/6.15.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2feslint-plugin/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2feslint-plugin/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2feslint-plugin/6.14.0/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2feslint-plugin/6.14.0/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[@typescript-eslint/parser](https://togithub.com/typescript-eslint/typescript-eslint)
([source](https://togithub.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser))
| [`6.14.0` ->
`6.15.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/6.14.0/6.15.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@typescript-eslint%2fparser/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@typescript-eslint%2fparser/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@typescript-eslint%2fparser/6.14.0/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@typescript-eslint%2fparser/6.14.0/6.15.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/eslint-plugin)</summary>

###
[`v6.15.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#6150-2023-12-18)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.14.0...v6.15.0)

##### Features

- **eslint-plugin:** \[no-useless-template-literals] add new rule
([#&#8203;7957](https://togithub.com/typescript-eslint/typescript-eslint/issues/7957))
([ff75785](ff75785f4c)),
closes
[#&#8203;2846](https://togithub.com/typescript-eslint/typescript-eslint/issues/2846)
- require-array-sort-compare + toSorted
([#&#8203;8052](https://togithub.com/typescript-eslint/typescript-eslint/issues/8052))
([c9661c8](c9661c8bbf))

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

<details>
<summary>typescript-eslint/typescript-eslint
(@&#8203;typescript-eslint/parser)</summary>

###
[`v6.15.0`](https://togithub.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#6150-2023-12-18)

[Compare
Source](https://togithub.com/typescript-eslint/typescript-eslint/compare/v6.14.0...v6.15.0)

**Note:** Version bump only for package
[@&#8203;typescript-eslint/parser](https://togithub.com/typescript-eslint/parser)

You can read about our [versioning
strategy](https://main--typescript-eslint.netlify.app/users/versioning)
and
[releases](https://main--typescript-eslint.netlify.app/users/releases)
on our website.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 03:34:24 +00:00
renovate[bot] 875780aa63
chore(deps): update dependency @types/react-dom to v18.2.18 (#1095)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[@types/react-dom](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom)
([source](https://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom))
| [`18.2.17` ->
`18.2.18`](https://renovatebot.com/diffs/npm/@types%2freact-dom/18.2.17/18.2.18)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact-dom/18.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact-dom/18.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact-dom/18.2.17/18.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact-dom/18.2.17/18.2.18?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-20 01:00:40 +00:00
Michael Beemer 11692e60fc
docs: add flag definition playground (#1084)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-12-19 16:29:47 -05:00
renovate[bot] a690d3b2bc
chore(deps): update actions/upload-pages-artifact action to v3 (#1094)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/upload-pages-artifact](https://togithub.com/actions/upload-pages-artifact)
| action | major | `v2` -> `v3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/upload-pages-artifact
(actions/upload-pages-artifact)</summary>

###
[`v3`](https://togithub.com/actions/upload-pages-artifact/compare/v2...v3)

[Compare
Source](https://togithub.com/actions/upload-pages-artifact/compare/v2...v3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 20:33:22 +00:00
renovate[bot] a00432fe56
chore(deps): update actions/deploy-pages action to v4 (#1093)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | major | `v3` -> `v4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/deploy-pages (actions/deploy-pages)</summary>

### [`v4`](https://togithub.com/actions/deploy-pages/compare/v3...v4)

[Compare
Source](https://togithub.com/actions/deploy-pages/compare/v3...v4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 14:10:35 -05:00
renovate[bot] 5bf1368e68
fix(deps): update module google.golang.org/grpc to v1.60.1 (#1092)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| patch | `v1.60.0` -> `v1.60.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.60.1`](https://togithub.com/grpc/grpc-go/releases/tag/v1.60.1)

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.60.0...v1.60.1)

### Bug Fixes

- server: fix two bugs that could lead to panics at shutdown when using
[NumStreamWorkers](https://pkg.go.dev/google.golang.org/grpc#NumStreamWorkers)
(experimental feature).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 06:50:37 +00:00
renovate[bot] c95cf55fa8
chore(deps): update google-github-actions/release-please-action digest to cc61a07 (#1091)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | digest | `a2d8d68` -> `cc61a07` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-19 04:23:03 +00:00
renovate[bot] 068aa84b5d
chore(deps): update sigstore/cosign-installer digest to b18d21a (#1087)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `9614fae` -> `b18d21a` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 19:02:14 +00:00
renovate[bot] 00e2fe1dfd
chore(deps): update docker/metadata-action digest to 9dc751f (#1086)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `6d6eaf3` -> `9dc751f` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-18 15:28:30 +00:00
renovate[bot] e866fecc73
chore(deps): update docker/metadata-action digest to 6d6eaf3 (#1085)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `31cebac` -> `6d6eaf3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy45My4xIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-16 02:13:48 +00:00
Craig Pastro 49f6fe5679
chore!: remove deprecated flags (#1075)
Remove deprecated flags in flagd and flagd-proxy. Slight clean up of the
code by removing `getPortValueOrDefault`. Setting the default value in
the definition of the flag accomplishes the same thing.

Signed-off-by: Craig Pastro <craig.pastro@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-12-15 11:39:44 -05:00
Florian Bacher d39f31d65b
chore: renaming of evaluation components (#1064)
This PR improves the naming of the evaluation components. Changes made:

- Renamed `eval` package to `evaluator`
- Removed the `Evaluation`/`Evaluator` suffixes of structs within the
`evaluator ` package

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-12-14 16:32:01 -05:00
Florian Bacher c86dff0bd0
chore: use client-go library for retrieving FeatureFlag CRs (#1077)
Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-12-14 09:47:52 -05:00
renovate[bot] c8c9a19a4d
chore(deps): update github/codeql-action action to v3 (#1081)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | major | `v2` -> `v3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

### [`v3`](https://togithub.com/github/codeql-action/compare/v2...v3)

[Compare
Source](https://togithub.com/github/codeql-action/compare/v2...v3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-13 20:04:50 +00:00
Michael Beemer f0d7c91473
Remove benchmark workflow
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-12-12 15:38:27 -05:00
Kavindu Dodanduwa 3ec8cf6704
chore: update to go-sdk 1.9.0 (#1080)
## This PR

Update test dependencies to go-sdk 1.9.0

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-12-12 11:51:06 -08:00
renovate[bot] 5c5d5abc38
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.4.0 (#1068)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://togithub.com/diegoholiveira/jsonlogic)
| require | minor | `v3.3.2` -> `v3.4.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.4.0`](https://togithub.com/diegoholiveira/jsonlogic/releases/tag/v3.4.0)

[Compare
Source](https://togithub.com/diegoholiveira/jsonlogic/compare/v3.3.2...v3.4.0)

#### What's Changed

- Verify array before try to access any position by
[@&#8203;diegoholiveira](https://togithub.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/76](https://togithub.com/diegoholiveira/jsonlogic/pull/76)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.3.2...v3.4.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 18:10:26 +00:00
renovate[bot] bf3e9d82b4
fix(deps): update module google.golang.org/grpc to v1.60.0 (#1074)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| minor | `v1.59.0` -> `v1.60.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.60.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.60.0):
Release 1.60.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.59.0...v1.60.0)

### Security

- credentials/tls: if not set, set TLS MinVersion to 1.2 and
CipherSuites according to supported suites not forbidden by RFC7540.
- This is a behavior change to bring us into better alignment with RFC
7540.

### API Changes

- resolver: remove deprecated and experimental
`ClientConn.NewServiceConfig`
([#&#8203;6784](https://togithub.com/grpc/grpc-go/issues/6784))
- client: remove deprecated `grpc.WithServiceConfig` `DialOption`
([#&#8203;6800](https://togithub.com/grpc/grpc-go/issues/6800))

### Bug Fixes

- client: fix race that could cause a deadlock while entering idle mode
and receiving a name resolver update
([#&#8203;6804](https://togithub.com/grpc/grpc-go/issues/6804))
- client: always enable TCP keepalives with OS defaults
([#&#8203;6834](https://togithub.com/grpc/grpc-go/issues/6834))
- credentials/alts: fix a bug preventing ALTS from connecting to the
metadata server if the default scheme is overridden
([#&#8203;6686](https://togithub.com/grpc/grpc-go/issues/6686))
- Special Thanks: [@&#8203;mjamaloney](https://togithub.com/mjamaloney)

### Behavior Changes

- server: Do not return from Stop() or GracefulStop() until all
resources are released
([#&#8203;6489](https://togithub.com/grpc/grpc-go/issues/6489))
    -   Special Thanks: [@&#8203;fho](https://togithub.com/fho)

### Documentation

- codes: clarify that only codes defined by this package are valid and
that users should not cast other values to `codes.Code`
([#&#8203;6701](https://togithub.com/grpc/grpc-go/issues/6701))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 15:24:30 +00:00
Florian Bacher ebcd616e0d
fix: make sure sync builder is initialized to avoid nil pointer access (#1076)
This is a follow up to the latest refactoring PR #1044 to avoid a nil
pointer access when attempting to read from a kubernetes sync source

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-12-12 09:45:49 -05:00
renovate[bot] 63f86ea699
fix(deps): update module connectrpc.com/connect to v1.13.0 (#1070)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [connectrpc.com/connect](https://togithub.com/connectrpc/connect-go) |
require | minor | `v1.12.0` -> `v1.13.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>connectrpc/connect-go (connectrpc.com/connect)</summary>

###
[`v1.13.0`](https://togithub.com/connectrpc/connect-go/releases/tag/v1.13.0)

[Compare
Source](https://togithub.com/connectrpc/connect-go/compare/v1.12.0...v1.13.0)

#### What's Changed

##### Enhancements

- Add `Schema` field to `connect.Spec` for introspection by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;629](https://togithub.com/connectrpc/connect-go/issues/629)
- Add support for dynamic message types via message initializers by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;640](https://togithub.com/connectrpc/connect-go/issues/640)

##### Bugfixes

- Type URLs in error details can have any host and even include URI
scheme by [@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;636](https://togithub.com/connectrpc/connect-go/issues/636)
- Improve GET requests: clients should not include content headers,
servers should disallow a body by
[@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;644](https://togithub.com/connectrpc/connect-go/issues/644)
- Fix mis-categorization of "deadline exceeded" errors by
[@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;643](https://togithub.com/connectrpc/connect-go/issues/643)

##### Other changes

- Improve test code and fix many sources of flakiness by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;594](https://togithub.com/connectrpc/connect-go/issues/594),
[#&#8203;624](https://togithub.com/connectrpc/connect-go/issues/624),
[#&#8203;627](https://togithub.com/connectrpc/connect-go/issues/627),
and [#&#8203;628](https://togithub.com/connectrpc/connect-go/issues/628)
- Run conformance tests in CI by
[@&#8203;jhump](https://togithub.com/jhump) in
[#&#8203;642](https://togithub.com/connectrpc/connect-go/issues/642)
- Internal refactoring to support future robustness improvements by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[#&#8203;646](https://togithub.com/connectrpc/connect-go/issues/646)

**Full Changelog**:
https://github.com/connectrpc/connect-go/compare/v1.12.0...v1.13.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 04:12:36 +00:00
renovate[bot] 3c7b58d142
chore(deps): update sigstore/cosign-installer digest to 9614fae (#1073)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `1fc5bd3` -> `9614fae` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 01:13:55 +00:00
renovate[bot] ce86c98e53
chore(deps): update google-github-actions/release-please-action digest to a2d8d68 (#1067)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | digest | `a6d1fd9` -> `a2d8d68` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 21:08:46 +00:00
renovate[bot] 3969fb7fc3
chore(deps): update actions/deploy-pages digest to 13b55b3 (#1066)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | digest | `77d7344` -> `13b55b3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-11 19:49:57 +00:00
Henry Chen 1b56c3facc
docs: fix a typo in `docs/featureflagsource.md` (#1071)
## This PR

Fix a typo in `docs/featureflagsource.md`

Signed-off-by: Henry Chen <1474479+chenhunghan@users.noreply.github.com>
2023-12-11 11:04:48 -05:00
renovate[bot] b096c34418
chore(deps): update github/codeql-action digest to c0d1daa (#1065)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `407ffaf` -> `c0d1daa` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 15:21:27 +00:00
Florian Bacher 0c7f78a95f
chore: refactoring component structure (#1044)
This PR refactors the core package by restructuring the components
responsible for managing the subscriptions, as well as the creation of
sync sources. The following changes have been made:

- Renamed `sync-store` package to `subscriptions`. This has been done to
avoid confusion because we already have a `sync`, and a `store`.
package. Within the package, the `SyncStore`. has been renamed to
`subscriptions.Manager`, which should reflect its responsibility in a
better way. Also, the `syncHandler` has been renamed to `multiplexer`,
as this one is responsible for sending updates of a certain target to
all subscribers - `syncHandler` was a bit too generic in my opinion.
- Moved the `GetSyncSourceFromURI` method to a new package,
`sync/builder`, to remove the responsibility of building concrete sync
sources from the subscription manager
- Moved the logic of retrieving the K8s client config to the sync
builder. Previously, this was done in the `runtime` package by calling
the respective methods for the config retrieval provided by the
`sync/kubernetes` package and then handing that config back to the
initialization of the `K8sSync`. Note: This step can potentially be done
in a separate PR, if so desired.

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2023-12-07 06:59:17 +01:00
renovate[bot] ec5f778286
chore(deps): update actions/setup-go action to v5 (#1062)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-go](https://togithub.com/actions/setup-go) | action |
major | `v4` -> `v5` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/setup-go (actions/setup-go)</summary>

### [`v5`](https://togithub.com/actions/setup-go/compare/v4...v5)

[Compare Source](https://togithub.com/actions/setup-go/compare/v4...v5)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 04:00:04 +00:00
renovate[bot] 9dfa6899ed
fix(deps): update module github.com/spf13/viper to v1.18.0 (#1060)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | require |
minor | `v1.17.0` -> `v1.18.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.18.0`](https://togithub.com/spf13/viper/releases/tag/v1.18.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.17.0...v1.18.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### `AutomaticEnv` works with `Unmarshal`

Previously, environment variables that weren't bound manually or had no
defaults could not be mapped by `Unmarshal`. (The problem is explained
in details in this issue:
[#&#8203;761](https://togithub.com/spf13/viper/issues/761))

[#&#8203;1429](https://togithub.com/spf13/viper/issues/1429) introduced
a solution that solves that issue.

#### What's Changed

##### Enhancements 🚀

- chore: rename files according to enabled build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1642](https://togithub.com/spf13/viper/pull/1642)
- test: replace ifs with asserts to simplify tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1656](https://togithub.com/spf13/viper/pull/1656)
- ci: enable test shuffle and fix tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1643](https://togithub.com/spf13/viper/pull/1643)
- fix: gocritic lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1696](https://togithub.com/spf13/viper/pull/1696)

##### Bug Fixes 🐛

- Implement viper.BindStruct for automatic unmarshalling from
environment variables by
[@&#8203;krakowski](https://togithub.com/krakowski) in
[https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429)
- fix isPathShadowedInFlatMap type cast bug by
[@&#8203;linuxsong](https://togithub.com/linuxsong) in
[https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/1585)

##### Dependency Updates ⬆️

- build(deps): bump github/codeql-action from 2.21.9 to 2.22.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1661](https://togithub.com/spf13/viper/pull/1661)
- build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1659](https://togithub.com/spf13/viper/pull/1659)
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1663](https://togithub.com/spf13/viper/pull/1663)
- build(deps): bump actions/github-script from 6.4.1 to 7.0.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1686](https://togithub.com/spf13/viper/pull/1686)
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1688](https://togithub.com/spf13/viper/pull/1688)
- build(deps): bump github.com/spf13/afero from 1.10.0 to 1.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1692](https://togithub.com/spf13/viper/pull/1692)
- build(deps): bump actions/dependency-review-action from 3.1.0 to 3.1.4
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1690](https://togithub.com/spf13/viper/pull/1690)
- build(deps): bump cachix/install-nix-action from 23 to 24 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1689](https://togithub.com/spf13/viper/pull/1689)
- build(deps): bump github.com/nats-io/nkeys from 0.4.5 to 0.4.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1672](https://togithub.com/spf13/viper/pull/1672)
- build(deps): bump github.com/spf13/cast from 1.5.1 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1691](https://togithub.com/spf13/viper/pull/1691)
- build(deps): bump github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1668](https://togithub.com/spf13/viper/pull/1668)
- chore: update dependencies by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1694](https://togithub.com/spf13/viper/pull/1694)
- chore: update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1701](https://togithub.com/spf13/viper/pull/1701)

##### Other Changes

- Add info about multiple hosts for remote config by
[@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) in
[https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684)
- refactor: drop fsonitfy wrapper by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1693](https://togithub.com/spf13/viper/pull/1693)
- Note Get\* behavior on parse failure by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/spf13/viper/pull/1687](https://togithub.com/spf13/viper/pull/1687)
- fix: godot lint issues by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1657](https://togithub.com/spf13/viper/pull/1657)

#### New Contributors

- [@&#8203;KaymeKaydex](https://togithub.com/KaymeKaydex) made their
first contribution in
[https://github.com/spf13/viper/pull/1684](https://togithub.com/spf13/viper/pull/1684)
- [@&#8203;krakowski](https://togithub.com/krakowski) made their first
contribution in
[https://github.com/spf13/viper/pull/1429](https://togithub.com/spf13/viper/pull/1429)
- [@&#8203;linuxsong](https://togithub.com/linuxsong) made their first
contribution in
[https://github.com/spf13/viper/pull/1585](https://togithub.com/spf13/viper/pull/1585)

**Full Changelog**:
https://github.com/spf13/viper/compare/v1.17.0...v1.18.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 01:17:02 +00:00
renovate[bot] cefea3ee03
fix(deps): update module github.com/open-feature/open-feature-operator to v0.5.2 (#1059)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/open-feature-operator](https://togithub.com/open-feature/open-feature-operator)
| require | patch | `v0.5.1` -> `v0.5.2` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>open-feature/open-feature-operator
(github.com/open-feature/open-feature-operator)</summary>

###
[`v0.5.2`](https://togithub.com/open-feature/open-feature-operator/releases/tag/v0.5.2)

[Compare
Source](https://togithub.com/open-feature/open-feature-operator/compare/v0.5.1...v0.5.2)

##### 🐛 Bug Fixes

- bump flagd and flagd proxy version
([#&#8203;577](https://togithub.com/open-feature/open-feature-operator/issues/577))
([5d8c829](5d8c8299bc))

##### 🧹 Chore

- add helm migration section
([#&#8203;573](https://togithub.com/open-feature/open-feature-operator/issues/573))
([361d068](361d068a46))
- **deps:** update docker/metadata-action digest to
[`31cebac`](https://togithub.com/open-feature/open-feature-operator/commit/31cebac)
([#&#8203;520](https://togithub.com/open-feature/open-feature-operator/issues/520))
([5262fa7](5262fa7dc1))
- migration docs
([#&#8203;571](https://togithub.com/open-feature/open-feature-operator/issues/571))
([8bf9e42](8bf9e42fbc))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-06 21:27:57 +00:00
renovate[bot] 81e83ea0a4
fix(deps): update module github.com/open-feature/flagd/core to v0.7.2 (#1056)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.7.1` -> `v0.7.2` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-06 01:21:53 +00:00
Michael Beemer 482bb3bda0
chore: update examples in the flag definitions doc (#1058)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-12-05 17:15:07 -05:00
renovate[bot] 78b23d25fc
fix(deps): update golang.org/x/exp digest to 6522937 (#1032)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/exp | require | digest | `9a3e603` -> `6522937` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 14:32:21 -05:00
github-actions[bot] 9e6e8d77ec
chore: release main (#1038)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.7.2</summary>

##
[0.7.2](https://github.com/open-feature/flagd/compare/flagd/v0.7.1...flagd/v0.7.2)
(2023-12-05)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.1
([#1037](https://github.com/open-feature/flagd/issues/1037))
([0ed9b68](0ed9b68341))
</details>

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

##
[0.3.2](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.3.1...flagd-proxy/v0.3.2)
(2023-12-05)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.1
([#1037](https://github.com/open-feature/flagd/issues/1037))
([0ed9b68](0ed9b68341))
</details>

<details><summary>core: 0.7.2</summary>

##
[0.7.2](https://github.com/open-feature/flagd/compare/core/v0.7.1...core/v0.7.2)
(2023-12-05)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/open-feature-operator
to v0.5.0 ([#1039](https://github.com/open-feature/flagd/issues/1039))
([eb128d9](eb128d97ec))
* **deps:** update module github.com/open-feature/open-feature-operator
to v0.5.1 ([#1046](https://github.com/open-feature/flagd/issues/1046))
([0321935](0321935992))
* **deps:** update module golang.org/x/crypto to v0.16.0
([#1033](https://github.com/open-feature/flagd/issues/1033))
([b79aaf2](b79aaf2c2c))
* **deps:** update module golang.org/x/net to v0.19.0
([#1034](https://github.com/open-feature/flagd/issues/1034))
([c6426b2](c6426b20fa))
* various edge cases in targeting
([#1041](https://github.com/open-feature/flagd/issues/1041))
([ca38c16](ca38c165c6))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-12-05 12:39:23 -05:00
Todd Baert ca38c165c6
fix: various edge cases in targeting (#1041)
- returning variants from targeting which are not in the variants list is now an error
- minor spec changes

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-12-05 09:04:25 -05:00
renovate[bot] 2293f0e178
chore(deps): update actions/deploy-pages action to v3 (#1054)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | major | `v2` -> `v3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/deploy-pages (actions/deploy-pages)</summary>

### [`v3`](https://togithub.com/actions/deploy-pages/compare/v2...v3)

[Compare
Source](https://togithub.com/actions/deploy-pages/compare/v2...v3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 11:26:48 +00:00
renovate[bot] 31e9c5f002
chore(deps): update actions/configure-pages action to v4 (#1053)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/configure-pages](https://togithub.com/actions/configure-pages)
| action | major | `v3` -> `v4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/configure-pages (actions/configure-pages)</summary>

### [`v4`](https://togithub.com/actions/configure-pages/compare/v3...v4)

[Compare
Source](https://togithub.com/actions/configure-pages/compare/v3...v4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 06:24:46 +00:00
renovate[bot] 128b32295c
chore(deps): update docker/metadata-action digest to 31cebac (#1048)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `e6428a5` -> `31cebac` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 03:25:22 +00:00
renovate[bot] 0ae6662d17
chore(deps): update anchore/sbom-action digest to 5ecf649 (#1049)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `fd74a6f` -> `5ecf649` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 00:55:11 +00:00
renovate[bot] 6c64cb8e62
chore(deps): update actions/configure-pages digest to b8130d9 (#1051)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/configure-pages](https://togithub.com/actions/configure-pages)
| action | digest | `f156874` -> `b8130d9` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 21:24:37 +00:00
Kavindu Dodanduwa 4c36155ba0
fix: remove deprecated command options (#1052)
## This PR

Remove deprecated command options.

see -
https://github.com/google-github-actions/release-please-action#upgrading-from-v3-to-v4

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-12-04 13:44:31 -05:00
Kavindu Dodanduwa 361a301d51
fix: add component tag (#1050)
## This PR

Attempt to fix release please for mono repo releases

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-12-04 09:59:56 -08:00
renovate[bot] 393ff31a6a
chore(deps): update google-github-actions/release-please-action action to v4 (#1047)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | major | `v3` -> `v4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>google-github-actions/release-please-action
(google-github-actions/release-please-action)</summary>

###
[`v4`](https://togithub.com/google-github-actions/release-please-action/compare/v3...v4)

[Compare
Source](https://togithub.com/google-github-actions/release-please-action/compare/v3...v4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-02 03:15:52 +00:00
renovate[bot] 0321935992
fix(deps): update module github.com/open-feature/open-feature-operator to v0.5.1 (#1046)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/open-feature-operator](https://togithub.com/open-feature/open-feature-operator)
| require | patch | `v0.5.0` -> `v0.5.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>open-feature/open-feature-operator
(github.com/open-feature/open-feature-operator)</summary>

###
[`v0.5.1`](https://togithub.com/open-feature/open-feature-operator/releases/tag/v0.5.1)

[Compare
Source](https://togithub.com/open-feature/open-feature-operator/compare/v0.5.0...v0.5.1)

##### 🐛 Bug Fixes

- use webhook ns if empty, more test versions
([#&#8203;568](https://togithub.com/open-feature/open-feature-operator/issues/568))
([b9b619d](b9b619dcd5))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-02 01:57:59 +00:00
renovate[bot] c221063b60
chore(deps): update actions/deploy-pages digest to de14547 (#1045)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | digest | `9dbe382` -> `de14547` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-01 22:20:07 +00:00
renovate[bot] 98b4e98d0a
chore(deps): update docker/metadata-action digest to e6428a5 (#1042)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `f19c369` -> `e6428a5` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 18:33:35 +00:00
renovate[bot] eb128d97ec
fix(deps): update module github.com/open-feature/open-feature-operator to v0.5.0 (#1039)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/open-feature-operator](https://togithub.com/open-feature/open-feature-operator)
| require | minor | `v0.2.37-0.20231108054703-a97d336468d5` -> `v0.5.0`
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>open-feature/open-feature-operator
(github.com/open-feature/open-feature-operator)</summary>

###
[`v0.5.0`](https://togithub.com/open-feature/open-feature-operator/releases/tag/v0.5.0)

##### ⚠ BREAKING CHANGES

- use v1beta1 in operator logic
([#&#8203;539](https://togithub.com/open-feature/open-feature-operator/issues/539))

#####  New Features

- Introduce v1beta1 API version
([#&#8203;535](https://togithub.com/open-feature/open-feature-operator/issues/535))
([3acd492](3acd49289a))
- prepare apis for v1beta1 controllers onboarding
([#&#8203;549](https://togithub.com/open-feature/open-feature-operator/issues/549))
([e3c8b42](e3c8b4290b))
- release APIs and Operator independently
([#&#8203;541](https://togithub.com/open-feature/open-feature-operator/issues/541))
([7b1af42](7b1af42ac4))
- restricting sidecar image and tag setup
([#&#8203;550](https://togithub.com/open-feature/open-feature-operator/issues/550))
([233be79](233be79b56))
- update api version to v0.2.38
([#&#8203;561](https://togithub.com/open-feature/open-feature-operator/issues/561))
([d1f2477](d1f247727c))
- use v1beta1 in operator logic
([#&#8203;539](https://togithub.com/open-feature/open-feature-operator/issues/539))
([d234410](d234410a80))

##### 🐛 Bug Fixes

- fix build
([#&#8203;566](https://togithub.com/open-feature/open-feature-operator/issues/566))
([c8c6101](c8c6101926))
- Revert "chore: release apis 0.2.38"
([#&#8203;557](https://togithub.com/open-feature/open-feature-operator/issues/557))
([ccb8c1d](ccb8c1d6e1))
- Revert "feat: update api version to v0.2.38"
([#&#8203;562](https://togithub.com/open-feature/open-feature-operator/issues/562))
([e231787](e231787745))

##### 🧹 Chore

- clean up unused API code after moving to v1beta1
([#&#8203;543](https://togithub.com/open-feature/open-feature-operator/issues/543))
([1287b07](1287b0785f))
- **deps:** update actions/setup-node action to v3.8.1
([#&#8203;522](https://togithub.com/open-feature/open-feature-operator/issues/522))
([32ddf00](32ddf002e6))
- fix file source documentation
([#&#8203;556](https://togithub.com/open-feature/open-feature-operator/issues/556))
([318c52d](318c52d2ba))
- ignore component for release tag and make release dependable
([#&#8203;564](https://togithub.com/open-feature/open-feature-operator/issues/564))
([5ac4be3](5ac4be3a24))
- refactor code to decrease complexity
([#&#8203;554](https://togithub.com/open-feature/open-feature-operator/issues/554))
([17a547f](17a547f885))
- release 0.4.0
([#&#8203;563](https://togithub.com/open-feature/open-feature-operator/issues/563))
([e32a872](e32a8724c9))
- release apis 0.2.37
([#&#8203;544](https://togithub.com/open-feature/open-feature-operator/issues/544))
([854e72d](854e72d964))
- release apis 0.2.38
([#&#8203;548](https://togithub.com/open-feature/open-feature-operator/issues/548))
([c6165d4](c6165d426b))
- release apis 0.2.38
([#&#8203;558](https://togithub.com/open-feature/open-feature-operator/issues/558))
([4ecbc9b](4ecbc9b8ee))
- release apis 0.2.38
([#&#8203;560](https://togithub.com/open-feature/open-feature-operator/issues/560))
([069e275](069e275421))
- release operator 0.3.0
([#&#8203;545](https://togithub.com/open-feature/open-feature-operator/issues/545))
([002f2dd](002f2ddec7))
- revert recent release
([#&#8203;559](https://togithub.com/open-feature/open-feature-operator/issues/559))
([f7c79e4](f7c79e4c6f))
- use apis tag instead of local replace
([#&#8203;546](https://togithub.com/open-feature/open-feature-operator/issues/546))
([1856918](18569182c1))
- use github-action for golangci-lint workflow
([#&#8203;538](https://togithub.com/open-feature/open-feature-operator/issues/538))
([a97d336](a97d336468))

##### 📚 Documentation

- use v1beta1 API version
([#&#8203;553](https://togithub.com/open-feature/open-feature-operator/issues/553))
([ccc0471](ccc0471c15))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 18:07:20 +00:00
renovate[bot] c6426b20fa
fix(deps): update module golang.org/x/net to v0.19.0 (#1034)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.18.0` -> `v0.19.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-30 10:24:18 -05:00
renovate[bot] b79aaf2c2c
fix(deps): update module golang.org/x/crypto to v0.16.0 (#1033)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/crypto | require | minor | `v0.15.0` -> `v0.16.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 09:06:40 -05:00
renovate[bot] 02b7f906b2
chore(deps): update docker/metadata-action digest to f19c369 (#1040)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `2a4836a` -> `f19c369` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-30 12:07:09 +00:00
renovate[bot] 0ed9b68341
fix(deps): update module github.com/open-feature/flagd/core to v0.7.1 (#1037)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.7.0` -> `v0.7.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-29 13:04:53 +00:00
renovate[bot] 96975a4eca
chore(deps): update docker/metadata-action digest to 2a4836a (#1031)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `f3c3cad` -> `2a4836a` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-29 03:14:41 +00:00
github-actions[bot] 14929dd5c3
chore: release main (#1017)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.7.1</summary>

##
[0.7.1](https://github.com/open-feature/flagd/compare/flagd/v0.7.0...flagd/v0.7.1)
(2023-11-28)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.0
([#1014](https://github.com/open-feature/flagd/issues/1014))
([deec49e](deec49e99e))


### 🔄 Refactoring

* Rename metrics-port to management-port
([#1012](https://github.com/open-feature/flagd/issues/1012))
([5635e38](5635e38703))
</details>

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

##
[0.3.1](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.3.0...flagd-proxy/v0.3.1)
(2023-11-28)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.7.0
([#1014](https://github.com/open-feature/flagd/issues/1014))
([deec49e](deec49e99e))


### 🔄 Refactoring

* Rename metrics-port to management-port
([#1012](https://github.com/open-feature/flagd/issues/1012))
([5635e38](5635e38703))
</details>

<details><summary>core: 0.7.1</summary>

##
[0.7.1](https://github.com/open-feature/flagd/compare/core/v0.7.0...core/v0.7.1)
(2023-11-28)


### 🐛 Bug Fixes

* **deps:** update kubernetes packages to v0.28.4
([#1016](https://github.com/open-feature/flagd/issues/1016))
([ae470e3](ae470e37f3))
* **deps:** update opentelemetry-go monorepo
([#1019](https://github.com/open-feature/flagd/issues/1019))
([23ae555](23ae555ad7))


### 🔄 Refactoring

* Rename metrics-port to management-port
([#1012](https://github.com/open-feature/flagd/issues/1012))
([5635e38](5635e38703))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-28 14:22:57 -05:00
renovate[bot] 7bd44723b0
chore(deps): update github/codeql-action digest to 407ffaf (#1028)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `66b90a5` -> `407ffaf` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-28 10:23:48 -05:00
renovate[bot] 2aa68fa7ba
chore(deps): update anchore/sbom-action digest to fd74a6f (#1026)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `78fc58e` -> `fd74a6f` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 18:58:30 +00:00
Michael Beemer 94d697724e
docs: change ecosystem link to use the correct case (#1025)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-11-20 10:59:33 -05:00
renovate[bot] 8654a68cba
chore(deps): update actions/github-script digest to 60a0d83 (#1024)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/github-script](https://togithub.com/actions/github-script) |
action | digest | `e69ef54` -> `60a0d83` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 01:41:54 +00:00
renovate[bot] 026eb1366d
chore(deps): update docker/login-action digest to 3d58c27 (#1023)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `1f401f7` -> `3d58c27` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 22:56:42 +00:00
renovate[bot] a4fdf0e23b
chore(deps): update docker/metadata-action digest to f3c3cad (#1021)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `62339db` -> `f3c3cad` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 19:48:52 +00:00
renovate[bot] 3934bc6f24
chore(deps): update docker/build-push-action digest to 4a13e50 (#1020)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[docker/build-push-action](https://togithub.com/docker/build-push-action)
| action | digest | `0565240` -> `4a13e50` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 15:17:37 +00:00
renovate[bot] 23ae555ad7
fix(deps): update opentelemetry-go monorepo (#1019)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.20.0` -> `v1.21.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.43.0` -> `v0.44.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.20.0` -> `v1.21.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.20.0` -> `v1.21.0` |
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.43.0` -> `v0.44.0` |
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.20.0` -> `v1.21.0` |
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.20.0` -> `v1.21.0` |
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.20.0` -> `v1.21.0` |
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.20.0` -> `v1.21.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.21.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.21.0):
Release 1.21.0/0.44.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.20.0...v1.21.0)

##### Removed

- Remove the deprecated
`go.opentelemetry.io/otel/bridge/opencensus.NewTracer`.
([#&#8203;4706](https://togithub.com/open-telemetry/opentelemetry-go/issues/4706))
- Remove the deprecated
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric` module.
([#&#8203;4707](https://togithub.com/open-telemetry/opentelemetry-go/issues/4707))
- Remove the deprecated `go.opentelemetry.io/otel/example/view` module.
([#&#8203;4708](https://togithub.com/open-telemetry/opentelemetry-go/issues/4708))
- Remove the deprecated `go.opentelemetry.io/otel/example/fib` module.
([#&#8203;4723](https://togithub.com/open-telemetry/opentelemetry-go/issues/4723))

##### Fixed

- Do not parse non-protobuf responses in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;4719](https://togithub.com/open-telemetry/opentelemetry-go/issues/4719))
- Do not parse non-protobuf responses in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;4719](https://togithub.com/open-telemetry/opentelemetry-go/issues/4719))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 01:00:17 +00:00
Craig Pastro 5635e38703
refactor: Rename metrics-port to management-port (#1012)
Signed-off-by: Craig Pastro <craig.pastro@gmail.com>
2023-11-16 15:08:57 -05:00
renovate[bot] deec49e99e
fix(deps): update module github.com/open-feature/flagd/core to v0.7.0 (#1014)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | minor | `v0.6.8` -> `v0.7.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 18:16:51 +00:00
renovate[bot] 32fa5c0407
chore(deps): update github/codeql-action digest to 66b90a5 (#1018)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `689fdc5` -> `66b90a5` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy41OS44IiwidXBkYXRlZEluVmVyIjoiMzcuNTkuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 16:56:21 +00:00
renovate[bot] e6f92d2108
fix(deps): update dependency mkdocs-material to v9.4.8 (#969)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mkdocs-material](https://togithub.com/squidfunk/mkdocs-material) |
`9.4.5` -> `9.4.8` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mkdocs-material/9.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mkdocs-material/9.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mkdocs-material/9.4.5/9.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mkdocs-material/9.4.5/9.4.8?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>squidfunk/mkdocs-material (mkdocs-material)</summary>

###
[`v9.4.8`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.8):
mkdocs-material-9.4.8

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.7...9.4.8)

-   Fixed invalid local address replacement when using instant loading
- Fixed
[#&#8203;6275](https://togithub.com/squidfunk/mkdocs-material/issues/6275):
Crash after navigation caused 404 when using instant loading

###
[`v9.4.7`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.7):
mkdocs-material-9.4.7

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.6...9.4.7)

-   Added Azerbaijani translations

###
[`v9.4.6`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.6):
mkdocs-material-9.4.6

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.5...9.4.6)

-   Updated Danish and Norwegian (Nynorsk) translations
- Fixed
[#&#8203;6169](https://togithub.com/squidfunk/mkdocs-material/issues/6169):
Blog post metadata layout overflows on small screens

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy40Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 09:14:24 +00:00
renovate[bot] ae470e37f3
fix(deps): update kubernetes packages to v0.28.4 (#1016)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
require | patch | `v0.28.3` -> `v0.28.4` |
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
require | patch | `v0.28.3` -> `v0.28.4` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.28.4`](https://togithub.com/kubernetes/apimachinery/compare/v0.28.3...v0.28.4)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.28.3...v0.28.4)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.28.4`](https://togithub.com/kubernetes/client-go/compare/v0.28.3...v0.28.4)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.28.3...v0.28.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-16 07:09:03 +00:00
github-actions[bot] cfcd6bdf9c
chore: release main (#1007)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.7.0</summary>

##
[0.7.0](https://github.com/open-feature/flagd/compare/flagd/v0.6.8...flagd/v0.7.0)
(2023-11-15)


### ⚠ BREAKING CHANGES

* OFO APIs were updated to version v1beta1, since they are more stable
now. Resources of the alpha versions are no longer supported in flagd or
flagd-proxy.

### 🐛 Bug Fixes

* **deps:** update module
github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.18
([#1011](https://github.com/open-feature/flagd/issues/1011))
([90d4e4e](90d4e4e7d9))


###  New Features

* support OFO v1beta1 API
([#997](https://github.com/open-feature/flagd/issues/997))
([bb6f5bf](bb6f5bf0fc))


### 🧹 Chore

* move e2e tests to test
([#1005](https://github.com/open-feature/flagd/issues/1005))
([a94b639](a94b6399e5))
</details>

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

##
[0.3.0](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.13...flagd-proxy/v0.3.0)
(2023-11-15)


### ⚠ BREAKING CHANGES

* OFO APIs were updated to version v1beta1, since they are more stable
now. Resources of the alpha versions are no longer supported in flagd or
flagd-proxy.

### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.8
([#1006](https://github.com/open-feature/flagd/issues/1006))
([c9b48bd](c9b48bd0b6))


###  New Features

* support OFO v1beta1 API
([#997](https://github.com/open-feature/flagd/issues/997))
([bb6f5bf](bb6f5bf0fc))


### 🧹 Chore

* move e2e tests to test
([#1005](https://github.com/open-feature/flagd/issues/1005))
([a94b639](a94b6399e5))
</details>

<details><summary>core: 0.7.0</summary>

##
[0.7.0](https://github.com/open-feature/flagd/compare/core/v0.6.8...core/v0.7.0)
(2023-11-15)


### ⚠ BREAKING CHANGES

* OFO APIs were updated to version v1beta1, since they are more stable
now. Resources of the alpha versions are no longer supported in flagd or
flagd-proxy.

###  New Features

* support OFO v1beta1 API
([#997](https://github.com/open-feature/flagd/issues/997))
([bb6f5bf](bb6f5bf0fc))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-15 10:46:14 -05:00
Kavindu Dodanduwa a94b6399e5
chore: move e2e tests to test (#1005)
## This PR

Attempts to fix https://github.com/open-feature/flagd/issues/1004

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-15 09:27:40 -05:00
renovate[bot] a572fd7587
chore(deps): update actions/github-script action to v7 (#1003)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/github-script](https://togithub.com/actions/github-script) |
action | major | `v6` -> `v7` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>actions/github-script (actions/github-script)</summary>

### [`v7`](https://togithub.com/actions/github-script/compare/v6...v7)

[Compare
Source](https://togithub.com/actions/github-script/compare/v6...v7)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 04:36:27 +00:00
renovate[bot] c9b48bd0b6
fix(deps): update module github.com/open-feature/flagd/core to v0.6.8 (#1006)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.6.7` -> `v0.6.8` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-15 01:02:22 +00:00
renovate[bot] d0b822a9f1
chore(deps): update github/codeql-action digest to 689fdc5 (#1009)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `74483a3` -> `689fdc5` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 23:02:58 +00:00
renovate[bot] 90d4e4e7d9
fix(deps): update module github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.18 (#1011)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/go-sdk-contrib/providers/flagd](https://togithub.com/open-feature/go-sdk-contrib)
| require | patch | `v0.1.17` -> `v0.1.18` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-14 14:56:30 -05:00
odubajDT bb6f5bf0fc
feat!: support OFO v1beta1 API (#997)
BREAKING CHANGE: OFO APIs were updated to version v1beta1, since they are more stable now. Resources of the alpha versions are no longer supported in flagd or flagd-proxy.
2023-11-14 07:35:45 +01:00
github-actions[bot] 5b82d06eb7
chore: release main (#967)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.6.8</summary>

##
[0.6.8](https://github.com/open-feature/flagd/compare/flagd/v0.6.7...flagd/v0.6.8)
(2023-11-13)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.7
([#966](https://github.com/open-feature/flagd/issues/966))
([c038a3a](c038a3a370))
* **deps:** update module github.com/open-feature/go-sdk to v1.8.0
([#994](https://github.com/open-feature/flagd/issues/994))
([266cf9f](266cf9f82e))
* **deps:** update module
github.com/open-feature/go-sdk-contrib/tests/flagd to v1.3.1
([#760](https://github.com/open-feature/flagd/issues/760))
([30dda72](30dda72145))
* **deps:** update module github.com/spf13/cobra to v1.8.0
([#993](https://github.com/open-feature/flagd/issues/993))
([05c7870](05c7870cc7))


### 🧹 Chore

* fix lint errors
([#987](https://github.com/open-feature/flagd/issues/987))
([0c3af2d](0c3af2da01))


### 🔄 Refactoring

* migrate to connectrpc/connect-go
([#990](https://github.com/open-feature/flagd/issues/990))
([7dd5b2b](7dd5b2b4c2))
</details>

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

##
[0.2.13](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.12...flagd-proxy/v0.2.13)
(2023-11-13)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.7
([#966](https://github.com/open-feature/flagd/issues/966))
([c038a3a](c038a3a370))
* **deps:** update module github.com/spf13/cobra to v1.8.0
([#993](https://github.com/open-feature/flagd/issues/993))
([05c7870](05c7870cc7))


### 🔄 Refactoring

* migrate to connectrpc/connect-go
([#990](https://github.com/open-feature/flagd/issues/990))
([7dd5b2b](7dd5b2b4c2))
</details>

<details><summary>core: 0.6.8</summary>

##
[0.6.8](https://github.com/open-feature/flagd/compare/core/v0.6.7...core/v0.6.8)
(2023-11-13)


### 🐛 Bug Fixes

* **deps:** update golang.org/x/exp digest to 9a3e603
([#929](https://github.com/open-feature/flagd/issues/929))
([f8db930](f8db930da2))
* **deps:** update kubernetes packages to v0.28.3
([#974](https://github.com/open-feature/flagd/issues/974))
([d7d205f](d7d205f457))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.3.1 ([#971](https://github.com/open-feature/flagd/issues/971))
([f1a40b8](f1a40b862e))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.3.2 ([#975](https://github.com/open-feature/flagd/issues/975))
([b53c14a](b53c14afab))
* **deps:** update module github.com/fsnotify/fsnotify to v1.7.0
([#981](https://github.com/open-feature/flagd/issues/981))
([727b9d2](727b9d2046))
* **deps:** update module golang.org/x/mod to v0.14.0
([#991](https://github.com/open-feature/flagd/issues/991))
([87bc12d](87bc12dd96))
* **deps:** update module golang.org/x/net to v0.17.0 [security]
([#963](https://github.com/open-feature/flagd/issues/963))
([7f54bd1](7f54bd1fb3))
* **deps:** update module golang.org/x/net to v0.18.0
([#1000](https://github.com/open-feature/flagd/issues/1000))
([e9347cc](e9347cc88a))
* **deps:** update module golang.org/x/sync to v0.5.0
([#992](https://github.com/open-feature/flagd/issues/992))
([bd24536](bd24536722))
* **deps:** update module google.golang.org/grpc to v1.59.0
([#972](https://github.com/open-feature/flagd/issues/972))
([7d0f1f2](7d0f1f225e))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.16.3
([#976](https://github.com/open-feature/flagd/issues/976))
([b33c9c9](b33c9c97cf))
* **deps:** update opentelemetry-go monorepo
([#1001](https://github.com/open-feature/flagd/issues/1001))
([9798aeb](9798aeb248))


### 🔄 Refactoring

* migrate to connectrpc/connect-go
([#990](https://github.com/open-feature/flagd/issues/990))
([7dd5b2b](7dd5b2b4c2))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-11-13 14:55:56 -08:00
Craig Pastro 7dd5b2b4c2
refactor: migrate to connectrpc/connect-go (#990)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Migrate from bufbuild/connect-go to connectrpc/connect-go.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Closes #790.

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

I'll also create a PR in https://github.com/open-feature/go-sdk-contrib
to migrate to connectrpc/connect-go for the flagd provider.

### How to test
<!-- if applicable, add testing instructions under this section -->

Signed-off-by: Craig Pastro <craig.pastro@gmail.com>
2023-11-13 12:46:35 -08:00
renovate[bot] e9347cc88a
fix(deps): update module golang.org/x/net to v0.18.0 (#1000)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.17.0` -> `v0.18.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 10:06:19 -05:00
renovate[bot] f8db930da2
fix(deps): update golang.org/x/exp digest to 9a3e603 (#929)
[![Mend Renovate logo
banner](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/exp | require | digest | `a9213ee` -> `9a3e603` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi45Ny4xIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-13 09:49:06 -05:00
renovate[bot] 9798aeb248
fix(deps): update opentelemetry-go monorepo (#1001)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.19.0` -> `v1.20.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.42.0` -> `v0.43.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.19.0` -> `v1.20.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.19.0` -> `v1.20.0` |
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.42.0` -> `v0.43.0` |
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.19.0` -> `v1.20.0` |
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.19.0` -> `v1.20.0` |
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.19.0` -> `v1.20.0` |
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.19.0` -> `v1.20.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.20.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.20.0):
/v0.43.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.19.0...v1.20.0)

This release brings a breaking change for custom trace API
implementations. Some interfaces (`TracerProvider`, `Tracer`, `Span`)
now embed the `go.opentelemetry.io/otel/trace/embedded` types.
Implementors need to update their implementations based on what they
want the default behavior to be. See the "API Implementations" section
of the [trace API] package documentation for more about how to
accomplish this.

##### Added

- Add `go.opentelemetry.io/otel/bridge/opencensus.InstallTraceBridge`,
which installs the OpenCensus trace bridge, and replaces
`opencensus.NewTracer`.
([#&#8203;4567](https://togithub.com/open-telemetry/opentelemetry-go/issues/4567))
- Add scope version to trace and metric bridges in
`go.opentelemetry.io/otel/bridge/opencensus`.
([#&#8203;4584](https://togithub.com/open-telemetry/opentelemetry-go/issues/4584))
- Add the `go.opentelemetry.io/otel/trace/embedded` package to be
embedded in the exported trace API interfaces.
([#&#8203;4620](https://togithub.com/open-telemetry/opentelemetry-go/issues/4620))
- Add the `go.opentelemetry.io/otel/trace/noop` package as a default
no-op implementation of the trace API.
([#&#8203;4620](https://togithub.com/open-telemetry/opentelemetry-go/issues/4620))
- Add context propagation in `go.opentelemetry.io/otel/example/dice`.
([#&#8203;4644](https://togithub.com/open-telemetry/opentelemetry-go/issues/4644))
- Add view configuration to
`go.opentelemetry.io/otel/example/prometheus`.
([#&#8203;4649](https://togithub.com/open-telemetry/opentelemetry-go/issues/4649))
- Add `go.opentelemetry.io/otel/metric.WithExplicitBucketBoundaries`,
which allows defining default explicit bucket boundaries when creating
histogram instruments.
([#&#8203;4603](https://togithub.com/open-telemetry/opentelemetry-go/issues/4603))
- Add `Version` function in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
([#&#8203;4660](https://togithub.com/open-telemetry/opentelemetry-go/issues/4660))
- Add `Version` function in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;4660](https://togithub.com/open-telemetry/opentelemetry-go/issues/4660))
- Add Summary, SummaryDataPoint, and QuantileValue to
`go.opentelemetry.io/sdk/metric/metricdata`.
([#&#8203;4622](https://togithub.com/open-telemetry/opentelemetry-go/issues/4622))
- `go.opentelemetry.io/otel/bridge/opencensus.NewMetricProducer` now
supports exemplars from OpenCensus.
([#&#8203;4585](https://togithub.com/open-telemetry/opentelemetry-go/issues/4585))
- Add support for `WithExplicitBucketBoundaries` in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4605](https://togithub.com/open-telemetry/opentelemetry-go/issues/4605))
- Add support for Summary metrics in
`go.opentelemetry.io/otel/bridge/opencensus`.
([#&#8203;4668](https://togithub.com/open-telemetry/opentelemetry-go/issues/4668))

##### Deprecated

- Deprecate `go.opentelemetry.io/otel/bridge/opencensus.NewTracer` in
favor of `opencensus.InstallTraceBridge`.
([#&#8203;4567](https://togithub.com/open-telemetry/opentelemetry-go/issues/4567))
- Deprecate `go.opentelemetry.io/otel/example/fib` package is in favor
of `go.opentelemetry.io/otel/example/dice`.
([#&#8203;4618](https://togithub.com/open-telemetry/opentelemetry-go/issues/4618))
-   Deprecate `go.opentelemetry.io/otel/trace.NewNoopTracerProvider`.
Use the added `NewTracerProvider` function in
`go.opentelemetry.io/otel/trace/noop` instead.
([#&#8203;4620](https://togithub.com/open-telemetry/opentelemetry-go/issues/4620))
- Deprecate `go.opentelemetry.io/otel/example/view` package in favor of
`go.opentelemetry.io/otel/example/prometheus`.
([#&#8203;4649](https://togithub.com/open-telemetry/opentelemetry-go/issues/4649))
- Deprecate `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`.
([#&#8203;4693](https://togithub.com/open-telemetry/opentelemetry-go/issues/4693))

##### Changed

- `go.opentelemetry.io/otel/bridge/opencensus.NewMetricProducer` returns
a `*MetricProducer` struct instead of the metric.Producer interface.
([#&#8203;4583](https://togithub.com/open-telemetry/opentelemetry-go/issues/4583))
- The `TracerProvider` in `go.opentelemetry.io/otel/trace` now embeds
the `go.opentelemetry.io/otel/trace/embedded.TracerProvider` type.
This extends the `TracerProvider` interface and is is a breaking change
for any existing implementation.
Implementors need to update their implementations based on what they
want the default behavior of the interface to be.
See the "API Implementations" section of the
`go.opentelemetry.io/otel/trace` package documentation for more
information about how to accomplish this.
([#&#8203;4620](https://togithub.com/open-telemetry/opentelemetry-go/issues/4620))
- The `Tracer` in `go.opentelemetry.io/otel/trace` now embeds the
`go.opentelemetry.io/otel/trace/embedded.Tracer` type.
This extends the `Tracer` interface and is is a breaking change for any
existing implementation.
Implementors need to update their implementations based on what they
want the default behavior of the interface to be.
See the "API Implementations" section of the
`go.opentelemetry.io/otel/trace` package documentation for more
informationabout how to accomplish this.
([#&#8203;4620](https://togithub.com/open-telemetry/opentelemetry-go/issues/4620))
- The `Span` in `go.opentelemetry.io/otel/trace` now embeds the
`go.opentelemetry.io/otel/trace/embedded.Span` type.
This extends the `Span` interface and is is a breaking change for any
existing implementation.
Implementors need to update their implementations based on what they
want the default behavior of the interface to be.
See the "API Implementations" section of the
`go.opentelemetry.io/otel/trace` package documentation for more
information about how to accomplish this.
([#&#8203;4620](https://togithub.com/open-telemetry/opentelemetry-go/issues/4620))
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`
does no longer depend on
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric`.
([#&#8203;4660](https://togithub.com/open-telemetry/opentelemetry-go/issues/4660))
- `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`
does no longer depend on
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric`.
([#&#8203;4660](https://togithub.com/open-telemetry/opentelemetry-go/issues/4660))
- Retry for `502 Bad Gateway` and `504 Gateway Timeout` HTTP statuses in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;4670](https://togithub.com/open-telemetry/opentelemetry-go/issues/4670))
- Retry for `502 Bad Gateway` and `504 Gateway Timeout` HTTP statuses in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;4670](https://togithub.com/open-telemetry/opentelemetry-go/issues/4670))
- Retry for `RESOURCE_EXHAUSTED` only if RetryInfo is returned in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
([#&#8203;4669](https://togithub.com/open-telemetry/opentelemetry-go/issues/4669))
- Retry for `RESOURCE_EXHAUSTED` only if RetryInfo is returned in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`.
([#&#8203;4669](https://togithub.com/open-telemetry/opentelemetry-go/issues/4669))
- Retry temporary HTTP request failures in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;4679](https://togithub.com/open-telemetry/opentelemetry-go/issues/4679))
- Retry temporary HTTP request failures in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;4679](https://togithub.com/open-telemetry/opentelemetry-go/issues/4679))

##### Fixed

- Fix improper parsing of characters such us `+`, `/` by `Parse` in
`go.opentelemetry.io/otel/baggage` as they were rendered as a
whitespace.
([#&#8203;4667](https://togithub.com/open-telemetry/opentelemetry-go/issues/4667))
- Fix improper parsing of characters such us `+`, `/` passed via
`OTEL_RESOURCE_ATTRIBUTES` in `go.opentelemetry.io/otel/sdk/resource` as
they were rendered as a whitespace.
([#&#8203;4699](https://togithub.com/open-telemetry/opentelemetry-go/issues/4699))
- Fix improper parsing of characters such us `+`, `/` passed via
`OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_METRICS_HEADERS` in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` as
they were rendered as a whitespace.
([#&#8203;4699](https://togithub.com/open-telemetry/opentelemetry-go/issues/4699))
- Fix improper parsing of characters such us `+`, `/` passed via
`OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_METRICS_HEADERS` in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` as
they were rendered as a whitespace.
([#&#8203;4699](https://togithub.com/open-telemetry/opentelemetry-go/issues/4699))
- Fix improper parsing of characters such us `+`, `/` passed via
`OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_TRACES_HEADERS` in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracegrpc` as
they were rendered as a whitespace.
([#&#8203;4699](https://togithub.com/open-telemetry/opentelemetry-go/issues/4699))
- Fix improper parsing of characters such us `+`, `/` passed via
`OTEL_EXPORTER_OTLP_HEADERS` and `OTEL_EXPORTER_OTLP_TRACES_HEADERS` in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlptracehttp` as
they were rendered as a whitespace.
([#&#8203;4699](https://togithub.com/open-telemetry/opentelemetry-go/issues/4699))
- In `go.opentelemetry.op/otel/exporters/prometheus`, the exporter no
longer `Collect`s metrics after `Shutdown` is invoked.
([#&#8203;4648](https://togithub.com/open-telemetry/opentelemetry-go/issues/4648))
- Fix documentation for `WithCompressor` in
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`.
([#&#8203;4695](https://togithub.com/open-telemetry/opentelemetry-go/issues/4695))
- Fix documentation for `WithCompressor` in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
([#&#8203;4695](https://togithub.com/open-telemetry/opentelemetry-go/issues/4695))

[trace API]: https://pkg.go.dev/go.opentelemetry.io/otel/trace

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-11 06:53:45 +00:00
renovate[bot] 99a0fb5ec7
fix(deps): update dependency pymdown-extensions to v10.4 (#1002)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[pymdown-extensions](https://togithub.com/facelessuser/pymdown-extensions)
| `10.3.1` -> `10.4` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pymdown-extensions/10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pymdown-extensions/10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pymdown-extensions/10.3.1/10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pymdown-extensions/10.3.1/10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>facelessuser/pymdown-extensions (pymdown-extensions)</summary>

###
[`v10.4`](https://togithub.com/facelessuser/pymdown-extensions/releases/tag/10.4)

[Compare
Source](https://togithub.com/facelessuser/pymdown-extensions/compare/10.3.1...10.4)

#### 10.4

- **NEW**: Snippets: Allow PathLike objects for `base_path` to better
support interactions with MkDocs.
-   **FIX**: Block Admonitions: Empty titles should be respected.
-   **FIX**: Block Details: Empty summary should be respected.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-11 04:30:08 +00:00
renovate[bot] e271d26c03
chore(deps): update sigstore/cosign-installer digest to 1fc5bd3 (#996)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `4b014e3` -> `1fc5bd3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 19:45:08 +00:00
renovate[bot] 73bcfd5d30
chore(deps): update google-github-actions/release-please-action digest to db8f2c6 (#995)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | digest | `4c5670f` -> `db8f2c6` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40Ni4wIiwidXBkYXRlZEluVmVyIjoiMzcuNDYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-07 01:25:51 +00:00
renovate[bot] 87bc12dd96
fix(deps): update module golang.org/x/mod to v0.14.0 (#991)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/mod | require | minor | `v0.13.0` -> `v0.14.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 06:49:27 +00:00
renovate[bot] 266cf9f82e
fix(deps): update module github.com/open-feature/go-sdk to v1.8.0 (#994)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/go-sdk](https://togithub.com/open-feature/go-sdk)
| require | minor | `v1.7.0` -> `v1.8.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>open-feature/go-sdk (github.com/open-feature/go-sdk)</summary>

###
[`v1.8.0`](https://togithub.com/open-feature/go-sdk/releases/tag/v1.8.0)

[Compare
Source](https://togithub.com/open-feature/go-sdk/compare/v1.7.0...v1.8.0)

##### 🐛 Bug Fixes

- **deps:** update module github.com/cucumber/godog to v0.13.0
([#&#8203;210](https://togithub.com/open-feature/go-sdk/issues/210))
([33c5f2f](33c5f2f5de))
- **deps:** update module golang.org/x/text to v0.13.0
([#&#8203;211](https://togithub.com/open-feature/go-sdk/issues/211))
([d850ebc](d850ebc5c8))

#####  New Features

- run event handlers immediately, add STALE (0.7.0 compliance)
([#&#8203;221](https://togithub.com/open-feature/go-sdk/issues/221))
([9c0012f](9c0012f676))

##### 🧹 Chore

- bump spec badge in readme to v0.7.0
([#&#8203;223](https://togithub.com/open-feature/go-sdk/issues/223))
([403275e](403275e925))
- **deps:** update codecov/codecov-action action to v4
([#&#8203;222](https://togithub.com/open-feature/go-sdk/issues/222))
([1ac250b](1ac250bc21))
- fix golangci-lint version
([#&#8203;216](https://togithub.com/open-feature/go-sdk/issues/216))
([e79382a](e79382a748))
- fix logo rendering outside of github
([#&#8203;226](https://togithub.com/open-feature/go-sdk/issues/226))
([e2b3586](e2b35865b9))
- revert to CodeCov Action to v3
([#&#8203;225](https://togithub.com/open-feature/go-sdk/issues/225))
([152416d](152416df30))
- sort imports of go files
([#&#8203;214](https://togithub.com/open-feature/go-sdk/issues/214))
([a98950d](a98950d3f5))
- update comments for named provider related function
([#&#8203;213](https://togithub.com/open-feature/go-sdk/issues/213))
([2e670b2](2e670b2739))

##### 📚 Documentation

- Update README.md
([#&#8203;218](https://togithub.com/open-feature/go-sdk/issues/218))
([a2ea804](a2ea804bcf))

##### 🔄 Refactoring

- write \[T]Value in terms of \[T]ValueDetails
([#&#8203;224](https://togithub.com/open-feature/go-sdk/issues/224))
([f554876](f554876e5e))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 03:41:11 +00:00
renovate[bot] 05c7870cc7
fix(deps): update module github.com/spf13/cobra to v1.8.0 (#993)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/cobra](https://togithub.com/spf13/cobra) | require |
minor | `v1.7.0` -> `v1.8.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>spf13/cobra (github.com/spf13/cobra)</summary>

### [`v1.8.0`](https://togithub.com/spf13/cobra/releases/tag/v1.8.0)

[Compare
Source](https://togithub.com/spf13/cobra/compare/v1.7.0...v1.8.0)

####  Features

- Support usage as plugin for tools like kubectl by
[@&#8203;nirs](https://togithub.com/nirs) in
[https://github.com/spf13/cobra/pull/2018](https://togithub.com/spf13/cobra/pull/2018)
- this means that programs that utalize a "plugin" like structure have
much better support and usage (like for completions, command paths,
etc.)
- Move documentation sources to site/content by
[@&#8203;umarcor](https://togithub.com/umarcor) in
[https://github.com/spf13/cobra/pull/1428](https://togithub.com/spf13/cobra/pull/1428)
- Add 'one required flag' group by
[@&#8203;marevers](https://togithub.com/marevers) in
[https://github.com/spf13/cobra/pull/1952](https://togithub.com/spf13/cobra/pull/1952)
- this includes a new `MarkFlagsOneRequired` API for flags which can be
used to mark a flag group as required and cause command failure if one
is not used when invoked.
- Customizable error message prefix by
[@&#8203;5ouma](https://togithub.com/5ouma) in
[https://github.com/spf13/cobra/pull/2023](https://togithub.com/spf13/cobra/pull/2023)
- This adds the `SetErrPrefix` and `ErrPrefix` APIs on the `Command`
struct to allow for setting a custom prefix for errors
- feat: add getters for flag completions by
[@&#8203;avirtopeanu-ionos](https://togithub.com/avirtopeanu-ionos) in
[https://github.com/spf13/cobra/pull/1943](https://togithub.com/spf13/cobra/pull/1943)
- Feature: allow running persistent run hooks of all parents by
[@&#8203;vkhoroz](https://togithub.com/vkhoroz) in
[https://github.com/spf13/cobra/pull/2044](https://togithub.com/spf13/cobra/pull/2044)
- Improve API to get flag completion function by
[@&#8203;marckhouzam](https://togithub.com/marckhouzam) in
[https://github.com/spf13/cobra/pull/2063](https://togithub.com/spf13/cobra/pull/2063)

#### 🐛 Bug fixes

- Fix typo in fish completions by
[@&#8203;twpayne](https://togithub.com/twpayne) in
[https://github.com/spf13/cobra/pull/1945](https://togithub.com/spf13/cobra/pull/1945)
- Fix grammar: 'allows to' by
[@&#8203;supertassu](https://togithub.com/supertassu) in
[https://github.com/spf13/cobra/pull/1978](https://togithub.com/spf13/cobra/pull/1978)
- powershell: escape variable with curly brackets by
[@&#8203;Luap99](https://togithub.com/Luap99) in
[https://github.com/spf13/cobra/pull/1960](https://togithub.com/spf13/cobra/pull/1960)
- Don't complete --help flag when flag parsing disabled by
[@&#8203;marckhouzam](https://togithub.com/marckhouzam) in
[https://github.com/spf13/cobra/pull/2061](https://togithub.com/spf13/cobra/pull/2061)
- Replace all non-alphanumerics in active help env var program prefix by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/spf13/cobra/pull/1940](https://togithub.com/spf13/cobra/pull/1940)

#### 🔧 Maintenance

- build(deps): bump golangci/golangci-lint-action from 3.4.0 to 3.5.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/1971](https://togithub.com/spf13/cobra/pull/1971)
- build(deps): bump golangci/golangci-lint-action from 3.5.0 to 3.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/1976](https://togithub.com/spf13/cobra/pull/1976)
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/2021](https://togithub.com/spf13/cobra/pull/2021)
- build(deps): bump actions/setup-go from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/1934](https://togithub.com/spf13/cobra/pull/1934)
- build(deps): bump github.com/cpuguy83/go-md2man/v2 from 2.0.2 to 2.0.3
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/2047](https://togithub.com/spf13/cobra/pull/2047)
- build(deps): bump actions/checkout from 3 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/cobra/pull/2028](https://togithub.com/spf13/cobra/pull/2028)
- command: temporarily disable G602 due to
[securego/gosec#1005](https://togithub.com/securego/gosec/issues/1005)
by [@&#8203;umarcor](https://togithub.com/umarcor) in
[https://github.com/spf13/cobra/pull/2022](https://togithub.com/spf13/cobra/pull/2022)

#### 🧪 Testing & CI/CD

- test: make fish_completions_test more robust by
[@&#8203;branchvincent](https://togithub.com/branchvincent) in
[https://github.com/spf13/cobra/pull/1980](https://togithub.com/spf13/cobra/pull/1980)
- golangci: enable 'unused' and disable deprecated replaced by it by
[@&#8203;umarcor](https://togithub.com/umarcor) in
[https://github.com/spf13/cobra/pull/1983](https://togithub.com/spf13/cobra/pull/1983)
- cleanup: minor corrections to unit tests by
[@&#8203;JunNishimura](https://togithub.com/JunNishimura) in
[https://github.com/spf13/cobra/pull/2003](https://togithub.com/spf13/cobra/pull/2003)
- ci: test golang 1.21 by
[@&#8203;nunoadrego](https://togithub.com/nunoadrego) in
[https://github.com/spf13/cobra/pull/2024](https://togithub.com/spf13/cobra/pull/2024)
- Fix linter errors by
[@&#8203;marckhouzam](https://togithub.com/marckhouzam) in
[https://github.com/spf13/cobra/pull/2052](https://togithub.com/spf13/cobra/pull/2052)
- Add tests for flag completion registration by
[@&#8203;marckhouzam](https://togithub.com/marckhouzam) in
[https://github.com/spf13/cobra/pull/2053](https://togithub.com/spf13/cobra/pull/2053)

#### ✏️ Documentation

- doc: fix typo, Deperecated -> Deprecated by
[@&#8203;callthingsoff](https://togithub.com/callthingsoff) in
[https://github.com/spf13/cobra/pull/2000](https://togithub.com/spf13/cobra/pull/2000)
- Add notes to doc about the execution condition of \*PreRun and
\*PostRun functions by
[@&#8203;haoming29](https://togithub.com/haoming29) in
[https://github.com/spf13/cobra/pull/2041](https://togithub.com/spf13/cobra/pull/2041)

***

Thank you everyone who contributed to this release and all your hard
work! Cobra and this community would never be possible without all of
you!!!! 🐍

**Full Changelog**:
https://github.com/spf13/cobra/compare/v1.7.0...v1.8.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-05 00:15:49 +00:00
renovate[bot] 3254f5e2ce
chore(deps): update sigstore/cosign-installer digest to 4b014e3 (#982)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `9c520b9` -> `4b014e3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-04 22:35:56 +00:00
renovate[bot] bd24536722
fix(deps): update module golang.org/x/sync to v0.5.0 (#992)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/sync | require | minor | `v0.4.0` -> `v0.5.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-04 18:49:02 +00:00
renovate[bot] 097cdccfa1
chore(deps): update github/codeql-action digest to 74483a3 (#980)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `0116bc2` -> `74483a3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-02 21:09:05 +00:00
renovate[bot] 727b9d2046
fix(deps): update module github.com/fsnotify/fsnotify to v1.7.0 (#981)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/fsnotify/fsnotify](https://togithub.com/fsnotify/fsnotify)
| require | minor | `v1.6.0` -> `v1.7.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>fsnotify/fsnotify (github.com/fsnotify/fsnotify)</summary>

###
[`v1.7.0`](https://togithub.com/fsnotify/fsnotify/releases/tag/v1.7.0)

[Compare
Source](https://togithub.com/fsnotify/fsnotify/compare/v1.6.0...v1.7.0)

This version of fsnotify needs Go 1.17.

##### Additions

- illumos: add FEN backend to support illumos and Solaris.
([#&#8203;371])

- all: add `NewBufferedWatcher()` to use a buffered channel, which can
be useful in cases where you can't control the kernel buffer and receive
a large number of events in bursts. ([#&#8203;550], [#&#8203;572])

- all: add `AddWith()`, which is identical to `Add()` but allows passing
options. ([#&#8203;521])

- windows: allow setting the ReadDirectoryChangesW() buffer size with
`fsnotify.WithBufferSize()`; the default of 64K is the highest value
that works on all platforms and is enough for most purposes, but in some
cases a highest buffer is needed. ([#&#8203;521])

##### Changes and fixes

-   inotify: remove watcher if a watched path is renamed ([#&#8203;518])

After a rename the reported name wasn't updated, or even an empty
string. Inotify doesn't provide any good facilities to update it, so
just remove the watcher. This is already how it worked on kqueue and
FEN.

    On Windows this does work, and remains working.

-   windows: don't listen for file attribute changes ([#&#8203;520])

File attribute changes are sent as `FILE_ACTION_MODIFIED` by the Windows
API, with no way to see if they're a file write or attribute change, so
would show up as a fsnotify.Write event. This is never useful, and could
result in many spurious Write events.

- windows: return `ErrEventOverflow` if the buffer is full
([#&#8203;525])

Before it would merely return "short read", making it hard to detect
this error.

- kqueue: make sure events for all files are delivered properly when
removing a watched directory ([#&#8203;526])

Previously they would get sent with `""` (empty string) or `"."` as the
path name.

- kqueue: don't emit spurious Create events for symbolic links
([#&#8203;524])

The link would get resolved but kqueue would "forget" it already saw the
link itself, resulting on a Create for every Write event for the
directory.

- all: return `ErrClosed` on `Add()` when the watcher is closed
([#&#8203;516])

- other: add `Watcher.Errors` and `Watcher.Events` to the no-op
`Watcher` in `backend_other.go`, making it easier to use on unsupported
platforms such as WASM, AIX, etc. ([#&#8203;528])

- other: use the `backend_other.go` no-op if the `appengine` build tag
is set; Google AppEngine forbids usage of the unsafe package so the
inotify backend won't compile there.

[#&#8203;371]: https://togithub.com/fsnotify/fsnotify/pull/371

[#&#8203;516]: https://togithub.com/fsnotify/fsnotify/pull/516

[#&#8203;518]: https://togithub.com/fsnotify/fsnotify/pull/518

[#&#8203;520]: https://togithub.com/fsnotify/fsnotify/pull/520

[#&#8203;521]: https://togithub.com/fsnotify/fsnotify/pull/521

[#&#8203;524]: https://togithub.com/fsnotify/fsnotify/pull/524

[#&#8203;525]: https://togithub.com/fsnotify/fsnotify/pull/525

[#&#8203;526]: https://togithub.com/fsnotify/fsnotify/pull/526

[#&#8203;528]: https://togithub.com/fsnotify/fsnotify/pull/528

[#&#8203;537]: https://togithub.com/fsnotify/fsnotify/pull/537

[#&#8203;550]: https://togithub.com/fsnotify/fsnotify/pull/550

[#&#8203;572]: https://togithub.com/fsnotify/fsnotify/pull/572

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-02 14:30:21 -04:00
renovate[bot] 47cd559be4
fix(deps): update dependency pillow to v10.1.0 (#970)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [pillow](https://python-pillow.org)
([source](https://togithub.com/python-pillow/Pillow),
[changelog](https://togithub.com/python-pillow/Pillow/blob/main/CHANGES.rst))
| `10.0.1` -> `10.1.0` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pillow/10.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pillow/10.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pillow/10.0.1/10.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pillow/10.0.1/10.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>python-pillow/Pillow (pillow)</summary>

###
[`v10.1.0`](https://togithub.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#1010-2023-10-15)

[Compare
Source](https://togithub.com/python-pillow/Pillow/compare/10.0.1...10.1.0)

- Added TrueType default font to allow for different sizes
[#&#8203;7354](https://togithub.com/python-pillow/Pillow/issues/7354)
    \[radarhere]

- Fixed invalid argument warning
[#&#8203;7442](https://togithub.com/python-pillow/Pillow/issues/7442)
    \[radarhere]

- Added ImageOps cover method
[#&#8203;7412](https://togithub.com/python-pillow/Pillow/issues/7412)
    \[radarhere, hugovk]

- Catch struct.error from truncated EXIF when reading JPEG DPI
[#&#8203;7458](https://togithub.com/python-pillow/Pillow/issues/7458)
    \[radarhere]

- Consider default image when selecting mode for PNG save_all
[#&#8203;7437](https://togithub.com/python-pillow/Pillow/issues/7437)
    \[radarhere]

- Support BGR;15, BGR;16 and BGR;24 access, unpacking and putdata
[#&#8203;7303](https://togithub.com/python-pillow/Pillow/issues/7303)
    \[radarhere]

- Added CMYK to RGB unpacker
[#&#8203;7310](https://togithub.com/python-pillow/Pillow/issues/7310)
    \[radarhere]

- Improved flexibility of XMP parsing
[#&#8203;7274](https://togithub.com/python-pillow/Pillow/issues/7274)
    \[radarhere]

- Support reading 8-bit YCbCr TIFF images
[#&#8203;7415](https://togithub.com/python-pillow/Pillow/issues/7415)
    \[radarhere]

- Allow saving I;16B images as PNG
[#&#8203;7302](https://togithub.com/python-pillow/Pillow/issues/7302)
    \[radarhere]

- Corrected drawing I;16 points and writing I;16 text
[#&#8203;7257](https://togithub.com/python-pillow/Pillow/issues/7257)
    \[radarhere]

- Set blue channel to 128 for BC5S
[#&#8203;7413](https://togithub.com/python-pillow/Pillow/issues/7413)
    \[radarhere]

- Increase flexibility when reading IPTC fields
[#&#8203;7319](https://togithub.com/python-pillow/Pillow/issues/7319)
    \[radarhere]

- Set C palette to be empty by default
[#&#8203;7289](https://togithub.com/python-pillow/Pillow/issues/7289)
    \[radarhere]

- Added gs_binary to control Ghostscript use on all platforms
[#&#8203;7392](https://togithub.com/python-pillow/Pillow/issues/7392)
    \[radarhere]

- Read bounding box information from the trailer of EPS files if
specified
[#&#8203;7382](https://togithub.com/python-pillow/Pillow/issues/7382)
    \[nopperl, radarhere]

- Added reading 8-bit color DDS images
[#&#8203;7426](https://togithub.com/python-pillow/Pillow/issues/7426)
    \[radarhere]

- Added has_transparency_data
[#&#8203;7420](https://togithub.com/python-pillow/Pillow/issues/7420)
    \[radarhere, hugovk]

- Fixed bug when reading BC5S DDS images
[#&#8203;7401](https://togithub.com/python-pillow/Pillow/issues/7401)
    \[radarhere]

- Prevent TIFF orientation from being applied more than once
[#&#8203;7383](https://togithub.com/python-pillow/Pillow/issues/7383)
    \[radarhere]

- Use previous pixel alpha for QOI_OP_RGB
[#&#8203;7357](https://togithub.com/python-pillow/Pillow/issues/7357)
    \[radarhere]

- Added BC5U reading
[#&#8203;7358](https://togithub.com/python-pillow/Pillow/issues/7358)
    \[radarhere]

- Allow getpixel() to accept a list
[#&#8203;7355](https://togithub.com/python-pillow/Pillow/issues/7355)
    \[radarhere, homm]

- Allow GaussianBlur and BoxBlur to accept a sequence of x and y radii
[#&#8203;7336](https://togithub.com/python-pillow/Pillow/issues/7336)
    \[radarhere]

- Expand JPEG buffer size when saving optimized or progressive
[#&#8203;7345](https://togithub.com/python-pillow/Pillow/issues/7345)
    \[radarhere]

- Added session type check for Linux in ImageGrab.grabclipboard()
[#&#8203;7332](https://togithub.com/python-pillow/Pillow/issues/7332)
    \[TheNooB2706, radarhere, hugovk]

- Allow "loop=None" when saving GIF images
[#&#8203;7329](https://togithub.com/python-pillow/Pillow/issues/7329)
    \[radarhere]

- Fixed transparency when saving P mode images to PDF
[#&#8203;7323](https://togithub.com/python-pillow/Pillow/issues/7323)
    \[radarhere]

- Added saving LA images as PDFs
[#&#8203;7299](https://togithub.com/python-pillow/Pillow/issues/7299)
    \[radarhere]

- Set SMaskInData to 1 for PDFs with alpha
[#&#8203;7316](https://togithub.com/python-pillow/Pillow/issues/7316),
[#&#8203;7317](https://togithub.com/python-pillow/Pillow/issues/7317)
    \[radarhere]

- Changed Image mode property to be read-only by default
[#&#8203;7307](https://togithub.com/python-pillow/Pillow/issues/7307)
    \[radarhere]

- Silence exceptions in *repr_jpeg* and *repr_png*
[#&#8203;7266](https://togithub.com/python-pillow/Pillow/issues/7266)
    \[mtreinish, radarhere]

- Do not use transparency when saving GIF if it has been removed when
normalizing mode
[#&#8203;7284](https://togithub.com/python-pillow/Pillow/issues/7284)
    \[radarhere]

- Fix missing symbols when libtiff depends on libjpeg
[#&#8203;7270](https://togithub.com/python-pillow/Pillow/issues/7270)
    \[heitbaum]

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMzEuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-02 14:18:18 -04:00
renovate[bot] 44d830b7eb
chore(deps): update docker/metadata-action digest to 62339db (#985)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `879dcbb` -> `62339db` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-02 18:09:16 +00:00
renovate[bot] 20d7b42029
chore(deps): update docker/login-action digest to 1f401f7 (#984)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `b4bedf8` -> `1f401f7` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuMzEuNSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-02 16:15:25 +00:00
Todd Baert 0c3af2da01
chore: fix lint errors (#987)
Fixes a few lint issues, directly, and by ignoring some submodules.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-11-02 10:08:21 -04:00
renovate[bot] 3d2cd1fc0d
fix(deps): update dependency pymdown-extensions to v10.3.1 (#872)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[pymdown-extensions](https://togithub.com/facelessuser/pymdown-extensions)
| `10.3` -> `10.3.1` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/pymdown-extensions/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pymdown-extensions/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pymdown-extensions/10.3/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pymdown-extensions/10.3/10.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>facelessuser/pymdown-extensions (pymdown-extensions)</summary>

###
[`v10.3.1`](https://togithub.com/facelessuser/pymdown-extensions/releases/tag/10.3.1)

[Compare
Source](https://togithub.com/facelessuser/pymdown-extensions/compare/10.3...10.3.1)

#### 10.3.1

- **FIX**: SuperFences: Fix an issue where braces were not handled
properly in attributes.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-20 03:57:50 +00:00
renovate[bot] 4078ed8d13
chore(deps): update actions/checkout digest to b4ffde6 (#977)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
digest | `8ade135` -> `b4ffde6` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-20 00:13:28 +00:00
renovate[bot] 13ed972cf1
chore(deps): update google-github-actions/release-please-action digest to 4c5670f (#978)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | digest | `ca6063f` -> `4c5670f` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 23:05:31 +00:00
Michael Beemer c8bb2cd91b
docs: fix links on the readme (#979)
## This PR

- Update readme links

### Notes

Fixed links that were affected by the updates to the documentation.

Thank you, Prithviraj for reporting the issue.

relates to: https://github.com/open-feature/flagd/pull/973

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-19 16:22:31 -04:00
renovate[bot] b33c9c97cf
fix(deps): update module sigs.k8s.io/controller-runtime to v0.16.3 (#976)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[sigs.k8s.io/controller-runtime](https://togithub.com/kubernetes-sigs/controller-runtime)
| require | patch | `v0.16.2` -> `v0.16.3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes-sigs/controller-runtime
(sigs.k8s.io/controller-runtime)</summary>

###
[`v0.16.3`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.3)

[Compare
Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.2...v0.16.3)

#### What's Changed

- 🐛Update dependency go-restful to 3.11.0 by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2516](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2516)
- 🐛 Correctly identify if patch call was made on status by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2515](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2515)
- 🐛 Handle unstructured status update with fake client by
[@&#8203;troy0820](https://togithub.com/troy0820) in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2523](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2523)
-  Cache: Allow defining options that apply to all namespaces
that themselves have no explicit config by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2539](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2539)
- 🐛 bump golang.org/x/net to v0.17.0 by
[@&#8203;joelanford](https://togithub.com/joelanford) in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2541](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2541)
- 🌱 Bump k8s to 1.28.3 by
[@&#8203;varshaprasad96](https://togithub.com/varshaprasad96) in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2552](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2552)

**Full Changelog**:
https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.2...v0.16.3

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 01:51:24 +00:00
renovate[bot] b53c14afab
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.3.2 (#975)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://togithub.com/diegoholiveira/jsonlogic)
| require | patch | `v3.3.1` -> `v3.3.2` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.3.2`](https://togithub.com/diegoholiveira/jsonlogic/releases/tag/v3.3.2)

[Compare
Source](https://togithub.com/diegoholiveira/jsonlogic/compare/v3.3.1...v3.3.2)

#### What's Changed

- Ensure value is string before trying to convert it by
[@&#8203;diegoholiveira](https://togithub.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/73](https://togithub.com/diegoholiveira/jsonlogic/pull/73)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.3.1...v3.3.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 22:41:23 +00:00
renovate[bot] d7d205f457
fix(deps): update kubernetes packages to v0.28.3 (#974)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
require | patch | `v0.28.2` -> `v0.28.3` |
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
require | patch | `v0.28.2` -> `v0.28.3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.28.3`](https://togithub.com/kubernetes/apimachinery/compare/v0.28.2...v0.28.3)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.28.2...v0.28.3)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.28.3`](https://togithub.com/kubernetes/client-go/compare/v0.28.2...v0.28.3)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.28.2...v0.28.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 18:04:17 +00:00
renovate[bot] 7d0f1f225e
fix(deps): update module google.golang.org/grpc to v1.59.0 (#972)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| minor | `v1.58.3` -> `v1.59.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.59.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.59.0):
Release 1.59.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.58.3...v1.59.0)

### Behavior Changes

- balancer: grpc will switch to case-sensitive balancer names soon; log
a warning if a capital letter is encountered in an LB policy name
([#&#8203;6647](https://togithub.com/grpc/grpc-go/issues/6647))
- server: allow applications to send arbitrary data in the
`grpc-status-details-bin` trailer
([#&#8203;6662](https://togithub.com/grpc/grpc-go/issues/6662))
- client: validate `grpc-status-details-bin` trailer and pass through
the trailer to the application directly
([#&#8203;6662](https://togithub.com/grpc/grpc-go/issues/6662))

### New Features

- tap (experimental): Add Header metadata to tap handler
([#&#8203;6652](https://togithub.com/grpc/grpc-go/issues/6652))
- Special Thanks: [@&#8203;pstibrany](https://togithub.com/pstibrany)
- grpc: channel idleness enabled by default with an `idle_timeout` of
`30m` ([#&#8203;6585](https://togithub.com/grpc/grpc-go/issues/6585))

### Documentation

- examples: add an example of flow control behavior
([#&#8203;6648](https://togithub.com/grpc/grpc-go/issues/6648))

### Bug Fixes

- xds: fix hash policy header to skip "-bin" headers and read
content-type header as expected
([#&#8203;6609](https://togithub.com/grpc/grpc-go/issues/6609))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-18 01:17:11 +00:00
renovate[bot] f1a40b862e
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.3.1 (#971)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://togithub.com/diegoholiveira/jsonlogic)
| require | patch | `v3.3.0` -> `v3.3.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.3.1`](https://togithub.com/diegoholiveira/jsonlogic/releases/tag/v3.3.1)

[Compare
Source](https://togithub.com/diegoholiveira/jsonlogic/compare/v3.3.0...v3.3.1)

#### What's Changed

- Update readme by
[@&#8203;craigpastro](https://togithub.com/craigpastro) in
[https://github.com/diegoholiveira/jsonlogic/pull/68](https://togithub.com/diegoholiveira/jsonlogic/pull/68)
- Enable Go 1.20 and 1.21 in ci by
[@&#8203;craigpastro](https://togithub.com/craigpastro) in
[https://github.com/diegoholiveira/jsonlogic/pull/69](https://togithub.com/diegoholiveira/jsonlogic/pull/69)
- Use the first value when min / max by
[@&#8203;diegoholiveira](https://togithub.com/diegoholiveira) in
[https://github.com/diegoholiveira/jsonlogic/pull/72](https://togithub.com/diegoholiveira/jsonlogic/pull/72)

#### New Contributors

- [@&#8203;craigpastro](https://togithub.com/craigpastro) made their
first contribution in
[https://github.com/diegoholiveira/jsonlogic/pull/68](https://togithub.com/diegoholiveira/jsonlogic/pull/68)

**Full Changelog**:
https://github.com/diegoholiveira/jsonlogic/compare/v3.3.0...v3.3.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xOS4yIiwidXBkYXRlZEluVmVyIjoiMzcuMTkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 15:35:00 +00:00
Craig Pastro 608535a43f
docs: Add docs about $flag.properties (#965) 2023-10-14 10:10:37 -04:00
renovate[bot] ffad0fd941
chore(deps): update github/codeql-action digest to 0116bc2 (#968)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `d90b8d7` -> `0116bc2` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 16:17:24 +00:00
renovate[bot] 30dda72145
fix(deps): update module github.com/open-feature/go-sdk-contrib/tests/flagd to v1.3.1 (#760)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/go-sdk-contrib/tests/flagd](https://togithub.com/open-feature/go-sdk-contrib)
| require | patch | `v1.3.0` -> `v1.3.1` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-13 10:30:49 -04:00
renovate[bot] 8a4de03375
fix(deps): update dependency mkdocs-material to v9.4.5 (#852)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mkdocs-material](https://togithub.com/squidfunk/mkdocs-material) |
`9.1.21` -> `9.4.5` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mkdocs-material/9.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mkdocs-material/9.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mkdocs-material/9.1.21/9.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mkdocs-material/9.1.21/9.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>squidfunk/mkdocs-material (mkdocs-material)</summary>

###
[`v9.4.5`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.5):
mkdocs-material-9.4.5

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.4...9.4.5)

-   Fixed sidebar auto-positioning (9.4.2 regression)
- Fixed
[#&#8203;6166](https://togithub.com/squidfunk/mkdocs-material/issues/6166):
Improve group plugin compatibility with Python < 3.10
- Fixed
[#&#8203;6157](https://togithub.com/squidfunk/mkdocs-material/issues/6157):
Hiding tags does not work (9.4.3 regression)

###
[`v9.4.4`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.4):
mkdocs-material-9.4.4

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.3...9.4.4)

-   Added support for overriding text to be copied for code blocks
-   Fixed broken layout in some browsers at breakpoints when using zoom
- Fixed
[#&#8203;6132](https://togithub.com/squidfunk/mkdocs-material/issues/6132):
Incomplete search highlighting for code blocks in titles

###
[`v9.4.3`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.3):
mkdocs-material-9.4.3

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.2...9.4.3)

-   Added support for instant navigation progress indicator
-   Improved spacing and alignment of tags
-   Moved back-to-top button into separate partial
- Fixed
[#&#8203;6104](https://togithub.com/squidfunk/mkdocs-material/issues/6104):
Indentation for some code blocks lost in search
- Fixed
[#&#8203;6094](https://togithub.com/squidfunk/mkdocs-material/issues/6094):
Blog post metadata overlaps with footer on small screens
- Fixed
[#&#8203;6069](https://togithub.com/squidfunk/mkdocs-material/issues/6069):
Blog plugin crashes for categories with non-ASCII names

**Updated templates**
([diff](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.2...9.4.3))

-   `base.html`

###
[`v9.4.2`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.2):
mkdocs-material-9.4.2

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.1...9.4.2)

-   Updated Slovenian translations
-   Added animation to sidebar navigation expansion and collapse
- Added support for auto-replacement of document head for instant
navigation
-   Improved compatibility of new emoji extension with Python < 3.10
-   Switched regex dependency to use minimal version
-   Refactored alignment and spacing of sidebar navigation
- Fixed expansion button not focusable via keyboard in sidebar
navigation
- Fixed viewport offset restoration on first load when using instant
navigation
- Fixed accidental highlight of non-clickable elements in blog plugin
sidebar
- Fixed
[#&#8203;6041](https://togithub.com/squidfunk/mkdocs-material/issues/6041):
Blog plugin crashes when `nav` is defined and blog not included
- Fixed
[#&#8203;5972](https://togithub.com/squidfunk/mkdocs-material/issues/5972):
Blog plugin ignores section index pages in paginated views
- Fixed
[#&#8203;5954](https://togithub.com/squidfunk/mkdocs-material/issues/5954):
Repeated click on anchor ignored when using instant navigation
- Fixed
[#&#8203;5742](https://togithub.com/squidfunk/mkdocs-material/issues/5742):
Keyboard navigation broken when using instant navigation

**Updated templates**
([diff](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.1...9.4.2))

-   `partials/nav-item.html`
-   `blog-post.html`

###
[`v9.4.1`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.1):
mkdocs-material-9.4.1

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.4.0...9.4.1)

-   Improved colors and contrast in dark mode
-   Improved admonition borders to match font weight
-   Switched content tabs to neutral color

###
[`v9.4.0`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.4.0):
mkdocs-material-9.4.0

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.3.2...9.4.0)

-   Added Belarusian translations
-   Added version info to entrypoint of package
-   Added emoji extension as a replacement for `materialx`
-   Improved slate color scheme (dark mode) - now even darker
-   Restructured project to improve development experience
-   Updated MkDocs to 1.5.3
- Fixed
[#&#8203;3890](https://togithub.com/squidfunk/mkdocs-material/issues/3890):
Development mode crash on Linux

###
[`v9.3.2`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.3.2):
mkdocs-material-9.3.2

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.3.1...9.3.2)

-   Updated Slovenian translations
-   Updated Python dependencies in requirements to use minimum versions
- Fixed
[#&#8203;6017](https://togithub.com/squidfunk/mkdocs-material/issues/6017):
Code highlighting inconsistent in Community and Insiders edition
- Fixed
[#&#8203;6001](https://togithub.com/squidfunk/mkdocs-material/issues/6001):
Contributor avatars display incorrectly in Firefox
- Fixed
[#&#8203;6000](https://togithub.com/squidfunk/mkdocs-material/issues/6000):
Blog post drafts are included in navigation

###
[`v9.3.1`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.3.1):
mkdocs-material-9.3.1

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.3.0...9.3.1)

-   Fixed crash of group plugin when used together with hooks

###
[`v9.3.0`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.3.0):
mkdocs-material-9.3.0

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.8...9.3.0)

- Improved configuration sharing between community and Insiders edition
- Added experimental built-in group plugin for enabling plugins
conditionally
-   Added new settings in tags plugin for enabling/disabling
-   Dropped support for Python 3.7 (EOL)

###
[`v9.2.8`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.8):
mkdocs-material-9.2.8

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.7...9.2.8)

-   Updated Italian and Russian translations
- Fixed
[#&#8203;5952](https://togithub.com/squidfunk/mkdocs-material/issues/5952):
Combining blog and tags plugin leads to wrong links
- Fixed
[#&#8203;5951](https://togithub.com/squidfunk/mkdocs-material/issues/5951):
Blog plugin ignores post title in metadata
- Fixed
[#&#8203;5949](https://togithub.com/squidfunk/mkdocs-material/issues/5949):
Blog plugin ignores post linked in nav

###
[`v9.2.7`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.7):
mkdocs-material-9.2.7

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.6...9.2.7)

-   Switched dependencies to compatible release clauses
-   Removed `readtime` and `lxml` dependencies for blog plugin
-   Reduced size of Docker image to improve CI build performance
- Fixed
[#&#8203;5945](https://togithub.com/squidfunk/mkdocs-material/issues/5945):
Incorrect footer navigation for sibling pages of blog
- Fixed
[#&#8203;5939](https://togithub.com/squidfunk/mkdocs-material/issues/5939):
Page jumps when changing color palette (Firefox 117)
- Fixed
[#&#8203;5901](https://togithub.com/squidfunk/mkdocs-material/issues/5901):
Announcement bar reappears when using instant loading
- Fixed
[#&#8203;5824](https://togithub.com/squidfunk/mkdocs-material/issues/5824):
Allow to customize styles of sequence diagrams

###
[`v9.2.6`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.6):
mkdocs-material-9.2.6

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.5...9.2.6)

-   Added Basque translations
-   Added template for simple redirects
-   Improved blog plugin interop by moving view generation to `on_files`
- Fixed
[#&#8203;5924](https://togithub.com/squidfunk/mkdocs-material/issues/5924):
Social plugin still checks dependencies when disabled
- Fixed
[#&#8203;5916](https://togithub.com/squidfunk/mkdocs-material/issues/5916):
Blog plugin crashes on Python 3.8 (9.2.0 regression)

###
[`v9.2.5`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.5):
mkdocs-material-9.2.5

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.4...9.2.5)

-   Fixed error in dirty serve mode when using blog plugin
-   Fixed page title not being consistent in blog plugin pagination
- Fixed
[#&#8203;5899](https://togithub.com/squidfunk/mkdocs-material/issues/5899):
Blog plugin pagination breaks when disabling directory URLs

###
[`v9.2.4`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.4):
mkdocs-material-9.2.4

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.3...9.2.4)

-   Added version to bug report name in info plugin
-   Updated Afrikaans translations

###
[`v9.2.3`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.3):
mkdocs-material-9.2.3

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.2...9.2.3)

-   Fixed blog plugin rendering wrongly with `markdown.extensions.toc`
-   Fixed blog plugin entrypoint generation

###
[`v9.2.2`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.2):
mkdocs-material-9.2.2

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.1...9.2.2)

- Fixed
[#&#8203;5880](https://togithub.com/squidfunk/mkdocs-material/issues/5880):
Blog plugin failing when building a standalone blog
- Fixed
[#&#8203;5881](https://togithub.com/squidfunk/mkdocs-material/issues/5881):
Blog plugin not compatible with Python < 3.10

###
[`v9.2.1`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.1):
mkdocs-material-9.2.1

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.2.0...9.2.1)

- Fixed
[#&#8203;5879](https://togithub.com/squidfunk/mkdocs-material/issues/5879):
Blog plugin failing when building a standalone blog
-   Fixed error in blog plugin when using draft tagging on future date
-   Fixed error in blog plugin when toc extension is not enabled

###
[`v9.2.0`](https://togithub.com/squidfunk/mkdocs-material/releases/tag/9.2.0):
mkdocs-material-9.2.0

[Compare
Source](https://togithub.com/squidfunk/mkdocs-material/compare/9.1.21...9.2.0)

**Additions and improvements**

-   Added blogging support via built-in blog plugin
-   Added support for Chinese language segmentaiton in search plugin
-   Added support for adding custom dates to blog posts
-   Added support for paginating archive and category pages
-   Added support for annotations (outside of code blocks)
-   Added support for navigation icons
-   Added support for navigation pruning
-   Added support for navigation status
-   Added support for customizing site icons
-   Added support for customizing (code) annotation icons
-   Added focus outline to admonitions and details
-   Added prompt for bug report name to info plugin
-   Added Luxembourgish translations
-   Improved rendering of (code) annotation markers
-   Improved print styles for (code) annotations
-   Improved customizability of navigation tabs
-   Improved interop of plugins with external tools like mike
-   Improved interop of blog plugin with awesome pages plugin
-   Improved header partial by moving buttons into separate partials
-   Improved clarity of `site_url` warning in social plugin
-   Improved blog plugin to automatically setup directory structure
-   Switched info plugin to `importlib` to mitigate deprecations
-   Automatically download ResizeObserver polyfill when necessary
- Automatically add iframe-worker polyfill when necessary in offline
plugin
-   Automatically focus and bring up keyboard on touch devices
-   Updated Serbo-Croatian translations
-   Updated MkDocs to 1.5.2

**Removals**

-   Removed Universal Analytics integration
- Removed ancient polyfills to reduce size of bundled JavaScript by 20%
-   Removed necessity for `Array.flat` and `Array.flatMap` polyfill
-   Removed announcement bar button when JavaScript is not available

**Fixes**

-   Fixed rendering of tags when announcement bar is present
-   Fixed tags plugin rendering pages excluded by other plugins
- Fixed
[#&#8203;5132](https://togithub.com/squidfunk/mkdocs-material/issues/5132):
Blog plugin requires `nav` entry in `mkdocs.yml`
- Fixed
[#&#8203;5599](https://togithub.com/squidfunk/mkdocs-material/issues/5599):
Insufficient contrast for default link color
- Fixed
[#&#8203;5715](https://togithub.com/squidfunk/mkdocs-material/issues/5715):
Blog plugin missing integrated table of contents in pagination
- Fixed
[#&#8203;5806](https://togithub.com/squidfunk/mkdocs-material/issues/5806):
Version selector not hoverable on some Android devices
- Fixed
[#&#8203;5826](https://togithub.com/squidfunk/mkdocs-material/issues/5826):
Blog post drafts with tags show up in tags index

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzcuOC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 09:41:48 +00:00
renovate[bot] dd7839e405
fix(deps): update dependency mkdocs to v1.5.3 (#922)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mkdocs](https://togithub.com/mkdocs/mkdocs)
([changelog](https://www.mkdocs.org/about/release-notes/)) | `1.5.2` ->
`1.5.3` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/mkdocs/1.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/mkdocs/1.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/mkdocs/1.5.2/1.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/mkdocs/1.5.2/1.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>mkdocs/mkdocs (mkdocs)</summary>

### [`v1.5.3`](https://togithub.com/mkdocs/mkdocs/releases/tag/1.5.3)

[Compare
Source](https://togithub.com/mkdocs/mkdocs/compare/1.5.2...1.5.3)

- Fix `mkdocs serve` sometimes locking up all browser tabs when
navigating quickly
([#&#8203;3390](https://togithub.com/mkdocs/mkdocs/issues/3390))

- Add many new supported languages for "search" plugin - update
lunr-languages to 1.12.0
([#&#8203;3334](https://togithub.com/mkdocs/mkdocs/issues/3334))

- Bugfix (regression in 1.5.0): In "readthedocs" theme the styling of
"breadcrumb navigation" was broken for nested pages
([#&#8203;3383](https://togithub.com/mkdocs/mkdocs/issues/3383))

- Built-in themes now also support Chinese (Traditional, Taiwan)
language
([#&#8203;3370](https://togithub.com/mkdocs/mkdocs/issues/3370))

- Plugins can now set `File.page` to their own subclass of `Page`. There
is also now a warning if `File.page` is set to anything other than a
strict subclass of `Page`.
([#&#8203;3367](https://togithub.com/mkdocs/mkdocs/issues/3367),
[#&#8203;3381](https://togithub.com/mkdocs/mkdocs/issues/3381))

Note that just instantiating a `Page` [sets the file
automatically](f94ab3f62d/mkdocs/structure/pages.py (L34)),
so care needs to be taken not to create an unneeded `Page`.

Other small improvements; see [commit
log](https://togithub.com/mkdocs/mkdocs/compare/1.5.2...1.5.3).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 06:46:01 +00:00
renovate[bot] 7f54bd1fb3
fix(deps): update module golang.org/x/net to v0.17.0 [security] (#963)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.15.0` -> `v0.17.0` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

### GitHub Vulnerability Alerts

#### [CVE-2023-39325](https://togithub.com/golang/go/issues/63417)

A malicious HTTP/2 client which rapidly creates requests and immediately
resets them can cause excessive server resource consumption. While the
total number of requests is bounded by the
http2.Server.MaxConcurrentStreams setting, resetting an in-progress
request allows the attacker to create a new request while the existing
one is still executing.

With the fix applied, HTTP/2 servers now bound the number of
simultaneously executing handler goroutines to the stream concurrency
limit (MaxConcurrentStreams). New requests arriving when at the limit
(which can only happen after the client has reset an existing, in-flight
request) will be queued until a handler exits. If the request queue
grows too large, the server will terminate the connection.

This issue is also fixed in golang.org/x/net/http2 for users manually
configuring HTTP/2.

The default stream concurrency limit is 250 streams (requests) per
HTTP/2 connection. This value may be adjusted using the
golang.org/x/net/http2 package; see the Server.MaxConcurrentStreams
setting and the ConfigureServer function.

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 04:00:10 +00:00
renovate[bot] c038a3a370
fix(deps): update module github.com/open-feature/flagd/core to v0.6.7 (#966)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.6.6` -> `v0.6.7` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-13 00:50:22 +00:00
github-actions[bot] 3dd69297c4
chore: release main (#919)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.6.7</summary>

##
[0.6.7](https://github.com/open-feature/flagd/compare/flagd/v0.6.6...flagd/v0.6.7)
(2023-10-12)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.6
([#916](https://github.com/open-feature/flagd/issues/916))
([1f80e4d](1f80e4db9f))
* **deps:** update module
github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.17
([#759](https://github.com/open-feature/flagd/issues/759))
([a2a2c3c](a2a2c3c7ef))
* **deps:** update module github.com/spf13/viper to v1.17.0
([#956](https://github.com/open-feature/flagd/issues/956))
([31d015d](31d015d329))
* **deps:** update module go.uber.org/zap to v1.26.0
([#917](https://github.com/open-feature/flagd/issues/917))
([e57e206](e57e206c93))


### 🧹 Chore

* docs rework ([#927](https://github.com/open-feature/flagd/issues/927))
([27b3193](27b3193821))


### 📚 Documentation

* fixed typos and linting issues
([#957](https://github.com/open-feature/flagd/issues/957))
([0bade57](0bade57400))
</details>

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

##
[0.2.12](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.11...flagd-proxy/v0.2.12)
(2023-10-12)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.6
([#916](https://github.com/open-feature/flagd/issues/916))
([1f80e4d](1f80e4db9f))
* **deps:** update module github.com/spf13/viper to v1.17.0
([#956](https://github.com/open-feature/flagd/issues/956))
([31d015d](31d015d329))
* **deps:** update module go.uber.org/zap to v1.26.0
([#917](https://github.com/open-feature/flagd/issues/917))
([e57e206](e57e206c93))
</details>

<details><summary>core: 0.6.7</summary>

##
[0.6.7](https://github.com/open-feature/flagd/compare/core/v0.6.6...core/v0.6.7)
(2023-10-12)


### 🐛 Bug Fixes

* **deps:** update module github.com/prometheus/client_golang to v1.17.0
([#939](https://github.com/open-feature/flagd/issues/939))
([9065cba](9065cba599))
* **deps:** update module github.com/rs/cors to v1.10.1
([#946](https://github.com/open-feature/flagd/issues/946))
([1c39862](1c39862297))
* **deps:** update module go.uber.org/zap to v1.26.0
([#917](https://github.com/open-feature/flagd/issues/917))
([e57e206](e57e206c93))
* **deps:** update module golang.org/x/mod to v0.13.0
([#952](https://github.com/open-feature/flagd/issues/952))
([be61450](be61450ec3))
* **deps:** update module golang.org/x/sync to v0.4.0
([#949](https://github.com/open-feature/flagd/issues/949))
([faa24a6](faa24a6c6f))
* **deps:** update module google.golang.org/grpc to v1.58.1
([#915](https://github.com/open-feature/flagd/issues/915))
([06d95de](06d95ded9b))
* **deps:** update module google.golang.org/grpc to v1.58.2
([#928](https://github.com/open-feature/flagd/issues/928))
([90f1878](90f1878ae4))
* **deps:** update module google.golang.org/grpc to v1.58.3
([#960](https://github.com/open-feature/flagd/issues/960))
([fee1558](fee1558da4))
* **deps:** update opentelemetry-go monorepo
([#943](https://github.com/open-feature/flagd/issues/943))
([e7cee41](e7cee41630))
* erroneous warning about prop overwrite
([#924](https://github.com/open-feature/flagd/issues/924))
([673b76a](673b76aeff))


###  New Features

* add `$flagd.timestamp` to json evaluator
([#958](https://github.com/open-feature/flagd/issues/958))
([a1b04e7](a1b04e778d))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-10-12 16:37:05 -04:00
renovate[bot] a5572fdfcf
chore(deps): update github/codeql-action digest to d90b8d7 (#964)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `fdcae64` -> `d90b8d7` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-12 12:13:08 +00:00
Craig Pastro a1b04e778d
feat: add `$flagd.timestamp` to json evaluator (#958)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Adds "timestamp" to the json evaluation context.


### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Related to #851. I am not sure we want to say that it closes the issue
though.

---------

Signed-off-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-11 09:46:46 -04:00
renovate[bot] fee1558da4
fix(deps): update module google.golang.org/grpc to v1.58.3 (#960)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| patch | `v1.58.2` -> `v1.58.3` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.58.3`](https://togithub.com/grpc/grpc-go/releases/tag/v1.58.3)

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.58.2...v1.58.3)

### Security

- server: prohibit more than MaxConcurrentStreams handlers from running
at once (CVE-2023-44487)

In addition to this change, applications should ensure they do not leave
running tasks behind related to the RPC before returning from method
handlers, or should enforce appropriate limits on any such work.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44LjEiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-11 04:21:33 +00:00
renovate[bot] 2b5c25c343
chore(deps): update github/codeql-action digest to fdcae64 (#955)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `ddccb87` -> `fdcae64` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the
Dependency Dashboard for more information.

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy44LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-11 01:29:07 +00:00
Todd Baert f3506abdf2
chore: adds meta descriptions to improve indexing/SEO/etc (#959)
I was looking into what we could do to improve our indexing and social
object graph. I don't think there's much except adding
meta-descriptions. These aren't as important as they used to be, but
they can still improve indexing and increase likelihood of sharing on
social media, etc.

Adding a markdown metadata section with `description` in mkdocs results
in it being used in the description meta tag for the page, so I've done
that for some pages that are likely to be searched.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-10 17:42:19 -04:00
renovate[bot] be61450ec3
fix(deps): update module golang.org/x/mod to v0.13.0 (#952)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/mod | require | minor | `v0.12.0` -> `v0.13.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-06 18:46:20 +00:00
renovate[bot] 31d015d329
fix(deps): update module github.com/spf13/viper to v1.17.0 (#956)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/viper](https://togithub.com/spf13/viper) | require |
minor | `v1.16.0` -> `v1.17.0` |

---

### Release Notes

<details>
<summary>spf13/viper (github.com/spf13/viper)</summary>

### [`v1.17.0`](https://togithub.com/spf13/viper/releases/tag/v1.17.0)

[Compare
Source](https://togithub.com/spf13/viper/compare/v1.16.0...v1.17.0)

#### Major changes

Highlighting some of the changes for better visibility.

Please share your feedback in the Discussion forum. Thanks! ❤️

##### Minimum Go version: 1.19

Viper now requires Go 1.19

This change ensures we can stay up to date with modern practices and
dependencies.

##### `log/slog` support **\[BREAKING]**

Viper [v1.11.0](https://togithub.com/spf13/viper/releases/tag/v1.11.0)
added an experimental `Logger` interface to allow custom implementations
(besides
[jwalterweatherman](https://togithub.com/spf13/jwalterweatherman)).

In addition, it also exposed an experimental `WithLogger` function
allowing to set a custom logger.

This release deprecates that interface in favor of
[log/slog](https://pkg.go.dev/log/slog) released in Go 1.21.

> \[!WARNING]
> `WithLogger` accepts an
[\*slog.Logger](https://pkg.go.dev/log/slog#Logger) from now on.

To preserve backwards compatibility with older Go versions, prior to Go
1.21 Viper accepts a
[\*golang.org/x/exp/slog.Logger](https://pkg.go.dev/golang.org/x/exp/slog#Logger).

The experimental flag is removed.

##### New finder implementation **\[BREAKING]**

As of this release, Viper uses a new library to look for files, called
[locafero](https://togithub.com/sagikazarmark/locafero).

The new library is better covered by tests and has been built from
scratch as a general purpose file finder library.

The implementation is experimental and is hidden behind a `finder` build
tag.

> \[!WARNING]
> The `io/fs` based implementation (that used to be hidden behind a
`finder` build tag) has been removed.

#### What's Changed

##### Exciting New Features 🎉

- Add NATS support by [@&#8203;hooksie1](https://togithub.com/hooksie1)
in
[https://github.com/spf13/viper/pull/1590](https://togithub.com/spf13/viper/pull/1590)
- Add slog support by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1627](https://togithub.com/spf13/viper/pull/1627)

##### Enhancements 🚀

- chore: add local development environment using nix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1572](https://togithub.com/spf13/viper/pull/1572)
- feat: add func GetEnvPrefix by
[@&#8203;baruchiro](https://togithub.com/baruchiro) in
[https://github.com/spf13/viper/pull/1565](https://togithub.com/spf13/viper/pull/1565)
- Improve dev env by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1575](https://togithub.com/spf13/viper/pull/1575)
- fix: code optimization by
[@&#8203;testwill](https://togithub.com/testwill) in
[https://github.com/spf13/viper/pull/1557](https://togithub.com/spf13/viper/pull/1557)
- test: remove not needed testutil.Setenv by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1610](https://togithub.com/spf13/viper/pull/1610)
- new finder library based on afero by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1625](https://togithub.com/spf13/viper/pull/1625)
- refactor: make use of `strings.Cut` by
[@&#8203;scop](https://togithub.com/scop) in
[https://github.com/spf13/viper/pull/1650](https://togithub.com/spf13/viper/pull/1650)

##### Breaking Changes 🛠

- feat: drop support for Go 1.17 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1574](https://togithub.com/spf13/viper/pull/1574)

##### Dependency Updates ⬆️

- build(deps): bump mheap/github-action-required-labels from 4 to 5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1563](https://togithub.com/spf13/viper/pull/1563)
- build(deps): bump github.com/stretchr/testify from 1.8.3 to 1.8.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1558](https://togithub.com/spf13/viper/pull/1558)
- build(deps): bump cachix/install-nix-action from 21 to 22 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1573](https://togithub.com/spf13/viper/pull/1573)
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.8 to 2.0.9
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1586](https://togithub.com/spf13/viper/pull/1586)
- chore: upgrade crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1589](https://togithub.com/spf13/viper/pull/1589)
- build(deps): bump actions/checkout from 3.5.3 to 4.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1616](https://togithub.com/spf13/viper/pull/1616)
- build(deps): bump github/codeql-action from 2.21.2 to 2.21.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1615](https://togithub.com/spf13/viper/pull/1615)
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.0.9 to 2.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1614](https://togithub.com/spf13/viper/pull/1614)
- build(deps): bump actions/dependency-review-action from 3.0.6 to 3.0.8
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1605](https://togithub.com/spf13/viper/pull/1605)
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1604](https://togithub.com/spf13/viper/pull/1604)
- build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1593](https://togithub.com/spf13/viper/pull/1593)
- build(deps): bump github.com/subosito/gotenv from 1.4.2 to 1.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1603](https://togithub.com/spf13/viper/pull/1603)
- build(deps): bump cachix/install-nix-action from 22 to 23 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1620](https://togithub.com/spf13/viper/pull/1620)
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1621](https://togithub.com/spf13/viper/pull/1621)
- build(deps): bump actions/dependency-review-action from 3.0.8 to 3.1.0
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1623](https://togithub.com/spf13/viper/pull/1623)
- Bump minimum Go version to 1.19 by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1626](https://togithub.com/spf13/viper/pull/1626)
- build(deps): bump github/codeql-action from 2.21.5 to 2.21.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1632](https://togithub.com/spf13/viper/pull/1632)
- build(deps): bump github/codeql-action from 2.21.6 to 2.21.7 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1634](https://togithub.com/spf13/viper/pull/1634)
- build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1641](https://togithub.com/spf13/viper/pull/1641)
- build(deps): bump github.com/spf13/afero from 1.9.5 to 1.10.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1640](https://togithub.com/spf13/viper/pull/1640)
- build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1638](https://togithub.com/spf13/viper/pull/1638)
- build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/spf13/viper/pull/1648](https://togithub.com/spf13/viper/pull/1648)
- chore(deps): update crypt by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1652](https://togithub.com/spf13/viper/pull/1652)

##### Other Changes

- \[StepSecurity] ci: Harden GitHub Actions by
[@&#8203;step-security-bot](https://togithub.com/step-security-bot) in
[https://github.com/spf13/viper/pull/1592](https://togithub.com/spf13/viper/pull/1592)
- Add Vitess to list of projects using Viper by
[@&#8203;systay](https://togithub.com/systay) in
[https://github.com/spf13/viper/pull/1619](https://togithub.com/spf13/viper/pull/1619)
- docs: fix typos in comments by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1609](https://togithub.com/spf13/viper/pull/1609)
- ci: add Go 1.21 to the test matrix by
[@&#8203;sagikazarmark](https://togithub.com/sagikazarmark) in
[https://github.com/spf13/viper/pull/1622](https://togithub.com/spf13/viper/pull/1622)
- Remove usages of deprecated io/ioutil; simplify viper tests by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1631](https://togithub.com/spf13/viper/pull/1631)
- chore: remove deprecated build tags by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1630](https://togithub.com/spf13/viper/pull/1630)
- refactor: replace 'interface{}' with 'any' by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1646](https://togithub.com/spf13/viper/pull/1646)
- test: refactor asserts by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/spf13/viper/pull/1644](https://togithub.com/spf13/viper/pull/1644)
- docs: add set subset KV example by
[@&#8203;yhliyr](https://togithub.com/yhliyr) in
[https://github.com/spf13/viper/pull/1647](https://togithub.com/spf13/viper/pull/1647)
- Make deps fixes by [@&#8203;bersace](https://togithub.com/bersace) in
[https://github.com/spf13/viper/pull/1628](https://togithub.com/spf13/viper/pull/1628)

#### New Contributors

- [@&#8203;goldeneggg](https://togithub.com/goldeneggg) made their first
contribution in
[https://github.com/spf13/viper/pull/1561](https://togithub.com/spf13/viper/pull/1561)
- [@&#8203;baruchiro](https://togithub.com/baruchiro) made their first
contribution in
[https://github.com/spf13/viper/pull/1565](https://togithub.com/spf13/viper/pull/1565)
- [@&#8203;testwill](https://togithub.com/testwill) made their first
contribution in
[https://github.com/spf13/viper/pull/1557](https://togithub.com/spf13/viper/pull/1557)
- [@&#8203;step-security-bot](https://togithub.com/step-security-bot)
made their first contribution in
[https://github.com/spf13/viper/pull/1592](https://togithub.com/spf13/viper/pull/1592)
- [@&#8203;systay](https://togithub.com/systay) made their first
contribution in
[https://github.com/spf13/viper/pull/1619](https://togithub.com/spf13/viper/pull/1619)
- [@&#8203;alexandear](https://togithub.com/alexandear) made their first
contribution in
[https://github.com/spf13/viper/pull/1609](https://togithub.com/spf13/viper/pull/1609)
- [@&#8203;hooksie1](https://togithub.com/hooksie1) made their first
contribution in
[https://github.com/spf13/viper/pull/1590](https://togithub.com/spf13/viper/pull/1590)
- [@&#8203;yhliyr](https://togithub.com/yhliyr) made their first
contribution in
[https://github.com/spf13/viper/pull/1647](https://togithub.com/spf13/viper/pull/1647)
- [@&#8203;bersace](https://togithub.com/bersace) made their first
contribution in
[https://github.com/spf13/viper/pull/1628](https://togithub.com/spf13/viper/pull/1628)
- [@&#8203;scop](https://togithub.com/scop) made their first
contribution in
[https://github.com/spf13/viper/pull/1650](https://togithub.com/spf13/viper/pull/1650)

**Full Changelog**:
https://github.com/spf13/viper/compare/v1.16.0...v1.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-06 15:30:41 +00:00
Michael Beemer 0bade57400
docs: fixed typos and linting issues (#957)
## This PR

- reworked to autogenerated docs to resolve a relative path issue
- fixed invalid links
- fixed various typos

### How to test

Run `make run-web-docs` and look at the squeaky clean output.

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-06 10:43:39 -04:00
Michael Beemer 4b3490837a
chore: remove invalid link
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-05 17:40:51 -04:00
Todd Baert 9b97c7ebd0
chore: minor style tweaks (#953)
* use same colors as openfeature.dev
* use switch theme toggle
* improve searchability of troubleshooting topic

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-10-05 17:40:15 -04:00
renovate[bot] faa24a6c6f
fix(deps): update module golang.org/x/sync to v0.4.0 (#949)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/sync | require | minor | `v0.3.0` -> `v0.4.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-05 16:03:39 +00:00
renovate[bot] 1c39862297
fix(deps): update module github.com/rs/cors to v1.10.1 (#946)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/rs/cors](https://togithub.com/rs/cors) | require | patch |
`v1.10.0` -> `v1.10.1` |

---

### Release Notes

<details>
<summary>rs/cors (github.com/rs/cors)</summary>

### [`v1.10.1`](https://togithub.com/rs/cors/compare/v1.10.0...v1.10.1)

[Compare Source](https://togithub.com/rs/cors/compare/v1.10.0...v1.10.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-04 19:12:43 +00:00
Michael Beemer a281982baa
docs: fix link to provider ecosystem page (#947)
## This PR

- fix link to provider ecosystem page

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-04 13:35:12 -04:00
Michael Beemer 0089dc3122
docs: removed RPC section and fixed grammatical issues (#945)
## This PR

- remove RPC section from the in-process docs
- addressed various grammatical issues

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-29 10:56:36 -04:00
renovate[bot] e7cee41630
fix(deps): update opentelemetry-go monorepo (#943)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.18.0` -> `v1.19.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.41.0` -> `v0.42.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.18.0` -> `v1.19.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.18.0` -> `v1.19.0` |
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.41.0` -> `v0.42.0` |
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.18.0` -> `v1.19.0` |
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.18.0` -> `v1.19.0` |
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.18.0` -> `v1.19.0` |

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.19.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.19.0):
/v0.42.0/v0.0.7

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.18.0...v1.19.0)

This release contains the first stable release of the OpenTelemetry Go
[metric SDK]. Our project stability guarantees now apply to the
`go.opentelemetry.io/otel/sdk/metric` package. See our [versioning
policy](VERSIONING.md) for more information about these stability
guarantees.

##### Added

- Add the "Roll the dice" getting started application example in
`go.opentelemetry.io/otel/example/dice`.
([#&#8203;4539](https://togithub.com/open-telemetry/opentelemetry-go/issues/4539))
- The `WithWriter` and `WithPrettyPrint` options to
`go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` to set a custom
`io.Writer`, and allow displaying the output in human-readable JSON.
([#&#8203;4507](https://togithub.com/open-telemetry/opentelemetry-go/issues/4507))

##### Changed

- Allow '/' characters in metric instrument names.
([#&#8203;4501](https://togithub.com/open-telemetry/opentelemetry-go/issues/4501))
- The exporter in
`go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` does not
prettify its output by default anymore.
([#&#8203;4507](https://togithub.com/open-telemetry/opentelemetry-go/issues/4507))
- Upgrade `gopkg.io/yaml` from `v2` to `v3` in
`go.opentelemetry.io/otel/schema`.
([#&#8203;4535](https://togithub.com/open-telemetry/opentelemetry-go/issues/4535))

##### Fixed

- In `go.opentelemetry.op/otel/exporters/prometheus`, don't try to
create the Prometheus metric on every `Collect` if we know the scope is
invalid.
([#&#8203;4499](https://togithub.com/open-telemetry/opentelemetry-go/issues/4499))

##### Removed

- Remove
`"go.opentelemetry.io/otel/bridge/opencensus".NewMetricExporter`, which
is replaced by `NewMetricProducer`.
([#&#8203;4566](https://togithub.com/open-telemetry/opentelemetry-go/issues/4566))

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.18.0...v1.19.0

[metric SDK]: https://pkg.go.dev/go.opentelemetry.io/otel/sdk/metric

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4wLjMiLCJ1cGRhdGVkSW5WZXIiOiIzNy4wLjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-29 03:59:50 +00:00
Todd Baert 6d9aecd8ff
chore: various doc fixes (#942)
* fixes some links
* adds bit about required version for `fractional`
* adds bit about multiple fs events, symlinks
* adds blurb about HTTP2 being blocked in some environments

Fixes: https://github.com/open-feature/flagd/issues/894
Fixes: https://github.com/open-feature/flagd/issues/479
Fixes: https://github.com/open-feature/flagd/issues/362

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-09-28 18:01:03 -04:00
renovate[bot] 745c29f20c
chore(deps): update github/codeql-action digest to ddccb87 (#940)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `6a28655` -> `ddccb87` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDcuMiIsInVwZGF0ZWRJblZlciI6IjM2LjEwNy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 22:42:12 +00:00
Todd Baert fc0610d3c8
chore: remove snap, rename deployment (#941)
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-27 14:31:00 -04:00
Todd Baert 68ebe9600d docs: add search
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-27 14:07:21 -04:00
Todd Baert 27b3193821
chore: docs rework (#927)
Total web-docs overhaul:

- puts a helpful intro at the start, with a demo on the next page
- adds an "architecture" page which discusses in-process vs rpc
- adds a deployment page with mentions how to install/run
- adds a "reference" section which includes:
  - specs
  - protos (in the form of autogenerated markdown for easy navigation)
  - autogenerated CLI docs
- adds FAQ

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-09-27 13:46:39 -04:00
renovate[bot] 9065cba599
fix(deps): update module github.com/prometheus/client_golang to v1.17.0 (#939)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)
| require | minor | `v1.16.0` -> `v1.17.0` |

---

### Release Notes

<details>
<summary>prometheus/client_golang
(github.com/prometheus/client_golang)</summary>

###
[`v1.17.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.17.0)

[Compare
Source](https://togithub.com/prometheus/client_golang/compare/v1.16.0...v1.17.0)

#### What's Changed

- \[CHANGE] Minimum required go version is now 1.19 (we also test
client_golang against new 1.21 version).
[#&#8203;1325](https://togithub.com/prometheus/client_golang/issues/1325)
- \[FEATURE] Add support for Created Timestamps in Counters, Summaries
and Historams.
[#&#8203;1313](https://togithub.com/prometheus/client_golang/issues/1313)
- \[ENHANCEMENT] Enable detection of a native histogram without
observations.
[#&#8203;1314](https://togithub.com/prometheus/client_golang/issues/1314)

<details><summary>Commits</summary>

- Merge v1.16.0 to main by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1293](https://togithub.com/prometheus/client_golang/pull/1293)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1297](https://togithub.com/prometheus/client_golang/pull/1297)
- ci: define minimal permissions to GitHub workflows by
[@&#8203;diogoteles08](https://togithub.com/diogoteles08) in
[https://github.com/prometheus/client_golang/pull/1295](https://togithub.com/prometheus/client_golang/pull/1295)
- Do not allocate memory when there's no constraints by
[@&#8203;Okhoshi](https://togithub.com/Okhoshi) in
[https://github.com/prometheus/client_golang/pull/1296](https://togithub.com/prometheus/client_golang/pull/1296)
- Bump golang.org/x/sys from 0.8.0 to 0.9.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1306](https://togithub.com/prometheus/client_golang/pull/1306)
- Bump google.golang.org/grpc from 1.45.0 to 1.53.0 in /tutorial/whatsup
by [@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1307](https://togithub.com/prometheus/client_golang/pull/1307)
- histogram: Enable detection of a native histogram without observations
by [@&#8203;beorn7](https://togithub.com/beorn7) in
[https://github.com/prometheus/client_golang/pull/1314](https://togithub.com/prometheus/client_golang/pull/1314)
- Bump github.com/prometheus/procfs from 0.10.1 to 0.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1305](https://togithub.com/prometheus/client_golang/pull/1305)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1302](https://togithub.com/prometheus/client_golang/pull/1302)
- Fix data-race in metric without `code` and `method` but with
`WithLabelFromCtx` by [@&#8203;tigrato](https://togithub.com/tigrato) in
[https://github.com/prometheus/client_golang/pull/1318](https://togithub.com/prometheus/client_golang/pull/1318)
- Add missing tick "\`" in README by
[@&#8203;ZiViZiViZ](https://togithub.com/ZiViZiViZ) in
[https://github.com/prometheus/client_golang/pull/1321](https://togithub.com/prometheus/client_golang/pull/1321)
- Bump golang.org/x/sys from 0.9.0 to 0.10.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1320](https://togithub.com/prometheus/client_golang/pull/1320)
- Bump github.com/prometheus/procfs from 0.11.0 to 0.11.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1319](https://togithub.com/prometheus/client_golang/pull/1319)
- docs: trivial grammar fixes to improve readability in promauto Godoc
by [@&#8203;sengi](https://togithub.com/sengi) in
[https://github.com/prometheus/client_golang/pull/1322](https://togithub.com/prometheus/client_golang/pull/1322)
- Add Go 1.21 support by
[@&#8203;kakkoyun](https://togithub.com/kakkoyun) in
[https://github.com/prometheus/client_golang/pull/1325](https://togithub.com/prometheus/client_golang/pull/1325)
- Bump client_model by
[@&#8203;ArthurSens](https://togithub.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1323](https://togithub.com/prometheus/client_golang/pull/1323)
- histogram docs: Fixed minor nit. by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1324](https://togithub.com/prometheus/client_golang/pull/1324)
- Update building by [@&#8203;SuperQ](https://togithub.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1326](https://togithub.com/prometheus/client_golang/pull/1326)
- Bump golang.org/x/sys from 0.10.0 to 0.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1331](https://togithub.com/prometheus/client_golang/pull/1331)
- Bump github.com/prometheus/client_golang from
1.15.1-0.20230416215738-0963f595c689 to 1.16.0 in /tutorial/whatsup by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1329](https://togithub.com/prometheus/client_golang/pull/1329)
- Bump github.com/prometheus/client_golang from 1.13.1 to 1.16.0 in
/examples/middleware by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1328](https://togithub.com/prometheus/client_golang/pull/1328)
- Bump github.com/prometheus/common from 0.42.0 to 0.44.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1284](https://togithub.com/prometheus/client_golang/pull/1284)
- Bump github.com/prometheus/common from 0.42.0 to 0.44.0 in
/tutorial/whatsup by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1330](https://togithub.com/prometheus/client_golang/pull/1330)
- Bump google.golang.org/protobuf from 1.30.0 to 1.31.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1304](https://togithub.com/prometheus/client_golang/pull/1304)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1332](https://togithub.com/prometheus/client_golang/pull/1332)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1338](https://togithub.com/prometheus/client_golang/pull/1338)
- Cleanup golangci-lint errcheck by
[@&#8203;SuperQ](https://togithub.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1339](https://togithub.com/prometheus/client_golang/pull/1339)
- Add go_godebug_non_default_behavior_tlsmaxrsasize_events_total by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/prometheus/client_golang/pull/1348](https://togithub.com/prometheus/client_golang/pull/1348)
- Extend Counters, Summaries and Histograms with creation timestamp by
[@&#8203;ArthurSens](https://togithub.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1313](https://togithub.com/prometheus/client_golang/pull/1313)
- Fix typos in comments, tests, and errors by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/prometheus/client_golang/pull/1346](https://togithub.com/prometheus/client_golang/pull/1346)
- Deprecated comment should begin with "Deprecated:" by
[@&#8203;alexandear](https://togithub.com/alexandear) in
[https://github.com/prometheus/client_golang/pull/1347](https://togithub.com/prometheus/client_golang/pull/1347)
- Add changelog entry for 1.17 by
[@&#8203;ArthurSens](https://togithub.com/ArthurSens) in
[https://github.com/prometheus/client_golang/pull/1352](https://togithub.com/prometheus/client_golang/pull/1352)

</details>

#### New Contributors
* @&#8203;diogoteles08 made their first
contributi[https://github.com/prometheus/client_golang/pull/1295](https://togithub.com/prometheus/client_golang/pull/1295)l/1295
* @&#8203;tigrato made their first
contributi[https://github.com/prometheus/client_golang/pull/1318](https://togithub.com/prometheus/client_golang/pull/1318)l/1318
* @&#8203;ZiViZiViZ made their first
contributi[https://github.com/prometheus/client_golang/pull/1321](https://togithub.com/prometheus/client_golang/pull/1321)l/1321
* @&#8203;sengi made their first
contributi[https://github.com/prometheus/client_golang/pull/1322](https://togithub.com/prometheus/client_golang/pull/1322)l/1322
* @&#8203;ArthurSens made their first
contributi[https://github.com/prometheus/client_golang/pull/1323](https://togithub.com/prometheus/client_golang/pull/1323)l/1323
* @&#8203;alexandear made their first
contributi[https://github.com/prometheus/client_golang/pull/1348](https://togithub.com/prometheus/client_golang/pull/1348)l/1348

**Full Changelog**:
https://github.com/prometheus/client_golang/compare/v1.16.0...v1.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMDcuMiIsInVwZGF0ZWRJblZlciI6IjM2LjEwNy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 14:41:47 +00:00
renovate[bot] 2cd4736515
chore(deps): update sigstore/cosign-installer digest to 9c520b9 (#935)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `ef6a6b3` -> `9c520b9` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi45Ny4xIiwidXBkYXRlZEluVmVyIjoiMzYuOTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 09:53:26 +00:00
renovate[bot] a2a2c3c7ef
fix(deps): update module github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.17 (#759)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/go-sdk-contrib/providers/flagd](https://togithub.com/open-feature/go-sdk-contrib)
| require | patch | `v0.1.16` -> `v0.1.17` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuOTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 22:45:45 +00:00
renovate[bot] 3e4c56cb02
chore(deps): update actions/checkout digest to 8ade135 (#932)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
digest | `3df4ab1` -> `8ade135` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi45Ny4xIiwidXBkYXRlZEluVmVyIjoiMzYuOTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 19:20:55 +00:00
renovate[bot] 90f1878ae4
fix(deps): update module google.golang.org/grpc to v1.58.2 (#928)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| patch | `v1.58.1` -> `v1.58.2` |

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.58.2`](https://togithub.com/grpc/grpc-go/releases/tag/v1.58.2):
Release 1.58.2

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.58.1...v1.58.2)

### Bug Fixes

-   balancer/weighted_round_robin: fix ticker leak on update

A new ticker is created every time there is an update of addresses or
configuration, but was not properly stopped. This change stops the
ticker when it is no longer needed.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi45Ny4xIiwidXBkYXRlZEluVmVyIjoiMzYuOTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-22 03:37:55 +00:00
Craig Pastro 673b76aeff
fix: erroneous warning about prop overwrite (#924)
When adding flagdProperties to the context in preparation for evaluation
return a new context so that it doesn't affect any references to the
current context.

Without this change:
```
$ make run
make run-flagd
cd flagd; go run main.go start -f file:../config/samples/example_flags.flagd.json

                 ______   __       ________   _______    ______      
                /_____/\ /_/\     /_______/\ /______/\  /_____/\     
                \::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \    
                 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\ \ \ \   
                  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \  
                   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| | 
                    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/ 

2023-09-18T19:16:39.581-0700    info    cmd/start.go:117        flagd version: dev (HEAD), built at: unknown    {"component": "start"}
2023-09-18T19:16:39.581-0700    info    file/filepath_sync.go:37        Starting filepath sync notifier {"component": "sync", "sync": "filepath"}
2023-09-18T19:16:39.582-0700    info    flag-evaluation/connect_service.go:203  metrics and probes listening at 8014    {"component": "service"}
2023-09-18T19:16:39.582-0700    info    file/filepath_sync.go:66        watching filepath: ../config/samples/example_flags.flagd.json       {"component": "sync", "sync": "filepath"}
2023-09-18T19:16:39.582-0700    info    flag-evaluation/connect_service.go:183  Flag Evaluation listening at [::]:8013  {"component": "service"}
2023-09-18T19:16:41.258-0700    warn    eval/json_evaluator.go:368      overwriting $flagd properties in the context    {"component": "evaluator", "evaluator": "json"}
2023-09-18T19:16:41.259-0700    warn    eval/json_evaluator.go:368      overwriting $flagd properties in the context    {"component": "evaluator", "evaluator": "json"}
2023-09-18T19:16:41.259-0700    warn    eval/legacy_fractional_evaluation.go:35 fractionalEvaluation is deprecated, please use fractional, see: https://flagd.dev/concepts/#migrating-from-legacy-fractionalevaluation
2023-09-18T19:16:41.259-0700    warn    eval/json_evaluator.go:368      overwriting $flagd properties in the context    {"component": "evaluator", "evaluator": "json"}
```

With this change:
```
$ make run
make run-flagd
cd flagd; go run main.go start -f file:../config/samples/example_flags.flagd.json

                 ______   __       ________   _______    ______      
                /_____/\ /_/\     /_______/\ /______/\  /_____/\     
                \::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \    
                 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\ \ \ \   
                  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \  
                   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| | 
                    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/ 

2023-09-18T19:20:29.011-0700    info    cmd/start.go:117        flagd version: dev (HEAD), built at: unknown    {"component": "start"}
2023-09-18T19:20:29.012-0700    info    file/filepath_sync.go:37        Starting filepath sync notifier {"component": "sync", "sync": "filepath"}
2023-09-18T19:20:29.013-0700    info    flag-evaluation/connect_service.go:203  metrics and probes listening at 8014    {"component": "service"}
2023-09-18T19:20:29.013-0700    info    flag-evaluation/connect_service.go:183  Flag Evaluation listening at [::]:8013  {"component": "service"}
2023-09-18T19:20:29.014-0700    info    file/filepath_sync.go:66        watching filepath: ../config/samples/example_flags.flagd.json       {"component": "sync", "sync": "filepath"}
2023-09-18T19:20:32.784-0700    warn    eval/legacy_fractional_evaluation.go:35 fractionalEvaluation is deprecated, please use fractional, see: https://flagd.dev/concepts/#migrating-from-legacy-fractionalevaluation
```

Signed-off-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-19 12:28:38 -04:00
renovate[bot] af4c7ad6ab
chore(deps): update docker/metadata-action digest to 879dcbb (#920)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `6dfb6f1` -> `879dcbb` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-19 16:14:21 +00:00
renovate[bot] e1e7ca0034
chore(deps): update github/codeql-action digest to 6a28655 (#925)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `04daf01` -> `6a28655` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi45Ny4xIiwidXBkYXRlZEluVmVyIjoiMzYuOTcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-19 14:22:29 +00:00
renovate[bot] e57e206c93
fix(deps): update module go.uber.org/zap to v1.26.0 (#917)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go.uber.org/zap](https://togithub.com/uber-go/zap) | require | minor
| `v1.25.0` -> `v1.26.0` |

---

### Release Notes

<details>
<summary>uber-go/zap (go.uber.org/zap)</summary>

### [`v1.26.0`](https://togithub.com/uber-go/zap/releases/tag/v1.26.0)

[Compare
Source](https://togithub.com/uber-go/zap/compare/v1.25.0...v1.26.0)

Enhancements:

-   [#&#8203;1297][]: Add `Dict` as a `Field`.
- [#&#8203;1319][]: Add `WithLazy` method to `Logger` which lazily
evaluates the structured
    context.
-   [#&#8203;1350][]: String encoding is much (~50%) faster now.

Thanks to [@&#8203;hhk7734](https://togithub.com/hhk7734),
[@&#8203;jquirke](https://togithub.com/jquirke),
[@&#8203;cdvr1993](https://togithub.com/cdvr1993) for their
contributions to this release.

[#&#8203;1297]: https://togithub.com/uber-go/zap/pull/1297

[#&#8203;1319]: https://togithub.com/uber-go/zap/pull/1319

[#&#8203;1350]: https://togithub.com/uber-go/zap/pull/1350

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-15 07:08:53 +00:00
renovate[bot] 06d95ded9b
fix(deps): update module google.golang.org/grpc to v1.58.1 (#915)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| patch | `v1.58.0` -> `v1.58.1` |

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.58.1`](https://togithub.com/grpc/grpc-go/releases/tag/v1.58.1):
Release 1.58.1

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.58.0...v1.58.1)

### Bug Fixes

- grpc: fix a bug that was decrementing active RPC count too early for
streaming RPCs; leading to channel moving to IDLE even though it had
open streams
- grpc: fix a bug where transports were not being closed upon channel
entering IDLE

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-15 05:16:43 +00:00
renovate[bot] 1f80e4db9f
fix(deps): update module github.com/open-feature/flagd/core to v0.6.6 (#916)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.6.5` -> `v0.6.6` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-15 02:08:51 +00:00
renovate[bot] 428031d840
chore(deps): update github/codeql-action digest to 04daf01 (#914)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `701f152` -> `04daf01` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 22:45:44 +00:00
github-actions[bot] 90152efa00
chore: release main (#902)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.6.6</summary>

##
[0.6.6](https://github.com/open-feature/flagd/compare/flagd/v0.6.5...flagd/v0.6.6)
(2023-09-14)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.5
([#900](https://github.com/open-feature/flagd/issues/900))
([c2ddcbf](c2ddcbfe49))


### 🧹 Chore

* add new flagd-evaluator e2e suite
([#898](https://github.com/open-feature/flagd/issues/898))
([37ab55d](37ab55d26a))
</details>

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

##
[0.2.11](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.10...flagd-proxy/v0.2.11)
(2023-09-14)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.5
([#900](https://github.com/open-feature/flagd/issues/900))
([c2ddcbf](c2ddcbfe49))
</details>

<details><summary>core: 0.6.6</summary>

##
[0.6.6](https://github.com/open-feature/flagd/compare/core/v0.6.5...core/v0.6.6)
(2023-09-14)


### 🐛 Bug Fixes

* **deps:** update kubernetes packages to v0.28.2
([#911](https://github.com/open-feature/flagd/issues/911))
([2eda6ab](2eda6ab5e5))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.16.2
([#907](https://github.com/open-feature/flagd/issues/907))
([9976851](9976851d79))
* **deps:** update opentelemetry-go monorepo
([#906](https://github.com/open-feature/flagd/issues/906))
([5a41226](5a41226580))
* use 32bit murmur calculation (64 is not stable)
([#913](https://github.com/open-feature/flagd/issues/913))
([db8dca4](db8dca421c))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-14 13:02:46 -07:00
Kavindu Dodanduwa db8dca421c
fix: use 32bit murmur calculation (64 is not stable) (#913)
* fixes murmur3 hash calculation to be cross language compatible (32bit).

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-09-14 14:55:31 -04:00
renovate[bot] 2eda6ab5e5
fix(deps): update kubernetes packages to v0.28.2 (#911)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
require | patch | `v0.28.1` -> `v0.28.2` |
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
require | patch | `v0.28.1` -> `v0.28.2` |

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.28.2`](https://togithub.com/kubernetes/apimachinery/compare/v0.28.1...v0.28.2)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.28.1...v0.28.2)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.28.2`](https://togithub.com/kubernetes/client-go/compare/v0.28.1...v0.28.2)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.28.1...v0.28.2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-14 01:16:04 +00:00
renovate[bot] afabb1e1a0
chore(deps): update github/codeql-action digest to 701f152 (#910)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `00e563e` -> `701f152` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 19:55:03 +00:00
Todd Baert 37ab55d26a
chore: add new flagd-evaluator e2e suite (#898)
Uses test suite defined
[here](https://github.com/open-feature/flagd-testbed/blob/main/gherkin/flagd-json-evaluator.feature)
to validate json evaluator behavior end-to-end, by using the test suite
added [here](https://github.com/open-feature/go-sdk-contrib/pull/328).

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-13 13:35:34 -04:00
renovate[bot] c2cd85e6e5
chore(deps): update docker/login-action digest to b4bedf8 (#908)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `ba38666` -> `b4bedf8` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 15:04:31 +00:00
renovate[bot] 84fcea68d5
chore(deps): update docker/metadata-action digest to 6dfb6f1 (#909)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `1f35ebc` -> `6dfb6f1` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 12:06:13 +00:00
renovate[bot] facaa99aed
chore(deps): update docker/build-push-action action to v5 (#905)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[docker/build-push-action](https://togithub.com/docker/build-push-action)
| action | major | `v4` -> `v5` |

---

### Release Notes

<details>
<summary>docker/build-push-action (docker/build-push-action)</summary>

###
[`v5`](https://togithub.com/docker/build-push-action/compare/v4...v5)

[Compare
Source](https://togithub.com/docker/build-push-action/compare/v4...v5)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-13 01:10:25 +00:00
renovate[bot] 5a41226580
fix(deps): update opentelemetry-go monorepo (#906)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.17.0` -> `v1.18.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.40.0` -> `v0.41.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.17.0` -> `v1.18.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.17.0` -> `v1.18.0` |
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.40.0` -> `v0.41.0` |
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.17.0` -> `v1.18.0` |
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.17.0` -> `v1.18.0` |
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.40.0` -> `v0.41.0` |
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.17.0` -> `v1.18.0` |

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.18.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.18.0):
/v0.41.0/v0.0.6

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.17.0...v1.18.0)

This release drops the compatibility guarantee of [Go 1.19].

##### Added

- Add `WithProducer` option in
`go.opentelemetry.op/otel/exporters/prometheus` to restore the ability
to register producers on the prometheus exporter's manual reader.
([#&#8203;4473](https://togithub.com/open-telemetry/opentelemetry-go/issues/4473))
- Add `IgnoreValue` option in
`go.opentelemetry.io/otel/sdk/metric/metricdata/metricdatatest` to allow
ignoring values when comparing metrics.
([#&#8203;4447](https://togithub.com/open-telemetry/opentelemetry-go/issues/4447))

##### Deprecated

- The `NewMetricExporter` in
`go.opentelemetry.io/otel/bridge/opencensus` was deprecated in `v0.35.0`
([#&#8203;3541](https://togithub.com/open-telemetry/opentelemetry-go/issues/3541)).
The deprecation notice format for the function has been corrected to
trigger Go documentation and build tooling.
([#&#8203;4470](https://togithub.com/open-telemetry/opentelemetry-go/issues/4470))

##### Removed

- Removed the deprecated `go.opentelemetry.io/otel/exporters/jaeger`
package.
([#&#8203;4467](https://togithub.com/open-telemetry/opentelemetry-go/issues/4467))
- Removed the deprecated `go.opentelemetry.io/otel/example/jaeger`
package.
([#&#8203;4467](https://togithub.com/open-telemetry/opentelemetry-go/issues/4467))
- Removed the deprecated
`go.opentelemetry.io/otel/sdk/metric/aggregation` package.
([#&#8203;4468](https://togithub.com/open-telemetry/opentelemetry-go/issues/4468))
- Removed the deprecated internal packages in
`go.opentelemetry.io/otel/exporters/otlp` and its sub-packages.
([#&#8203;4469](https://togithub.com/open-telemetry/opentelemetry-go/issues/4469))
- Dropped guaranteed support for versions of Go less than 1.20.
([#&#8203;4481](https://togithub.com/open-telemetry/opentelemetry-go/issues/4481))

#### New Contributors

- [@&#8203;pkbhowmick](https://togithub.com/pkbhowmick) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4462](https://togithub.com/open-telemetry/opentelemetry-go/pull/4462)
- [@&#8203;RangelReale](https://togithub.com/RangelReale) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4447](https://togithub.com/open-telemetry/opentelemetry-go/pull/4447)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.17.0...v1.18.0

[Go 1.19]: https://go.dev/doc/go1.19

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 22:17:33 +00:00
renovate[bot] 9976851d79
fix(deps): update module sigs.k8s.io/controller-runtime to v0.16.2 (#907)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[sigs.k8s.io/controller-runtime](https://togithub.com/kubernetes-sigs/controller-runtime)
| require | patch | `v0.16.1` -> `v0.16.2` |

---

### Release Notes

<details>
<summary>kubernetes-sigs/controller-runtime
(sigs.k8s.io/controller-runtime)</summary>

###
[`v0.16.2`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.2)

#### What's Changed

- 🐛 Add corev1, coordinationv1 scheme for leader election when
LeaderElection manager option is true by
[@&#8203;troy0820](https://togithub.com/troy0820) in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2466](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2466)
- 🐛 Use http client from leaderElectionConfig by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2468](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2468)
- 🐛 Default namespace only for namespaced object by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2482](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2482)
- 🐛 Do not update anything but status when using subresource client by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2483](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2483)
- 🐛 Fix status subresource getting updated on Update when it is
empty by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2485](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2485)
- 🐛 Fix returning object after status update by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2490](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2490)
- 🐛 Return NoResourceMatchError when appropriate for backwards
compatibility. by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2492](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2492)

**Full Changelog**:
https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.1...v0.16.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 19:46:41 +00:00
renovate[bot] 0c2b55dfb5
chore(deps): update docker/metadata-action digest to 1f35ebc (#904)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `79f06a3` -> `1f35ebc` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 17:29:44 +00:00
renovate[bot] f16ce9dfaa
chore(deps): update docker/login-action digest to ba38666 (#903)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `a5609cb` -> `ba38666` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-12 16:54:23 +00:00
renovate[bot] c2ddcbfe49
fix(deps): update module github.com/open-feature/flagd/core to v0.6.5 (#900)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.6.4` -> `v0.6.5` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 12:07:41 +00:00
renovate[bot] 7d98607ff8
chore(deps): update sigstore/cosign-installer digest to ef6a6b3 (#901)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `11086d2` -> `ef6a6b3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-11 10:06:17 +00:00
github-actions[bot] 43f15ea923
chore: release main (#883)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.6.5</summary>

##
[0.6.5](https://github.com/open-feature/flagd/compare/flagd/v0.6.4...flagd/v0.6.5)
(2023-09-08)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.4
([#880](https://github.com/open-feature/flagd/issues/880))
([ebb543d](ebb543d6ee))
* **deps:** update opentelemetry-go monorepo
([#868](https://github.com/open-feature/flagd/issues/868))
([d48317f](d48317f61d))


### 🧹 Chore

* disable caching on integration tests
([#899](https://github.com/open-feature/flagd/issues/899))
([16dd21e](16dd21e583))
* upgrade to go 1.20
([#891](https://github.com/open-feature/flagd/issues/891))
([977167f](977167fb8d))
</details>

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

##
[0.2.10](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.9...flagd-proxy/v0.2.10)
(2023-09-08)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.4
([#880](https://github.com/open-feature/flagd/issues/880))
([ebb543d](ebb543d6ee))
* **deps:** update opentelemetry-go monorepo
([#868](https://github.com/open-feature/flagd/issues/868))
([d48317f](d48317f61d))


### 🧹 Chore

* upgrade to go 1.20
([#891](https://github.com/open-feature/flagd/issues/891))
([977167f](977167fb8d))
</details>

<details><summary>core: 0.6.5</summary>

##
[0.6.5](https://github.com/open-feature/flagd/compare/core/v0.6.4...core/v0.6.5)
(2023-09-08)


### 🐛 Bug Fixes

* **deps:** update module github.com/rs/cors to v1.10.0
([#893](https://github.com/open-feature/flagd/issues/893))
([fe61fbe](fe61fbe47a))
* **deps:** update module golang.org/x/crypto to v0.13.0
([#888](https://github.com/open-feature/flagd/issues/888))
([1a9037a](1a9037a5b0))
* **deps:** update module golang.org/x/net to v0.15.0
([#889](https://github.com/open-feature/flagd/issues/889))
([233d976](233d976948))
* **deps:** update module google.golang.org/grpc to v1.58.0
([#896](https://github.com/open-feature/flagd/issues/896))
([853b76d](853b76dfa3))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.16.1
([#882](https://github.com/open-feature/flagd/issues/882))
([ca3d85a](ca3d85a51c))
* **deps:** update opentelemetry-go monorepo
([#868](https://github.com/open-feature/flagd/issues/868))
([d48317f](d48317f61d))


### 🧹 Chore

* upgrade to go 1.20
([#891](https://github.com/open-feature/flagd/issues/891))
([977167f](977167fb8d))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-08 11:54:40 -07:00
renovate[bot] fe61fbe47a
fix(deps): update module github.com/rs/cors to v1.10.0 (#893)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/rs/cors](https://togithub.com/rs/cors) | require | minor |
`v1.9.0` -> `v1.10.0` |

---

### Release Notes

<details>
<summary>rs/cors (github.com/rs/cors)</summary>

### [`v1.10.0`](https://togithub.com/rs/cors/compare/v1.9.0...v1.10.0)

[Compare Source](https://togithub.com/rs/cors/compare/v1.9.0...v1.10.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi43OS4xIiwidXBkYXRlZEluVmVyIjoiMzYuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-08 18:28:35 +00:00
Todd Baert 16dd21e583
chore: disable caching on integration tests (#899)
disable caching on integration tests

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-08 13:46:37 -04:00
renovate[bot] ebb543d6ee
fix(deps): update module github.com/open-feature/flagd/core to v0.6.4 (#880)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.6.3` -> `v0.6.4` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-08 17:36:36 +00:00
renovate[bot] b6fb2940a9
chore(deps): update docker/metadata-action digest to 79f06a3 (#887)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `0f8c876` -> `79f06a3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi43OS4xIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-08 17:28:09 +00:00
renovate[bot] 853b76dfa3
fix(deps): update module google.golang.org/grpc to v1.58.0 (#896)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| minor | `v1.57.0` -> `v1.58.0` |

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.58.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.58.0):
Release 1.58.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.57.0...v1.58.0)

### API Changes

See [#&#8203;6472](https://togithub.com/grpc/grpc-go/issues/6472) for
details about these changes.

- balancer: add `StateListener` to `NewSubConnOptions` for `SubConn`
state updates and deprecate `Balancer.UpdateSubConnState`
([#&#8203;6481](https://togithub.com/grpc/grpc-go/issues/6481))
    -   `UpdateSubConnState` will be deleted in the future.
- balancer: add `SubConn.Shutdown` and deprecate
`Balancer.RemoveSubConn`
([#&#8203;6493](https://togithub.com/grpc/grpc-go/issues/6493))
    -   `RemoveSubConn` will be deleted in the future.
- resolver: remove deprecated `AddressType`
([#&#8203;6451](https://togithub.com/grpc/grpc-go/issues/6451))
- This was previously used as a signal to enable the "grpclb" load
balancing policy, and to pass LB addresses to the policy. Instead,
`balancer/grpclb/state.Set()` should be used to add these addresses to
the name resolver's output. The built-in "dns" name resolver already
does this.
- resolver: add new field `Endpoints` to `State` and deprecate
`Addresses`
([#&#8203;6471](https://togithub.com/grpc/grpc-go/issues/6471))
    -   `Addresses` will be deleted in the future.

### New Features

- balancer/leastrequest: Add experimental support for least request LB
policy and least request configured as a custom xDS policy
([#&#8203;6510](https://togithub.com/grpc/grpc-go/issues/6510),
[#&#8203;6517](https://togithub.com/grpc/grpc-go/issues/6517))
    -   Set `GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST=true` to enable
- stats: Add an RPC event for blocking caused by the LB policy's picker
([#&#8203;6422](https://togithub.com/grpc/grpc-go/issues/6422))

### Bug Fixes

- clusterresolver: fix deadlock when dns resolver responds inline with
update or error at build time
([#&#8203;6563](https://togithub.com/grpc/grpc-go/issues/6563))
- grpc: fix a bug where the channel could erroneously report
`TRANSIENT_FAILURE` when actually moving to `IDLE`
([#&#8203;6497](https://togithub.com/grpc/grpc-go/issues/6497))
- balancergroup: do not cache closed sub-balancers by default; affects
`rls`, `weightedtarget` and `clustermanager` LB policies
([#&#8203;6523](https://togithub.com/grpc/grpc-go/issues/6523))
- client: fix a bug that prevented detection of RPC status in
trailers-only RPC responses when using `ClientStream.Header()`, and
prevented retry of the RPC
([#&#8203;6557](https://togithub.com/grpc/grpc-go/issues/6557))

### Performance Improvements

- client & server: Add experimental `[With]SharedWriteBuffer` to improve
performance by reducing allocations when sending RPC messages. (Disabled
by default.)
([#&#8203;6309](https://togithub.com/grpc/grpc-go/issues/6309))
- Special Thanks:
[@&#8203;s-matyukevich](https://togithub.com/s-matyukevich)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-08 17:11:06 +00:00
renovate[bot] b8366a3d35
chore(deps): update docker/build-push-action digest to 0a97817 (#897)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[docker/build-push-action](https://togithub.com/docker/build-push-action)
| action | digest | `2eb1c19` -> `0a97817` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44My4wIiwidXBkYXRlZEluVmVyIjoiMzYuODMuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-08 16:35:15 +00:00
renovate[bot] d48317f61d
fix(deps): update opentelemetry-go monorepo (#868)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[go.opentelemetry.io/otel](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.16.0` -> `v1.17.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.39.0` -> `v0.40.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.16.0` -> `v1.17.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.16.0` -> `v1.17.0` |
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.39.0` -> `v0.40.0` |
|
[go.opentelemetry.io/otel/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.16.0` -> `v1.17.0` |
|
[go.opentelemetry.io/otel/sdk](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.16.0` -> `v1.17.0` |
|
[go.opentelemetry.io/otel/sdk/metric](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.39.0` -> `v0.40.0` |
|
[go.opentelemetry.io/otel/trace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.16.0` -> `v1.17.0` |

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go
(go.opentelemetry.io/otel)</summary>

###
[`v1.17.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.17.0):
/v0.40.0/v0.5.0

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.16.0...v1.17.0)

##### Added

- Export the `ManualReader` struct in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4244](https://togithub.com/open-telemetry/opentelemetry-go/issues/4244))
- Export the `PeriodicReader` struct in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4244](https://togithub.com/open-telemetry/opentelemetry-go/issues/4244))
-   Add support for exponential histogram aggregations.
A histogram can be configured as an exponential histogram using a view
with `"go.opentelemetry.io/otel/sdk/metric".ExponentialHistogram` as the
aggregation.
([#&#8203;4245](https://togithub.com/open-telemetry/opentelemetry-go/issues/4245))
- Export the `Exporter` struct in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`.
([#&#8203;4272](https://togithub.com/open-telemetry/opentelemetry-go/issues/4272))
- Export the `Exporter` struct in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;4272](https://togithub.com/open-telemetry/opentelemetry-go/issues/4272))
- The exporters in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`
now support the `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE`
environment variable.
([#&#8203;4287](https://togithub.com/open-telemetry/opentelemetry-go/issues/4287))
- Add `WithoutCounterSuffixes` option in
`go.opentelemetry.io/otel/exporters/prometheus` to disable addition of
`_total` suffixes.
([#&#8203;4306](https://togithub.com/open-telemetry/opentelemetry-go/issues/4306))
- Add info and debug logging to the metric SDK in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4315](https://togithub.com/open-telemetry/opentelemetry-go/issues/4315))
-   The `go.opentelemetry.io/otel/semconv/v1.21.0` package.
The package contains semantic conventions from the `v1.21.0` version of
the OpenTelemetry Semantic Conventions.
([#&#8203;4362](https://togithub.com/open-telemetry/opentelemetry-go/issues/4362))
- Accept 201 to 299 HTTP status as success in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp` and
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`.
([#&#8203;4365](https://togithub.com/open-telemetry/opentelemetry-go/issues/4365))
- Document the `Temporality` and `Aggregation` methods of the
`"go.opentelemetry.io/otel/sdk/metric".Exporter"` need to be concurrent
safe.
([#&#8203;4381](https://togithub.com/open-telemetry/opentelemetry-go/issues/4381))
- Expand the set of units supported by the Prometheus exporter, and
don't add unit suffixes if they are already present in
`go.opentelemetry.op/otel/exporters/prometheus`
([#&#8203;4374](https://togithub.com/open-telemetry/opentelemetry-go/issues/4374))
- Move the `Aggregation` interface and its implementations from
`go.opentelemetry.io/otel/sdk/metric/aggregation` to
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4435](https://togithub.com/open-telemetry/opentelemetry-go/issues/4435))
- The exporters in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric`
now support the
`OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION` environment
variable.
([#&#8203;4437](https://togithub.com/open-telemetry/opentelemetry-go/issues/4437))
- Add the `NewAllowKeysFilter` and `NewDenyKeysFilter` functions to
`go.opentelemetry.io/otel/attribute` to allow convenient creation of
allow-keys and deny-keys filters.
([#&#8203;4444](https://togithub.com/open-telemetry/opentelemetry-go/issues/4444))

##### Changed

- Starting from `v1.21.0` of semantic conventions,
`go.opentelemetry.io/otel/semconv/{version}/httpconv` and
`go.opentelemetry.io/otel/semconv/{version}/netconv` packages will no
longer be published.
([#&#8203;4145](https://togithub.com/open-telemetry/opentelemetry-go/issues/4145))
- Log duplicate instrument conflict at a warning level instead of info
in `go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4202](https://togithub.com/open-telemetry/opentelemetry-go/issues/4202))
- Return an error on the creation of new instruments in
`go.opentelemetry.io/otel/sdk/metric` if their name doesn't pass regexp
validation.
([#&#8203;4210](https://togithub.com/open-telemetry/opentelemetry-go/issues/4210))
- `NewManualReader` in `go.opentelemetry.io/otel/sdk/metric` returns
`*ManualReader` instead of `Reader`.
([#&#8203;4244](https://togithub.com/open-telemetry/opentelemetry-go/issues/4244))
- `NewPeriodicReader` in `go.opentelemetry.io/otel/sdk/metric` returns
`*PeriodicReader` instead of `Reader`.
([#&#8203;4244](https://togithub.com/open-telemetry/opentelemetry-go/issues/4244))
- Count the Collect time in the `PeriodicReader` timeout in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4221](https://togithub.com/open-telemetry/opentelemetry-go/issues/4221))
- The function `New` in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc`
returns `*Exporter` instead of
`"go.opentelemetry.io/otel/sdk/metric".Exporter`.
([#&#8203;4272](https://togithub.com/open-telemetry/opentelemetry-go/issues/4272))
- The function `New` in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`
returns `*Exporter` instead of
`"go.opentelemetry.io/otel/sdk/metric".Exporter`.
([#&#8203;4272](https://togithub.com/open-telemetry/opentelemetry-go/issues/4272))
- If an attribute set is omitted from an async callback, the previous
value will no longer be exported in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4290](https://togithub.com/open-telemetry/opentelemetry-go/issues/4290))
- If an attribute set is observed multiple times in an async callback in
`go.opentelemetry.io/otel/sdk/metric`, the values will be summed instead
of the last observation winning.
([#&#8203;4289](https://togithub.com/open-telemetry/opentelemetry-go/issues/4289))
- Allow the explicit bucket histogram aggregation to be used for the
up-down counter, observable counter, observable up-down counter, and
observable gauge in the `go.opentelemetry.io/otel/sdk/metric` package.
([#&#8203;4332](https://togithub.com/open-telemetry/opentelemetry-go/issues/4332))
- Restrict `Meter`s in `go.opentelemetry.io/otel/sdk/metric` to only
register and collect instruments it created.
([#&#8203;4333](https://togithub.com/open-telemetry/opentelemetry-go/issues/4333))
- `PeriodicReader.Shutdown` and `PeriodicReader.ForceFlush` in
`go.opentelemetry.io/otel/sdk/metric` now apply the periodic reader's
timeout to the operation if the user provided context does not contain a
deadline.
([#&#8203;4356](https://togithub.com/open-telemetry/opentelemetry-go/issues/4356),
[#&#8203;4377](https://togithub.com/open-telemetry/opentelemetry-go/issues/4377))
- Upgrade all use of `go.opentelemetry.io/otel/semconv` to use
`v1.21.0`.
([#&#8203;4408](https://togithub.com/open-telemetry/opentelemetry-go/issues/4408))
- Increase instrument name maximum length from 63 to 255 characters in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4434](https://togithub.com/open-telemetry/opentelemetry-go/issues/4434))
- Add `go.opentelemetry.op/otel/sdk/metric.WithProducer` as an `Option`
for `"go.opentelemetry.io/otel/sdk/metric".NewManualReader` and
`"go.opentelemetry.io/otel/sdk/metric".NewPeriodicReader`.
([#&#8203;4346](https://togithub.com/open-telemetry/opentelemetry-go/issues/4346))

##### Removed

- Remove `Reader.RegisterProducer` in `go.opentelemetry.io/otel/metric`.
Use the added `WithProducer` option instead.
([#&#8203;4346](https://togithub.com/open-telemetry/opentelemetry-go/issues/4346))
-   Remove `Reader.ForceFlush` in `go.opentelemetry.io/otel/metric`.
Notice that `PeriodicReader.ForceFlush` is still available.
([#&#8203;4375](https://togithub.com/open-telemetry/opentelemetry-go/issues/4375))

##### Fixed

- Correctly format log messages from the
`go.opentelemetry.io/otel/exporters/zipkin` exporter.
([#&#8203;4143](https://togithub.com/open-telemetry/opentelemetry-go/issues/4143))
- Log an error for calls to `NewView` in
`go.opentelemetry.io/otel/sdk/metric` that have empty criteria.
([#&#8203;4307](https://togithub.com/open-telemetry/opentelemetry-go/issues/4307))
- Fix `"go.opentelemetry.io/otel/sdk/resource".WithHostID()` to not set
an empty `host.id`.
([#&#8203;4317](https://togithub.com/open-telemetry/opentelemetry-go/issues/4317))
- Use the instrument identifying fields to cache aggregators and
determine duplicate instrument registrations in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4337](https://togithub.com/open-telemetry/opentelemetry-go/issues/4337))
- Detect duplicate instruments for case-insensitive names in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4338](https://togithub.com/open-telemetry/opentelemetry-go/issues/4338))
- The `ManualReader` will not panic if `AggregationSelector` returns
`nil` in `go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4350](https://togithub.com/open-telemetry/opentelemetry-go/issues/4350))
- If a `Reader`'s `AggregationSelector` returns `nil` or
`DefaultAggregation` the pipeline will use the default aggregation.
([#&#8203;4350](https://togithub.com/open-telemetry/opentelemetry-go/issues/4350))
- Log a suggested view that fixes instrument conflicts in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4349](https://togithub.com/open-telemetry/opentelemetry-go/issues/4349))
- Fix possible panic, deadlock and race condition in batch span
processor in `go.opentelemetry.io/otel/sdk/trace`.
([#&#8203;4353](https://togithub.com/open-telemetry/opentelemetry-go/issues/4353))
- Improve context cancellation handling in batch span processor's
`ForceFlush` in `go.opentelemetry.io/otel/sdk/trace`.
([#&#8203;4369](https://togithub.com/open-telemetry/opentelemetry-go/issues/4369))
- Decouple `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal`
from `go.opentelemetry.io/otel/exporters/otlp/internal` using gotmpl.
([#&#8203;4397](https://togithub.com/open-telemetry/opentelemetry-go/issues/4397),
[#&#8203;3846](https://togithub.com/open-telemetry/opentelemetry-go/issues/3846))
- Decouple
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc/internal`
from `go.opentelemetry.io/otel/exporters/otlp/internal` and
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal` using
gotmpl.
([#&#8203;4404](https://togithub.com/open-telemetry/opentelemetry-go/issues/4404),
[#&#8203;3846](https://togithub.com/open-telemetry/opentelemetry-go/issues/3846))
- Decouple
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal`
from `go.opentelemetry.io/otel/exporters/otlp/internal` and
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal` using
gotmpl.
([#&#8203;4407](https://togithub.com/open-telemetry/opentelemetry-go/issues/4407),
[#&#8203;3846](https://togithub.com/open-telemetry/opentelemetry-go/issues/3846))
- Decouple
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/internal`
from `go.opentelemetry.io/otel/exporters/otlp/internal` and
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` using
gotmpl.
([#&#8203;4400](https://togithub.com/open-telemetry/opentelemetry-go/issues/4400),
[#&#8203;3846](https://togithub.com/open-telemetry/opentelemetry-go/issues/3846))
- Decouple
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp/internal`
from `go.opentelemetry.io/otel/exporters/otlp/internal` and
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal` using
gotmpl.
([#&#8203;4401](https://togithub.com/open-telemetry/opentelemetry-go/issues/4401),
[#&#8203;3846](https://togithub.com/open-telemetry/opentelemetry-go/issues/3846))
- Do not block the metric SDK when OTLP metric exports are blocked in
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc` and
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`.
([#&#8203;3925](https://togithub.com/open-telemetry/opentelemetry-go/issues/3925),
[#&#8203;4395](https://togithub.com/open-telemetry/opentelemetry-go/issues/4395))
- Do not append `_total` if the counter already has that suffix for the
Prometheus exproter in `go.opentelemetry.io/otel/exporter/prometheus`.
([#&#8203;4373](https://togithub.com/open-telemetry/opentelemetry-go/issues/4373))
- Fix resource detection data race in
`go.opentelemetry.io/otel/sdk/resource`.
([#&#8203;4409](https://togithub.com/open-telemetry/opentelemetry-go/issues/4409))
- Use the first-seen instrument name during instrument name conflicts in
`go.opentelemetry.io/otel/sdk/metric`.
([#&#8203;4428](https://togithub.com/open-telemetry/opentelemetry-go/issues/4428))

##### Deprecated

- The `go.opentelemetry.io/otel/exporters/jaeger` package is deprecated.
    OpenTelemetry dropped support for Jaeger exporter in July 2023.
Use `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`
or `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc`
instead.
([#&#8203;4423](https://togithub.com/open-telemetry/opentelemetry-go/issues/4423))
- The `go.opentelemetry.io/otel/example/jaeger` package is deprecated.
([#&#8203;4423](https://togithub.com/open-telemetry/opentelemetry-go/issues/4423))
- The `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal`
package is deprecated.
([#&#8203;4420](https://togithub.com/open-telemetry/opentelemetry-go/issues/4420))
- The
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/oconf`
package is deprecated.
([#&#8203;4420](https://togithub.com/open-telemetry/opentelemetry-go/issues/4420))
- The
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/otest`
package is deprecated.
([#&#8203;4420](https://togithub.com/open-telemetry/opentelemetry-go/issues/4420))
- The
`go.opentelemetry.io/otel/exporters/otlp/otlpmetric/internal/transform`
package is deprecated.
([#&#8203;4420](https://togithub.com/open-telemetry/opentelemetry-go/issues/4420))
- The `go.opentelemetry.io/otel/exporters/otlp/internal` package is
deprecated.
([#&#8203;4421](https://togithub.com/open-telemetry/opentelemetry-go/issues/4421))
- The `go.opentelemetry.io/otel/exporters/otlp/internal/envconfig`
package is deprecated.
([#&#8203;4421](https://togithub.com/open-telemetry/opentelemetry-go/issues/4421))
- The `go.opentelemetry.io/otel/exporters/otlp/internal/retry` package
is deprecated.
([#&#8203;4421](https://togithub.com/open-telemetry/opentelemetry-go/issues/4421))
- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal`
package is deprecated.
([#&#8203;4425](https://togithub.com/open-telemetry/opentelemetry-go/issues/4425))
- The
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/envconfig`
package is deprecated.
([#&#8203;4425](https://togithub.com/open-telemetry/opentelemetry-go/issues/4425))
- The
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig`
package is deprecated.
([#&#8203;4425](https://togithub.com/open-telemetry/opentelemetry-go/issues/4425))
- The
`go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlptracetest`
package is deprecated.
([#&#8203;4425](https://togithub.com/open-telemetry/opentelemetry-go/issues/4425))
- The `go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/retry`
package is deprecated.
([#&#8203;4425](https://togithub.com/open-telemetry/opentelemetry-go/issues/4425))
- The `go.opentelemetry.io/otel/sdk/metric/aggregation` package is
deprecated.
Use the aggregation types added to `go.opentelemetry.io/otel/sdk/metric`
instead.
([#&#8203;4435](https://togithub.com/open-telemetry/opentelemetry-go/issues/4435))

##### New Contributors

- [@&#8203;serdarkalayci](https://togithub.com/serdarkalayci) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4129](https://togithub.com/open-telemetry/opentelemetry-go/pull/4129)
- [@&#8203;Jorropo](https://togithub.com/Jorropo) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4226](https://togithub.com/open-telemetry/opentelemetry-go/pull/4226)
- [@&#8203;hexdigest](https://togithub.com/hexdigest) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/3899](https://togithub.com/open-telemetry/opentelemetry-go/pull/3899)
- [@&#8203;gkze](https://togithub.com/gkze) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4402](https://togithub.com/open-telemetry/opentelemetry-go/pull/4402)
- [@&#8203;jaredjenkins](https://togithub.com/jaredjenkins) made their
first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4409](https://togithub.com/open-telemetry/opentelemetry-go/pull/4409)
- [@&#8203;utezduyar](https://togithub.com/utezduyar) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4456](https://togithub.com/open-telemetry/opentelemetry-go/pull/4456)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.16.0...v1.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42Ni4wIiwidXBkYXRlZEluVmVyIjoiMzYuNjYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-09-08 08:35:28 -07:00
renovate[bot] 233d976948
fix(deps): update module golang.org/x/net to v0.15.0 (#889)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.14.0` -> `v0.15.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi43OS4xIiwidXBkYXRlZEluVmVyIjoiMzYuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-07 22:30:39 +00:00
renovate[bot] 1a9037a5b0
fix(deps): update module golang.org/x/crypto to v0.13.0 (#888)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/crypto | require | minor | `v0.12.0` -> `v0.13.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi43OS4xIiwidXBkYXRlZEluVmVyIjoiMzYuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-07 22:25:22 +00:00
Craig Pastro 977167fb8d
chore: upgrade to go 1.20 (#891) 2023-09-07 15:04:59 -04:00
renovate[bot] fd5693255a
chore(deps): update docker/login-action digest to a5609cb (#886)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `cf8514a` -> `a5609cb` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi43OS4xIiwidXBkYXRlZEluVmVyIjoiMzYuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-05 12:32:18 +00:00
renovate[bot] 3061fd255b
chore(deps): update actions/checkout action to v4 (#885)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
major | `v3` -> `v4` |

---

### Release Notes

<details>
<summary>actions/checkout (actions/checkout)</summary>

###
[`v4`](https://togithub.com/actions/checkout/blob/HEAD/CHANGELOG.md#v400)

[Compare Source](https://togithub.com/actions/checkout/compare/v3...v4)

- [Support fetching without the --progress
option](https://togithub.com/actions/checkout/pull/1067)
-   [Update to node20](https://togithub.com/actions/checkout/pull/1436)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi43OS4xIiwidXBkYXRlZEluVmVyIjoiMzYuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-04 19:08:09 +00:00
renovate[bot] 1ccd7aaded
chore(deps): update sigstore/cosign-installer digest to 11086d2 (#884)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `4a86152` -> `11086d2` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-02 00:21:19 +00:00
renovate[bot] ca3d85a51c
fix(deps): update module sigs.k8s.io/controller-runtime to v0.16.1 (#882)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[sigs.k8s.io/controller-runtime](https://togithub.com/kubernetes-sigs/controller-runtime)
| require | patch | `v0.16.0` -> `v0.16.1` |

---

### Release Notes

<details>
<summary>kubernetes-sigs/controller-runtime
(sigs.k8s.io/controller-runtime)</summary>

###
[`v0.16.1`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.1)

[Compare
Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.16.0...v0.16.1)

#### What's Changed

- 🐛 Refactor tests to drop hard otel dependency by
[@&#8203;howardjohn](https://togithub.com/howardjohn) in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2465](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2465)
- 🌱 Bump k8s.io/apiserver from 0.28.0 to 0.28.1 by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2459](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2459)

**Full Changelog**:
https://github.com/kubernetes-sigs/controller-runtime/compare/v0.16.0...v0.16.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-01 00:38:47 +00:00
Michael Beemer 5048a97926
fix: Set the formula path to match the restructured homebrew repo (#881)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-31 14:04:14 -04:00
github-actions[bot] ee9116b347
chore: release main (#796)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.6.4</summary>

##
[0.6.4](https://github.com/open-feature/flagd/compare/flagd/v0.6.3...flagd/v0.6.4)
(2023-08-30)


### 🐛 Bug Fixes

* **deps:** update module github.com/cucumber/godog to v0.13.0
([#855](https://github.com/open-feature/flagd/issues/855))
([5b42486](5b4248654f))
* **deps:** update module github.com/open-feature/flagd/core to v0.6.3
([#794](https://github.com/open-feature/flagd/issues/794))
([9671964](96719649af))


### 🧹 Chore

* **deps:** update golang docker tag to v1.21
([#822](https://github.com/open-feature/flagd/issues/822))
([effe29d](effe29d50e))
</details>

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

##
[0.2.9](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.8...flagd-proxy/v0.2.9)
(2023-08-30)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.3
([#794](https://github.com/open-feature/flagd/issues/794))
([9671964](96719649af))


### 🧹 Chore

* **deps:** update golang docker tag to v1.21
([#822](https://github.com/open-feature/flagd/issues/822))
([effe29d](effe29d50e))
</details>

<details><summary>core: 0.6.4</summary>

##
[0.6.4](https://github.com/open-feature/flagd/compare/core/v0.6.3...core/v0.6.4)
(2023-08-30)


### 🐛 Bug Fixes

* **deps:** update kubernetes packages to v0.28.0
([#841](https://github.com/open-feature/flagd/issues/841))
([cc195e1](cc195e1dde))
* **deps:** update kubernetes packages to v0.28.1
([#860](https://github.com/open-feature/flagd/issues/860))
([f3237c2](f3237c2d32))
* **deps:** update module github.com/open-feature/open-feature-operator
to v0.2.36 ([#799](https://github.com/open-feature/flagd/issues/799))
([fa4da4b](fa4da4b011))
* **deps:** update module golang.org/x/crypto to v0.12.0
([#797](https://github.com/open-feature/flagd/issues/797))
([edae3fd](edae3fd466))
* **deps:** update module golang.org/x/net to v0.14.0
([#798](https://github.com/open-feature/flagd/issues/798))
([92c2f26](92c2f26761))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.15.1
([#795](https://github.com/open-feature/flagd/issues/795))
([13d62fd](13d62fd0fc))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.16.0
([#856](https://github.com/open-feature/flagd/issues/856))
([88d832a](88d832a9d4))


###  New Features

* add flag key to hash in fractional evaluation
([#847](https://github.com/open-feature/flagd/issues/847))
([ca6a35f](ca6a35fd72))
* add gRPC healthchecks
([#863](https://github.com/open-feature/flagd/issues/863))
([da30b7b](da30b7babf))
* support nested props in fractional evaluator
([#869](https://github.com/open-feature/flagd/issues/869))
([50ff739](50ff739178))


### 🧹 Chore

* deprecate fractionalEvaluation for fractional
([#873](https://github.com/open-feature/flagd/issues/873))
([243fef9](243fef9e1f))
* replace xxh3 with murmur3 in bucket algorithm
([#846](https://github.com/open-feature/flagd/issues/846))
([c3c9e4e](c3c9e4e40a))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-31 13:35:52 -04:00
Adam Gardner af3160cec4
docs: add ecosystem page (#876)
Signed-off-by: Adam Gardner <26523841+agardnerIT@users.noreply.github.com>
2023-08-30 12:59:11 -04:00
Todd Baert 243fef9e1f
chore: deprecate fractionalEvaluation for fractional (#873)
* deprecates fractionalEvaluation in favor of fractional
* adds evaluation names to their implementations to bind them more
closely

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
2023-08-29 17:32:03 -04:00
Todd Baert da30b7babf
feat: add gRPC healthchecks (#863)
* adds a gRPC healthcheck to the "metrics" port
* supports both gRPC and HTTP on "metrics" port
* adds relevant doc

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-29 13:41:46 -04:00
renovate[bot] 50df791fa5
chore(deps): update sigstore/cosign-installer digest to 4a86152 (#866)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `37f3871` -> `4a86152` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42NC44IiwidXBkYXRlZEluVmVyIjoiMzYuNjQuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 23:40:33 +00:00
renovate[bot] 3a61b3d16a
chore(deps): update github/codeql-action digest to 00e563e (#870)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `a09933a` -> `00e563e` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42OC4xIiwidXBkYXRlZEluVmVyIjoiMzYuNjguMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 23:02:51 +00:00
Craig Pastro 50ff739178
feat: support nested props in fractional evaluator (#869)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

This PR adds the ability to use nested properties for the bucket key in
fractional evaluation. It is a breaking change from the current
behaviour. If the bucket key is not provided it will default to `{"cat":
[{"var":"$flagd.flagKey"}, {"var":"targetingKey"}]}`.

@toddbaert I am not sure that my approach to the missing bucket key is
the best. I would have preferred to add `{"cat":
[{"var":"$flagd.flagKey"}, {"var":"targetingKey"}]}` to the targeting
object and let JsonLogic handle it, but it would be a bit clumsy and
involve string manipulation. I don't think there is a nice way to do it,
but I'll play around a bit more.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

See #848.
Closes #843.

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: Craig Pastro <pastro.craig@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-08-28 16:09:12 -04:00
renovate[bot] e007fcc57f
chore(deps): update docker/login-action digest to cf8514a (#865)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `553b6f0` -> `cf8514a` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi42NC44IiwidXBkYXRlZEluVmVyIjoiMzYuNjQuOCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-28 10:34:21 +00:00
renovate[bot] f3237c2d32
fix(deps): update kubernetes packages to v0.28.1 (#860)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
require | patch | `v0.28.0` -> `v0.28.1` |
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
require | patch | `v0.28.0` -> `v0.28.1` |

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.28.1`](https://togithub.com/kubernetes/apimachinery/compare/v0.28.0...v0.28.1)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.28.0...v0.28.1)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.28.1`](https://togithub.com/kubernetes/client-go/compare/v0.28.0...v0.28.1)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.28.0...v0.28.1)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzYuNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-25 16:45:16 +00:00
Adam Gardner b15c85a3ba
docs: add troubleshooting page (#838)
Signed-off-by: Adam Gardner <26523841+agardnerIT@users.noreply.github.com>
2023-08-25 11:42:54 -04:00
renovate[bot] 7bb5427184
chore(deps): update actions/checkout digest to f43a0e5 (#859)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
digest | `c85c95e` -> `f43a0e5` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzYuNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 23:58:58 +00:00
renovate[bot] 5b4248654f
fix(deps): update module github.com/cucumber/godog to v0.13.0 (#855)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/cucumber/godog](https://togithub.com/cucumber/godog) |
require | minor | `v0.12.6` -> `v0.13.0` |

---

### Release Notes

<details>
<summary>cucumber/godog (github.com/cucumber/godog)</summary>

###
[`v0.13.0`](https://togithub.com/cucumber/godog/blob/HEAD/CHANGELOG.md#v0130)

[Compare
Source](https://togithub.com/cucumber/godog/compare/v0.12.6...v0.13.0)

##### Added

- Support for reading feature files from an `fs.FS`
([550](https://togithub.com/cucumber/godog/pull/550) -
[tigh-latte](https://togithub.com/tigh-latte))
- Added keyword functions.
([509](https://togithub.com/cucumber/godog/pull/509) -
[otrava7](https://togithub.com/otrava7))
- Prefer go test to use of godog cli in README
([548](https://togithub.com/cucumber/godog/pull/548) -
[danielhelfand](https://togithub.com/danielhelfand))
- Use `fs.FS` abstraction for filesystem
([550](https://togithub.com/cucumber/godog/pull/550) -
[tigh-latte](https://togithub.com/tigh-latte))
- Cancel context for each scenario
([514](https://togithub.com/cucumber/godog/pull/514) -
[draganm](https://togithub.com/draganm))

##### Fixed

- Improve hooks invocation flow
([568](https://togithub.com/cucumber/godog/pull/568) -
[vearutop](https://togithub.com/vearutop))
- Result of testing.T respect strict option
([539](https://togithub.com/cucumber/godog/pull/539) -
[eiel](https://togithub.com/eiel))

##### Changed

- BREAKING CHANGE, upgraded cucumber and messages dependencies =
([515](https://togithub.com/cucumber/godog/pull/515) -
[otrava7](https://togithub.com/otrava7))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 16:19:27 -04:00
Florian Bacher f91751fbe6
docs: add specification for in-process flagd provider implementations (#848)
Closes #842

This PR adds the specification for in-process flagd providers. For now I
have added this to the `other_ressources` section of the docs, but
please let me know if another directory would be more fitting for this
document

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-08-24 16:09:26 -04:00
Craig Pastro ca6a35fd72
feat: add flag key to hash in fractional evaluation (#847)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

This PR adds the flag key as input to the hash in fractional evaluation.
Since the evaluation function only has access to user-supplied logic and
context, which almost certainly will not contain the flag key, in order
to get this data to the evaluation function I add a `flagdProperties`
struct to the context via a namespaced key `$flagd`. The
`flagdProperties` struct contains the flag key, which is then used as
input to the hash.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Part 2 of #843.

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: Craig Pastro <pastro.craig@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-08-23 09:11:58 -04:00
renovate[bot] 88d832a9d4
fix(deps): update module sigs.k8s.io/controller-runtime to v0.16.0 (#856)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[sigs.k8s.io/controller-runtime](https://togithub.com/kubernetes-sigs/controller-runtime)
| require | minor | `v0.15.1` -> `v0.16.0` |

---

### Release Notes

<details>
<summary>kubernetes-sigs/controller-runtime
(sigs.k8s.io/controller-runtime)</summary>

###
[`v0.16.0`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.16.0)

[Compare
Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.1...v0.16.0)

#### Highlights

- Granular cache configuration
([#&#8203;2421](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2421))
- New cache option to fail on missing informer on cache reads
([#&#8203;2406](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2406))
- Secure metrics serving
([#&#8203;2407](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2407))
- Upgrade to Kubernetes 1.28 libraries
([#&#8203;2393](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2393),
[#&#8203;2405](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2405),
[#&#8203;2449](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2449))

#### Changes since v0.15

##### ⚠️ Breaking Changes

- Bump k8s.io/\* dependencies to v1.28.0 by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2393](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2393),
[#&#8203;2405](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2405),
[#&#8203;2449](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2449))
- Allow configuring more granular cache filtering by
[@&#8203;alvaroaleman](https://togithub.com/alvaroaleman)
([#&#8203;2421](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2421))
- Introduce Metrics Options & secure metrics serving by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2407](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2407))
- Return an error if the continue list option is set for the cache
reader by [@&#8203;shuheiktgw](https://togithub.com/shuheiktgw)
([#&#8203;2439](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2439))
- Remove deprecated manager, webhook and cluster options by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2422](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2422))
- Remove deprecated MultiNamespacedCacheBuilder,
NewFakeClientWithScheme, controllerutil.Object,
envtest.Environment.KubeAPIServerFlags & zap.Options.DestWritter by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2423](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2423))
- controller builder: return error when multiple reconcilers are set by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2415](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2415))
- fake client: use correct RBAC apiGroup name when deciding if to allow
unconditional updates by
[@&#8203;jaideepr97](https://togithub.com/jaideepr97)
([#&#8203;2412](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2412))
- Minor improvements to godoc & code style in cache pkg by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2416](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2416))

#####  New Features

- Cache: add ReaderFailOnMissingInformer option by
[@&#8203;stevekuznetsov](https://togithub.com/stevekuznetsov)
([#&#8203;2406](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2406))
- Cache: allow non-blocking retrieval of informers by
[@&#8203;maxsmythe](https://togithub.com/maxsmythe)
([#&#8203;2371](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2371))

##### 🐛 Bug Fixes

- Add missing return statement in admission.Decoder.DecodeRaw by
[@&#8203;lleshchi](https://togithub.com/lleshchi)
([#&#8203;2433](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2433))
- fakeClient.Status().Update(...) cannot recognize resource version
conflicts by [@&#8203;iiiceoo](https://togithub.com/iiiceoo)
([#&#8203;2365](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2365))
- Fix Defaulting of the User Agent by
[@&#8203;alvaroaleman](https://togithub.com/alvaroaleman)
([#&#8203;2435](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2435))
- Fix logs in the unstructured client by
[@&#8203;Poor12](https://togithub.com/Poor12)
([#&#8203;2343](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2343))
- Fix unspecified KindsFor version by
[@&#8203;tenstad](https://togithub.com/tenstad)
([#&#8203;2346](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2346))
- Fix TerminalError(nil).Error() panic by
[@&#8203;sheidkamp](https://togithub.com/sheidkamp)
([#&#8203;2438](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2438))
- hasLabels and matchingLabels step on each other by
[@&#8203;shanshanying](https://togithub.com/shanshanying)
([#&#8203;2363](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2363))
- SetLogger should work with nil sinks by
[@&#8203;vincepri](https://togithub.com/vincepri)
([#&#8203;2367](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2367))

##### 🌱 Others

- Use NewRateLimitingQueueWithConfig instead of deprecated
NewNamedRateLimitingQueue by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2411](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2411))
- Add a prefix to the stack trace printed after SetLogger timeout by
[@&#8203;vincepri](https://togithub.com/vincepri)
([#&#8203;2357](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2357))
- Minor improvements to godoc, code style in builder pkg by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2414](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2414))
- Add integration test to avoid manager.Start deadlocks by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2418](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2418))
- Automatically regenerate scratch env go mod file by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2413](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2413))
- Introduce a new runnable group for basic servers of the manager by
[@&#8203;zqzten](https://togithub.com/zqzten)
([#&#8203;2337](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2337))
- Add logs around Reconcile call, change webhook logs to log level 5 by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2419](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2419))
- Add action to update modules on dependabot PRs by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2447](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2447),
[#&#8203;2448](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2448))
- Optimize Add/RemoveFinalizer by
[@&#8203;0xff-dev](https://togithub.com/0xff-dev)
([#&#8203;2348](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2348))
- Log warning if error and non-zero Result are returned by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2451](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2451))

##### 📖 Documentation and proposals

- Add a design for cache options configuration by
[@&#8203;alvaroaleman](https://togithub.com/alvaroaleman)
([#&#8203;2261](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2261))
- Add documentation to clarify the ContentType behavior by
[@&#8203;FillZpp](https://togithub.com/FillZpp)
([#&#8203;2410](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2410))
- Clarify that the reconcile.Result is ignored on non-nil error by
[@&#8203;alvaroaleman](https://togithub.com/alvaroaleman)
([#&#8203;2444](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2444))
- Fix typo "compatiblity" to "compatibility" by
[@&#8203;ArshiAAkhavan](https://togithub.com/ArshiAAkhavan)
([#&#8203;2396](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2396))
- Update fake client doc.go to avoid the deprecated method by
[@&#8203;sunglim](https://togithub.com/sunglim)
([#&#8203;2392](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2392))

##### 📈 Dependencies

- Bump k8s.io/klog/v2 from 2.90.1 to 2.100.1 by
[@&#8203;dependabot](https://togithub.com/dependabot)
([#&#8203;2294](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2294))
- Bump github.com/onsi/ginkgo/v2 from 2.9.5 to 2.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot)
([#&#8203;2368](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2368),
[#&#8203;2376](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2376),
[#&#8203;2384](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2384))
- Bump github.com/onsi/gomega from 1.27.7 to 1.27.8 by
[@&#8203;dependabot](https://togithub.com/dependabot)
([#&#8203;2375](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2375),
[#&#8203;2420](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2420))
- Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 by
[@&#8203;dependabot](https://togithub.com/dependabot)
([#&#8203;2383](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2383))
- Bump golang.org/x/sys from 0.8.0 to 0.11.0 by
[@&#8203;dependabot](https://togithub.com/dependabot)
([#&#8203;2377](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2377),
[#&#8203;2401](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2401),
[#&#8203;2441](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2441))
- Bump gomodules.xyz/jsonpatch/v2 from 2.3.0 to 2.4.0 by
[@&#8203;dependabot](https://togithub.com/dependabot)
([#&#8203;2446](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2446))
- Bump go.uber.org/zap from 1.24.0 to 1.25.0 by
[@&#8203;dependabot](https://togithub.com/dependabot)
([#&#8203;2440](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2440))
- Bump golangci-lint to v1.53 by
[@&#8203;vincepri](https://togithub.com/vincepri)
([#&#8203;2398](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2398))
- Bump controller-tools to v0.13 by
[@&#8203;sbueringer](https://togithub.com/sbueringer)
([#&#8203;2450](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2450))

*Thanks to all our contributors!* 😊

**Full Changelog**:
https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.16.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-22 20:14:52 +00:00
Florian Bacher 60e85aae8e
ci: ensure unit tests are run in PR checks (#854)
Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-08-22 08:30:10 -04:00
Craig Pastro c3c9e4e40a
chore: replace xxh3 with murmur3 in bucket algorithm (#846)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

Replace xxh3 with murmur3 in fractional evaluation's bucketing
algorithm.

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Part 1 of #843.

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: Craig Pastro <pastro.craig@gmail.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-08-21 10:13:05 -04:00
Todd Baert f034867a39
chore: pin golangci-lint (#849)
golangci requires go 1.20 now 😬 . 

We can upgrade to 1.20, but for now the change in this tool is causing
lint failures since we use `@latest` when we install it.

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-08-21 10:06:47 -04:00
renovate[bot] b7aacc01ce
chore(deps): update marocchino/sticky-pull-request-comment digest to efaaab3 (#844)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[marocchino/sticky-pull-request-comment](https://togithub.com/marocchino/sticky-pull-request-comment)
| action | digest | `f6a2580` -> `efaaab3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-17 02:51:59 +00:00
renovate[bot] cc195e1dde
fix(deps): update kubernetes packages to v0.28.0 (#841)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
require | minor | `v0.27.4` -> `v0.28.0` |
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
require | minor | `v0.27.4` -> `v0.28.0` |

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.28.0`](https://togithub.com/kubernetes/apimachinery/compare/v0.28.0-rc.1...v0.28.0)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.27.4...v0.28.0)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.28.0`](https://togithub.com/kubernetes/client-go/compare/v0.27.4...v0.28.0)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.27.4...v0.28.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40My4yIiwidXBkYXRlZEluVmVyIjoiMzYuNDMuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-16 03:42:42 +00:00
Adam Gardner 0cd908134d
docs: move telemetry docs (#813)
Signed-off-by: Adam Gardner <26523841+agardnerIT@users.noreply.github.com>
2023-08-14 17:17:32 -04:00
Adam Gardner 220915d62e
docs: remove architecture diagram (#828)
## This PR
- Removes the redundant mermaid diagram (which doesn't render anyway)

### Related Issues

- Fixes #801

Signed-off-by: Adam Gardner <26523841+agardnerIT@users.noreply.github.com>
2023-08-14 17:17:12 -04:00
Adam Gardner 0644e062c4
docs: flag merging logic -> website (#807)
Signed-off-by: Adam Gardner <26523841+agardnerIT@users.noreply.github.com>
2023-08-14 16:37:51 -04:00
renovate[bot] 82efb3d16b
chore(deps): update github/codeql-action digest to a09933a (#840)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `5b6282e` -> `a09933a` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40MC4zIiwidXBkYXRlZEluVmVyIjoiMzYuNDAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 11:16:32 -04:00
Michael Beemer 168c1d7b29
ci: ignore doc publishing if nothing has changed (#819)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-14 11:16:09 -04:00
renovate[bot] 6c1914747b
chore(deps): update sigstore/cosign-installer digest to 37f3871 (#839)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `a5d81fb` -> `37f3871` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40MC4zIiwidXBkYXRlZEluVmVyIjoiMzYuNDAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-14 13:38:23 +00:00
Adam Gardner 40f64f1615
docs: add social graphs plugin (#821)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
- Adds social graph plugins to https://flagd.dev for nice link previews

### Related Issues
Closes #820

---------

Signed-off-by: Adam Gardner <26523841+agardnerIT@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-10 10:37:59 -04:00
renovate[bot] 483f00ceae
chore(deps): update actions/deploy-pages digest to 9dbe382 (#830)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | digest | `12ab2b1` -> `9dbe382` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40MC4zIiwidXBkYXRlZEluVmVyIjoiMzYuNDAuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 01:41:34 +00:00
renovate[bot] effe29d50e
chore(deps): update golang docker tag to v1.21 (#822)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang | stage | minor | `1.20-alpine` -> `1.21-alpine` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 09:17:51 +00:00
renovate[bot] 4a5d73b14a
chore(deps): update github/codeql-action digest to 5b6282e (#818)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `0ba4244` -> `5b6282e` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 07:15:03 +00:00
renovate[bot] a6a4bef727
chore(deps): update docker/metadata-action digest to 0f8c876 (#815)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `35e9aff` -> `0f8c876` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 03:19:23 +00:00
renovate[bot] 80561f6b90
chore(deps): update docker/login-action digest to 553b6f0 (#817)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `413775f` -> `553b6f0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 02:20:02 +00:00
renovate[bot] 3d2a765fed
chore(deps): update actions/setup-go digest to 93397be (#816)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-go](https://togithub.com/actions/setup-go) | action |
digest | `fac708d` -> `93397be` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 21:04:29 +00:00
Adam Gardner 30ba0407ec
docs: Update CONTRIBUTING.md (#809)
Signed-off-by: Adam Gardner <26523841+agardnerIT@users.noreply.github.com>
2023-08-08 14:46:12 -04:00
Michael Beemer 0a3a55e56d
chore: exclude web docs from the build action
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-08 11:44:23 -04:00
renovate[bot] e3c148dd3c
chore(deps): update docker/login-action digest to 413775f (#814)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `a979406` -> `413775f` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 10:13:05 +00:00
renovate[bot] fa4da4b011
fix(deps): update module github.com/open-feature/open-feature-operator to v0.2.36 (#799)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/open-feature-operator](https://togithub.com/open-feature/open-feature-operator)
| require | patch | `v0.2.35` -> `v0.2.36` |

---

### Release Notes

<details>
<summary>open-feature/open-feature-operator
(github.com/open-feature/open-feature-operator)</summary>

###
[`v0.2.36`](https://togithub.com/open-feature/open-feature-operator/releases/tag/v0.2.36)

[Compare
Source](https://togithub.com/open-feature/open-feature-operator/compare/v0.2.35...v0.2.36)

#####  New Features

- add flagd sidecar resources attribute
([#&#8203;514](https://togithub.com/open-feature/open-feature-operator/issues/514))
([56ad0bd](56ad0bdc3a))
- add otel collector uri flag
([#&#8203;513](https://togithub.com/open-feature/open-feature-operator/issues/513))
([31d8d5a](31d8d5a4f9))

##### 🧹 Chore

- **deps:** update actions/setup-node action to v3.7.0
([#&#8203;504](https://togithub.com/open-feature/open-feature-operator/issues/504))
([2f78b83](2f78b836de))
- **deps:** update curlimages/curl docker tag to v8.2.1
([#&#8203;505](https://togithub.com/open-feature/open-feature-operator/issues/505))
([ae1be55](ae1be55091))
- **deps:** update dependency bitnami-labs/readme-generator-for-helm to
v2.5.1
([#&#8203;506](https://togithub.com/open-feature/open-feature-operator/issues/506))
([54d59db](54d59db82c))
- **deps:** update docker/login-action digest to
[`a979406`](https://togithub.com/open-feature/open-feature-operator/commit/a979406)
([#&#8203;493](https://togithub.com/open-feature/open-feature-operator/issues/493))
([22a1e55](22a1e557ad))
- **deps:** update helm/kind-action action to v1.8.0
([#&#8203;507](https://togithub.com/open-feature/open-feature-operator/issues/507))
([e740068](e74006872e))
- **deps:** update open-feature/flagd
([#&#8203;516](https://togithub.com/open-feature/open-feature-operator/issues/516))
([74dd65c](74dd65cd8f))
- update K8s deps and fix api changes
([#&#8203;518](https://togithub.com/open-feature/open-feature-operator/issues/518))
([644144f](644144ffab))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-08 00:52:34 +00:00
renovate[bot] 92c2f26761
fix(deps): update module golang.org/x/net to v0.14.0 (#798)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.13.0` -> `v0.14.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-05 06:50:05 +00:00
renovate[bot] edae3fd466
fix(deps): update module golang.org/x/crypto to v0.12.0 (#797)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/crypto | require | minor | `v0.11.0` -> `v0.12.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-05 06:46:48 +00:00
renovate[bot] 13d62fd0fc
fix(deps): update module sigs.k8s.io/controller-runtime to v0.15.1 (#795)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[sigs.k8s.io/controller-runtime](https://togithub.com/kubernetes-sigs/controller-runtime)
| require | patch | `v0.15.0` -> `v0.15.1` |

---

### Release Notes

<details>
<summary>kubernetes-sigs/controller-runtime
(sigs.k8s.io/controller-runtime)</summary>

###
[`v0.15.1`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.1)

[Compare
Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.15.1)

#### What's Changed

- \[release-0.15] Fix logs in unstructured client by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2344](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2344)
- \[release-0.15] 🐛 fix unspecified KindsFor version by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2347](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2347)
- \[release-0.15] 🐛 fakeClient.Status().Update(...) cannot recognize
resource version conflicts by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2372](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2372)
- \[release-0.15] 🐛 hasLabels and matchingLabels step on each other by
[@&#8203;k8s-infra-cherrypick-robot](https://togithub.com/k8s-infra-cherrypick-robot)
in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2373](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2373)
- \[release-0.15] 🐛 Fix Defaulting of the User Agent by
[@&#8203;alvaroaleman](https://togithub.com/alvaroaleman) in
[https://github.com/kubernetes-sigs/controller-runtime/pull/2436](https://togithub.com/kubernetes-sigs/controller-runtime/pull/2436)

**Full Changelog**:
https://github.com/kubernetes-sigs/controller-runtime/compare/v0.15.0...v0.15.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-05 04:33:55 +00:00
renovate[bot] 96719649af
fix(deps): update module github.com/open-feature/flagd/core to v0.6.3 (#794)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.6.2` -> `v0.6.3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-05 00:51:59 +00:00
Michael Beemer f43d9e23f0
chore: lower python version requirement
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-04 18:13:13 -04:00
Michael Beemer e1f2572e0a
chore: remove poetry caching in netlify
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-04 18:11:30 -04:00
Michael Beemer 94884fa952
chore: downgraded the python runtime
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-04 18:07:52 -04:00
Adam Gardner 8a0ac350cb
docs: initial docs commit (#782)
Signed-off-by: Adam Gardner <26523841+agardnerIT@users.noreply.github.com>
2023-08-04 18:05:37 -04:00
Michael Beemer b11775f02c
ci: remove load test from build workflow (#793)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-04 13:07:20 -04:00
Michael Beemer 7f441b0972
chore: fixed typo in the flag configuration
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-08-04 13:06:50 -04:00
github-actions[bot] bf74c5a3fc
chore: release main (#780)
🤖 I have created a release *beep* *boop*
---


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

##
[0.6.3](https://github.com/open-feature/flagd/compare/flagd/v0.6.2...flagd/v0.6.3)
(2023-08-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.2
([#779](https://github.com/open-feature/flagd/issues/779))
([f34de59](f34de59fc8))
* **deps:** update module go.uber.org/zap to v1.25.0
([#786](https://github.com/open-feature/flagd/issues/786))
([40d0aa6](40d0aa66cf))
</details>

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

##
[0.2.8](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.7...flagd-proxy/v0.2.8)
(2023-08-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.2
([#779](https://github.com/open-feature/flagd/issues/779))
([f34de59](f34de59fc8))
* **deps:** update module go.uber.org/zap to v1.25.0
([#786](https://github.com/open-feature/flagd/issues/786))
([40d0aa6](40d0aa66cf))
</details>

<details><summary>core: 0.6.3</summary>

##
[0.6.3](https://github.com/open-feature/flagd/compare/core/v0.6.2...core/v0.6.3)
(2023-08-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to
v3.3.0 ([#785](https://github.com/open-feature/flagd/issues/785))
([ee9c54b](ee9c54b6b5))
* **deps:** update module github.com/open-feature/open-feature-operator
to v0.2.35 ([#783](https://github.com/open-feature/flagd/issues/783))
([9ff0b5b](9ff0b5b1bd))
* **deps:** update module go.uber.org/zap to v1.25.0
([#786](https://github.com/open-feature/flagd/issues/786))
([40d0aa6](40d0aa66cf))
* **deps:** update module golang.org/x/net to v0.13.0
([#784](https://github.com/open-feature/flagd/issues/784))
([f57d023](f57d023174))
* metric descriptions match the otel spec
([#789](https://github.com/open-feature/flagd/issues/789))
([34befcd](34befcdfed))


###  New Features

* add new configuration "sync-interval" which controls the HTTP polling
interval ([#404](https://github.com/open-feature/flagd/issues/404))
([ace62c7](ace62c7a6a))
* include falsy json fields
([#792](https://github.com/open-feature/flagd/issues/792))
([37d91a0](37d91a0983))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-08-04 11:42:04 -04:00
Todd Baert 37d91a0983
feat: include falsy json fields (#792)
- adds custom JSON config which returns all falsy json values in
responses
- adds associated tests
- removes now irrelevant doc

Responses that used to look like these:

`{"reason":"DEFAULT", "variant":"red", "metadata":{}}`
`{"reason":"STATIC", "variant":"off", "metadata":{}}`

Now look like these:

`{"value":0, "reason":"DEFAULT", "variant":"red", "metadata":{}}`
`{"value":false, "reason":"STATIC", "variant":"off", "metadata":{}}`

Fixes: https://github.com/open-feature/flagd/issues/787

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
2023-08-04 10:02:51 -04:00
Michael Beemer 34befcdfed
fix: metric descriptions match the otel spec (#789)
Signed-off-by: Michael Beemer <michael.beemer@dynatrace.com>
2023-08-03 16:30:04 -04:00
Michael Beemer b8b9e1b1f5
test: fix benchmark tests (#788)
## This PR

- fixes invalid benchmark tests

### Notes

The benchmark tests started failing after the metadata change.


https://github.com/open-feature/flagd/actions/workflows/publish-benchmark.yaml

### How to test

`go test -bench=Bench -short -benchtime=5s -benchmem ./core/...`

Signed-off-by: Michael Beemer <michael.beemer@dynatrace.com>
2023-08-02 13:10:51 -04:00
renovate[bot] 40d0aa66cf
fix(deps): update module go.uber.org/zap to v1.25.0 (#786)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [go.uber.org/zap](https://togithub.com/uber-go/zap) | require | minor
| `v1.24.0` -> `v1.25.0` |

---

### Release Notes

<details>
<summary>uber-go/zap (go.uber.org/zap)</summary>

### [`v1.25.0`](https://togithub.com/uber-go/zap/releases/tag/v1.25.0)

[Compare
Source](https://togithub.com/uber-go/zap/compare/v1.24.0...v1.25.0)

This release contains several improvements including performance, API
additions,
and two new experimental packages whose APIs are unstable and may change
in the
future.

Enhancements:

- [#&#8203;1246][]: Add `zap/exp/zapslog` package for integration with
slog.
- [#&#8203;1273][]: Add `Name` to `Logger` which returns the Logger's
name if one is set.
- [#&#8203;1281][]: Add `zap/exp/expfield` package which contains helper
methods
    `Str` and `Strs` for constructing String-like zap.Fields.
-   [#&#8203;1310][]: Reduce stack size on `Any`.

Thanks to [@&#8203;knight42](https://togithub.com/knight42),
[@&#8203;dzakaammar](https://togithub.com/dzakaammar),
[@&#8203;bcspragu](https://togithub.com/bcspragu), and
[@&#8203;rexywork](https://togithub.com/rexywork) for their
contributions
to this release.

[#&#8203;1246]: https://togithub.com/uber-go/zap/pull/1246

[#&#8203;1273]: https://togithub.com/uber-go/zap/pull/1273

[#&#8203;1281]: https://togithub.com/uber-go/zap/pull/1281

[#&#8203;1310]: https://togithub.com/uber-go/zap/pull/1310

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 14:09:20 +00:00
renovate[bot] ee9c54b6b5
fix(deps): update module github.com/diegoholiveira/jsonlogic/v3 to v3.3.0 (#785)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/diegoholiveira/jsonlogic/v3](https://togithub.com/diegoholiveira/jsonlogic)
| require | minor | `v3.2.7` -> `v3.3.0` |

---

### Release Notes

<details>
<summary>diegoholiveira/jsonlogic
(github.com/diegoholiveira/jsonlogic/v3)</summary>

###
[`v3.3.0`](https://togithub.com/diegoholiveira/jsonlogic/releases/tag/v3.3.0)

[Compare
Source](https://togithub.com/diegoholiveira/jsonlogic/compare/v3.2.7...v3.3.0)

#### What's Changed

- feat: add function to get jsonlogic with solved vars (replaced by
values) by [@&#8203;FlorianRuen](https://togithub.com/FlorianRuen) in
[https://github.com/diegoholiveira/jsonlogic/pull/66](https://togithub.com/diegoholiveira/jsonlogic/pull/66)

#### New Contributors

- [@&#8203;FlorianRuen](https://togithub.com/FlorianRuen) made their
first contribution in
[https://github.com/diegoholiveira/jsonlogic/pull/66](https://togithub.com/diegoholiveira/jsonlogic/pull/66)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 09:28:05 +00:00
renovate[bot] f57d023174
fix(deps): update module golang.org/x/net to v0.13.0 (#784)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.12.0` -> `v0.13.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 00:26:55 +00:00
renovate[bot] 9ff0b5b1bd
fix(deps): update module github.com/open-feature/open-feature-operator to v0.2.35 (#783)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/open-feature-operator](https://togithub.com/open-feature/open-feature-operator)
| require | patch | `v0.2.34` -> `v0.2.35` |

---

### Release Notes

<details>
<summary>open-feature/open-feature-operator
(github.com/open-feature/open-feature-operator)</summary>

###
[`v0.2.35`](https://togithub.com/open-feature/open-feature-operator/releases/tag/v0.2.35)

[Compare
Source](https://togithub.com/open-feature/open-feature-operator/compare/v0.2.34...v0.2.35)

##### 🐛 Bug Fixes

- **deps:** update module github.com/stretchr/testify to v1.8.3
([#&#8203;488](https://togithub.com/open-feature/open-feature-operator/issues/488))
([426be04](426be041d0))
- **deps:** update module github.com/stretchr/testify to v1.8.4
([#&#8203;490](https://togithub.com/open-feature/open-feature-operator/issues/490))
([660da11](660da11ecc))
- remove 'grpc://' prefix from proxy sync address
([#&#8203;479](https://togithub.com/open-feature/open-feature-operator/issues/479))
([50151ff](50151ffcfd))
- use admission webhook namespace if pod namespace is empty
([#&#8203;503](https://togithub.com/open-feature/open-feature-operator/issues/503))
([ffd3e0a](ffd3e0a8ca))

##### 🧹 Chore

- adapt ServiceAccount only in case of K8s Provider
([#&#8203;498](https://togithub.com/open-feature/open-feature-operator/issues/498))
([786d511](786d511602))
- adding troubleshooting guide
([#&#8203;501](https://togithub.com/open-feature/open-feature-operator/issues/501))
([0befb8f](0befb8fadb))
- attempt to improve documentation
([#&#8203;496](https://togithub.com/open-feature/open-feature-operator/issues/496))
([603e74e](603e74e62b))
- **deps:** update curlimages/curl docker tag to v7.88.1
([#&#8203;459](https://togithub.com/open-feature/open-feature-operator/issues/459))
([ea98e1e](ea98e1e77a))
- **deps:** update curlimages/curl docker tag to v8
([#&#8203;461](https://togithub.com/open-feature/open-feature-operator/issues/461))
([1271eab](1271eab2eb))
- **deps:** update curlimages/curl docker tag to v8.1.2
([#&#8203;487](https://togithub.com/open-feature/open-feature-operator/issues/487))
([b9720bb](b9720bb157))
- **deps:** update docker/login-action digest to
[`40891eb`](https://togithub.com/open-feature/open-feature-operator/commit/40891eb)
([#&#8203;473](https://togithub.com/open-feature/open-feature-operator/issues/473))
([630518a](630518a06b))
- **deps:** update docker/metadata-action digest to
[`35e9aff`](https://togithub.com/open-feature/open-feature-operator/commit/35e9aff)
([#&#8203;494](https://togithub.com/open-feature/open-feature-operator/issues/494))
([27a7efd](27a7efdc80))
- **deps:** update docker/metadata-action digest to
[`c4ee3ad`](https://togithub.com/open-feature/open-feature-operator/commit/c4ee3ad)
([#&#8203;471](https://togithub.com/open-feature/open-feature-operator/issues/471))
([5f3d98a](5f3d98a214))
- **deps:** update gcr.io/kubebuilder/kube-rbac-proxy docker tag to
v0.14.1
([#&#8203;477](https://togithub.com/open-feature/open-feature-operator/issues/477))
([8183725](8183725314))
- **deps:** update helm/kind-action action to v1.7.0
([#&#8203;486](https://togithub.com/open-feature/open-feature-operator/issues/486))
([09dcbc1](09dcbc1b18))
- **deps:** update module golang.org/x/net to v0.12.0
([#&#8203;484](https://togithub.com/open-feature/open-feature-operator/issues/484))
([5af75bb](5af75bb6f4))
- **deps:** update open-feature/flagd
([#&#8203;480](https://togithub.com/open-feature/open-feature-operator/issues/480))
([cfeddc8](cfeddc89cb))
- **deps:** update open-feature/flagd
([#&#8203;499](https://togithub.com/open-feature/open-feature-operator/issues/499))
([83fbb00](83fbb007ff))
- extract flagd container injection into its own component
([#&#8203;474](https://togithub.com/open-feature/open-feature-operator/issues/474))
([9ed8e59](9ed8e598f8))
- generalize renovate configuration
([#&#8203;495](https://togithub.com/open-feature/open-feature-operator/issues/495))
([1ec3183](1ec3183f75))

##### 📚 Documentation

- add advanced flagd links
([#&#8203;492](https://togithub.com/open-feature/open-feature-operator/issues/492))
([eb44c61](eb44c61103))
- add instruction for using OFO and GitOps
([#&#8203;497](https://togithub.com/open-feature/open-feature-operator/issues/497))
([244a625](244a625934))
- Doc fixes
([#&#8203;469](https://togithub.com/open-feature/open-feature-operator/issues/469))
([5a7918a](5a7918a946))
- replace `make deploy-demo` command with a link to the
`cloud-native-demo` repo
([#&#8203;476](https://togithub.com/open-feature/open-feature-operator/issues/476))
([fff12a8](fff12a8dca))
- update crd version in getting started guide
([#&#8203;485](https://togithub.com/open-feature/open-feature-operator/issues/485))
([eb3b950](eb3b9501cb))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNy4xIiwidXBkYXRlZEluVmVyIjoiMzYuMjcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-01 22:41:46 +00:00
Osama Nabih ace62c7a6a
feat: add new configuration "sync-interval" which controls the HTTP polling interval (#404)
…, in minutes, bet. each HTTP_sync calls

EDIT by @toddbaert : I have modified this PR. I've done a couple things
differently than @OsamaNabih :

- interval is in seconds (I think it's likely some people will want
sub-minute behavior, and the existing behavior was seconds
- using `sources` for this, as @james-milligan suggested:
- for example: `./bin/flagd start
--sources='[{"uri":"https://raw.githubusercontent.com/open-feature/playground/main/config/flagd/flags.json","provider":"http","interval":1}]'
--debug` will poll every 1s
- defaults to 5s to maintain current behavior
- added tests

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-31 19:54:43 -04:00
renovate[bot] f34de59fc8
fix(deps): update module github.com/open-feature/flagd/core to v0.6.2 (#779)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.6.1` -> `v0.6.2` |

---

### Release Notes

<details>
<summary>open-feature/flagd
(github.com/open-feature/flagd/core)</summary>

###
[`v0.6.2`](https://togithub.com/open-feature/flagd/releases/tag/flagd/v0.6.2):
flagd: v0.6.2

##### 🐛 Bug Fixes

- **deps:** update module github.com/open-feature/flagd/core to v0.6.1
([#&#8203;745](https://togithub.com/open-feature/flagd/issues/745))
([d290d8f](d290d8fda8))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNC4yIiwidXBkYXRlZEluVmVyIjoiMzYuMjQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-28 21:58:44 +00:00
renovate[bot] f506a4984c
chore(deps): update github/codeql-action digest to 0ba4244 (#777)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `6ca1aa8` -> `0ba4244` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4yNC4yIiwidXBkYXRlZEluVmVyIjoiMzYuMjQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-28 19:54:45 +00:00
github-actions[bot] 53028b57f9
chore: release main (#774)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.6.2</summary>

##
[0.6.2](https://github.com/open-feature/flagd/compare/flagd/v0.6.1...flagd/v0.6.2)
(2023-07-28)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.1
([#745](https://github.com/open-feature/flagd/issues/745))
([d290d8f](d290d8fda8))
</details>

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

##
[0.2.7](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.6...flagd-proxy/v0.2.7)
(2023-07-28)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.6.1
([#745](https://github.com/open-feature/flagd/issues/745))
([d290d8f](d290d8fda8))
</details>

<details><summary>core: 0.6.2</summary>

##
[0.6.2](https://github.com/open-feature/flagd/compare/core/v0.6.1...core/v0.6.2)
(2023-07-28)


### 🐛 Bug Fixes

* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to
v1.3.0-20230720212818-3675556880a1.1
([#747](https://github.com/open-feature/flagd/issues/747))
([fb17bc6](fb17bc6a5c))
* **deps:** update module golang.org/x/net to v0.12.0
([#734](https://github.com/open-feature/flagd/issues/734))
([777b28b](777b28b1d5))


###  New Features

* grpc selector as scope
([#761](https://github.com/open-feature/flagd/issues/761))
([7246e6d](7246e6dce6))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-28 13:12:04 -04:00
renovate[bot] 777b28b1d5
fix(deps): update module golang.org/x/net to v0.12.0 (#734)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.11.0` -> `v0.12.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDQuMiIsInVwZGF0ZWRJblZlciI6IjM1LjE0NC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-07-28 13:00:45 -04:00
renovate[bot] d290d8fda8
fix(deps): update module github.com/open-feature/flagd/core to v0.6.1 (#745)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | minor | `v0.5.4` -> `v0.6.1` |

---

### Release Notes

<details>
<summary>open-feature/flagd
(github.com/open-feature/flagd/core)</summary>

###
[`v0.6.0`](https://togithub.com/open-feature/flagd/releases/tag/flagd/v0.6.0):
flagd: v0.6.0

##### ⚠ BREAKING CHANGES

- rename metrics and service
([#&#8203;730](https://togithub.com/open-feature/flagd/issues/730))

##### 🐛 Bug Fixes

- **deps:** update module github.com/open-feature/flagd/core to v0.5.4
([#&#8203;693](https://togithub.com/open-feature/flagd/issues/693))
([33705a6](33705a6730))
- **deps:** update module
github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.13
([#&#8203;697](https://togithub.com/open-feature/flagd/issues/697))
([435448f](435448f449))
- **deps:** update module github.com/spf13/viper to v1.16.0
([#&#8203;679](https://togithub.com/open-feature/flagd/issues/679))
([798a975](798a975bb1))

##### 🔄 Refactoring

- **flagd:** update build.Dockerfile with buildkit caching
([#&#8203;724](https://togithub.com/open-feature/flagd/issues/724))
([3e9cc1a](3e9cc1a7d6))
- **flagd:** update profile.Dockerfile with buildkit caching
([#&#8203;723](https://togithub.com/open-feature/flagd/issues/723))
([3f263c6](3f263c65a6))
- remove protobuf dependency from eval package
([#&#8203;701](https://togithub.com/open-feature/flagd/issues/701))
([34ffafd](34ffafd9a7))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi4yNC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-28 12:43:53 -04:00
Michael Beemer 9a2200057f
ci: include windows binaries on the release (#776)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-07-28 11:44:55 -04:00
Kavindu Dodanduwa 7246e6dce6
feat: grpc selector as scope (#761)
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-07-28 11:44:36 -04:00
renovate[bot] fb17bc6a5c
fix(deps): update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.3.0-20230720212818-3675556880a1.1 (#747)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| buf.build/gen/go/open-feature/flagd/grpc/go | require | patch |
`v1.3.0-20230317150644-afd1cc2ef580.1` ->
`v1.3.0-20230720212818-3675556880a1.1` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44LjExIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 14:57:01 +00:00
github-actions[bot] e3e03b0af2
chore: release main (#750)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.6.1</summary>

##
[0.6.1](https://github.com/open-feature/flagd/compare/flagd/v0.6.0...flagd/v0.6.1)
(2023-07-27)


### 🐛 Bug Fixes

* **deps:** update module
github.com/open-feature/go-sdk-contrib/tests/flagd to v1.2.3
([#749](https://github.com/open-feature/flagd/issues/749))
([cd63e48](cd63e489d6))
</details>

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

##
[0.2.6](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.5...flagd-proxy/v0.2.6)
(2023-07-27)


###  New Features

* **flagd-proxy:** introduce zero-downtime
([#752](https://github.com/open-feature/flagd/issues/752))
([ed5e6e5](ed5e6e5f3e))
</details>

<details><summary>core: 0.6.1</summary>

##
[0.6.1](https://github.com/open-feature/flagd/compare/core/v0.6.0...core/v0.6.1)
(2023-07-27)


### 🐛 Bug Fixes

* **deps:** update kubernetes packages to v0.27.4
([#756](https://github.com/open-feature/flagd/issues/756))
([dcc10f3](dcc10f33f5))
* **deps:** update module github.com/bufbuild/connect-go to v1.10.0
([#771](https://github.com/open-feature/flagd/issues/771))
([c74103f](c74103faec))
* **deps:** update module google.golang.org/grpc to v1.57.0
([#773](https://github.com/open-feature/flagd/issues/773))
([be8bf04](be8bf04509))


###  New Features

* **flagd-proxy:** introduce zero-downtime
([#752](https://github.com/open-feature/flagd/issues/752))
([ed5e6e5](ed5e6e5f3e))
* **flagd:** custom error handling for OTel errors
([#769](https://github.com/open-feature/flagd/issues/769))
([bda1a92](bda1a92785))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-07-27 10:34:16 -04:00
Giovanni Liva bda1a92785
feat(flagd): custom error handling for OTel errors (#769)
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-07-27 14:58:01 +02:00
renovate[bot] be8bf04509
fix(deps): update module google.golang.org/grpc to v1.57.0 (#773)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| minor | `v1.56.2` -> `v1.57.0` |

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.57.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.57.0):
Release 1.57.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.56.2...v1.57.0)

### API Changes

- resolver: remove deprecated `Target.Scheme` and `Target.Authority`.
Use `URL.Scheme` and `URL.Host` instead, respectively
([#&#8203;6363](https://togithub.com/grpc/grpc-go/issues/6363))

### Behavior Changes

- client: percent-encode the default authority for the channel
([#&#8203;6428](https://togithub.com/grpc/grpc-go/issues/6428))
- xds: require EDS service name to be set in a CDS cluster with an
'xdstp' resource name (gRFC A47)
([#&#8203;6438](https://togithub.com/grpc/grpc-go/issues/6438))

### New Features

- reflection: support the v1 reflection service and update `Register` to
register both v1alpha and v1
([#&#8203;6329](https://togithub.com/grpc/grpc-go/issues/6329))
- xds: add support for string matcher in RBAC header matching
([#&#8203;6419](https://togithub.com/grpc/grpc-go/issues/6419))
- alts: add support for `GRPC_ALTS_MAX_CONCURRENT_HANDSHAKES` env var
([#&#8203;6267](https://togithub.com/grpc/grpc-go/issues/6267))
- balancer/weightedroundrobin: de-experimentalize name of LB policy
([#&#8203;6477](https://togithub.com/grpc/grpc-go/issues/6477))

### Bug Fixes

- status: `status.FromError` now returns an error with `codes.Unknown`
when the error implements the `GRPCStatus()` method, and calling
`GRPCStatus()` returns `nil`
([#&#8203;6374](https://togithub.com/grpc/grpc-go/issues/6374))
- Special Thanks: [@&#8203;atollena](https://togithub.com/atollena)
- server: fix bug preventing TCP user timeout from being set on the
connection when TLS is used
([#&#8203;6321](https://togithub.com/grpc/grpc-go/issues/6321))
    -   Special Thanks: [@&#8203;tobotg](https://togithub.com/tobotg)
- client: eliminate connection churn during an address update that
differs only in balancer attributes
([#&#8203;6439](https://togithub.com/grpc/grpc-go/issues/6439))
- clusterresolver: handle EDS nacks, resource-not-found errors, and DNS
Resolver errors correctly
([#&#8203;6436](https://togithub.com/grpc/grpc-go/issues/6436),
[#&#8203;6461](https://togithub.com/grpc/grpc-go/issues/6461))
- xds/ringhash: cache connectivity state of subchannels inside picker to
avoid rare races
([#&#8203;6351](https://togithub.com/grpc/grpc-go/issues/6351))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 03:31:10 +00:00
renovate[bot] c74103faec
fix(deps): update module github.com/bufbuild/connect-go to v1.10.0 (#771)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/bufbuild/connect-go](https://togithub.com/bufbuild/connect-go)
| require | minor | `v1.9.0` -> `v1.10.0` |

---

### Release Notes

<details>
<summary>bufbuild/connect-go (github.com/bufbuild/connect-go)</summary>

###
[`v1.10.0`](https://togithub.com/bufbuild/connect-go/compare/v1.9.0...v1.10.0)

[Compare
Source](https://togithub.com/bufbuild/connect-go/compare/v1.9.0...v1.10.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 01:33:22 +00:00
renovate[bot] 0bfd338aad
chore(deps): update github/codeql-action digest to 6ca1aa8 (#770)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `1813ca7` -> `6ca1aa8` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-26 23:13:03 +00:00
Giovanni Liva c5145e5de3
ci: fix build of release assets (#767)
Signed-off-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2023-07-26 12:58:43 -04:00
odubajDT ed5e6e5f3e
feat(flagd-proxy): introduce zero-downtime (#752)
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-07-26 08:41:30 +02:00
Michael Beemer b99b5dac91
docs: fixed sem ver header example
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-07-24 11:24:18 -04:00
renovate[bot] 434654aa0e
chore(deps): update google-github-actions/release-please-action digest to ca6063f (#758)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | digest | `8016a66` -> `ca6063f` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-20 22:30:12 +00:00
renovate[bot] 77f369b470
chore(deps): update sigstore/cosign-installer digest to a5d81fb (#757)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `6e04d22` -> `a5d81fb` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-20 15:52:28 +00:00
renovate[bot] dcc10f33f5
fix(deps): update kubernetes packages to v0.27.4 (#756)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
require | patch | `v0.27.3` -> `v0.27.4` |
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
require | patch | `v0.27.3` -> `v0.27.4` |

---

### Release Notes

<details>
<summary>kubernetes/apimachinery (k8s.io/apimachinery)</summary>

###
[`v0.27.4`](https://togithub.com/kubernetes/apimachinery/compare/v0.27.3...v0.27.4)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.27.3...v0.27.4)

</details>

<details>
<summary>kubernetes/client-go (k8s.io/client-go)</summary>

###
[`v0.27.4`](https://togithub.com/kubernetes/client-go/compare/v0.27.3...v0.27.4)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.27.3...v0.27.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-20 08:28:50 +00:00
renovate[bot] 4a48164258
chore(deps): update marocchino/sticky-pull-request-comment digest to f6a2580 (#755)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[marocchino/sticky-pull-request-comment](https://togithub.com/marocchino/sticky-pull-request-comment)
| action | digest | `f61b6cf` -> `f6a2580` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-20 02:09:30 +00:00
renovate[bot] 751ca35384
chore(deps): update github/codeql-action digest to 1813ca7 (#753)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `489225d` -> `1813ca7` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi4xMS4wIiwidXBkYXRlZEluVmVyIjoiMzYuMTEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 17:37:49 +00:00
renovate[bot] cd63e489d6
fix(deps): update module github.com/open-feature/go-sdk-contrib/tests/flagd to v1.2.3 (#749)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/go-sdk-contrib/tests/flagd](https://togithub.com/open-feature/go-sdk-contrib)
| require | patch | `v1.2.2` -> `v1.2.3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi44LjExIiwidXBkYXRlZEluVmVyIjoiMzYuOC4xMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 03:30:29 +00:00
Todd Baert dd0b01331f
chore: document flagd provider lifecycle (#748)
Adds some details on how flagd providers should implement spec 0.6.0
features.

---------

Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
2023-07-18 07:55:26 -04:00
renovate[bot] 112456db1d
chore(deps): update github/codeql-action digest to 489225d (#744)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `46ed16d` -> `489225d` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-14 19:32:19 +00:00
github-actions[bot] dbf7d2ba01
chore: release main (#694)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.6.0</summary>

##
[0.6.0](https://github.com/open-feature/flagd/compare/flagd/v0.5.4...flagd/v0.6.0)
(2023-07-13)

### ⚠ BREAKING CHANGES

* rename metrics and service
([#730](https://github.com/open-feature/flagd/issues/730))

### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.5.4
([#693](https://github.com/open-feature/flagd/issues/693))
([33705a6](33705a6730))
* **deps:** update module
github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.13
([#697](https://github.com/open-feature/flagd/issues/697))
([435448f](435448f449))
* **deps:** update module github.com/spf13/viper to v1.16.0
([#679](https://github.com/open-feature/flagd/issues/679))
([798a975](798a975bb1))


### 🔄 Refactoring

* **flagd:** update build.Dockerfile with buildkit caching
([#724](https://github.com/open-feature/flagd/issues/724))
([3e9cc1a](3e9cc1a7d6))
* **flagd:** update profile.Dockerfile with buildkit caching
([#723](https://github.com/open-feature/flagd/issues/723))
([3f263c6](3f263c65a6))
* remove protobuf dependency from eval package
([#701](https://github.com/open-feature/flagd/issues/701))
([34ffafd](34ffafd9a7))
</details>

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

##
[0.2.5](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.4...flagd-proxy/v0.2.5)
(2023-07-13)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.5.4
([#693](https://github.com/open-feature/flagd/issues/693))
([33705a6](33705a6730))
* **deps:** update module github.com/spf13/viper to v1.16.0
([#679](https://github.com/open-feature/flagd/issues/679))
([798a975](798a975bb1))


### 🔄 Refactoring

* **flagd-proxy:** update build.Dockerfile with buildkit caching
([#725](https://github.com/open-feature/flagd/issues/725))
([06f3d2e](06f3d2eecb))
* remove protobuf dependency from eval package
([#701](https://github.com/open-feature/flagd/issues/701))
([34ffafd](34ffafd9a7))
</details>

<details><summary>core: 0.6.0</summary>

##
[0.6.0](https://github.com/open-feature/flagd/compare/core/v0.5.4...core/v0.6.0)
(2023-07-13)


### ⚠ BREAKING CHANGES

* rename metrics and service
([#730](https://github.com/open-feature/flagd/issues/730))

### 🔄 Refactoring

* remove protobuf dependency from eval package
([#701](https://github.com/open-feature/flagd/issues/701))
([34ffafd](34ffafd9a7))


### 🐛 Bug Fixes

* **deps:** update kubernetes packages to v0.27.3
([#708](https://github.com/open-feature/flagd/issues/708))
([5bf3a69](5bf3a69aa4))
* **deps:** update module github.com/bufbuild/connect-go to v1.9.0
([#722](https://github.com/open-feature/flagd/issues/722))
([75223e2](75223e2fc0))
* **deps:** update module github.com/bufbuild/connect-opentelemetry-go
to v0.4.0 ([#739](https://github.com/open-feature/flagd/issues/739))
([713e2a9](713e2a9834))
* **deps:** update module github.com/prometheus/client_golang to v1.16.0
([#709](https://github.com/open-feature/flagd/issues/709))
([b8bedd2](b8bedd2b89))
* **deps:** update module golang.org/x/crypto to v0.10.0
([#647](https://github.com/open-feature/flagd/issues/647))
([7f1d7e6](7f1d7e6666))
* **deps:** update module golang.org/x/mod to v0.11.0
([#705](https://github.com/open-feature/flagd/issues/705))
([42813be](42813bef09))
* **deps:** update module golang.org/x/mod to v0.12.0
([#729](https://github.com/open-feature/flagd/issues/729))
([7b109c7](7b109c705a))
* **deps:** update module golang.org/x/net to v0.11.0
([#706](https://github.com/open-feature/flagd/issues/706))
([27d893f](27d893fe78))
* **deps:** update module golang.org/x/sync to v0.3.0
([#707](https://github.com/open-feature/flagd/issues/707))
([7852efb](7852efb84e))
* **deps:** update module google.golang.org/grpc to v1.56.1
([#710](https://github.com/open-feature/flagd/issues/710))
([8f16573](8f165739ae))
* **deps:** update module google.golang.org/grpc to v1.56.2
([#738](https://github.com/open-feature/flagd/issues/738))
([521cc30](521cc30cde))
* **deps:** update module google.golang.org/protobuf to v1.31.0
([#720](https://github.com/open-feature/flagd/issues/720))
([247239e](247239e76b))
* **deps:** update opentelemetry-go monorepo
([#648](https://github.com/open-feature/flagd/issues/648))
([c12dad8](c12dad89a8))


###  New Features

* **flagD:** support zero downtime during upgrades
([#731](https://github.com/open-feature/flagd/issues/731))
([7df8d39](7df8d3994b))
* rename metrics and service
([#730](https://github.com/open-feature/flagd/issues/730))
([09c0198](09c0198f76))
</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: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-07-14 12:34:59 -04:00
odubajDT 7df8d3994b
feat(flagD): support zero downtime during upgrades (#731)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- implements graceful shutdown of flagD, which leads to zero-downtime ->
this means disabling the readiness probes and sending a shutdown event
to all connected SDKs
- create example manifests for deploying flagD as a standalone
Deployment
- create Makefile entry to deploy flagD to cluster
- create ZD test with README description how to run
- create Makefile entry to run ZD test

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #728 

### Follow-up Tasks
- running ZD test as part of CI
https://github.com/open-feature/flagd/issues/732

---------

Signed-off-by: odubajDT <ondrej.dubaj@dynatrace.com>
2023-07-13 10:09:18 -04:00
renovate[bot] 46ac4a3d3a
chore(deps): update docker/login-action digest to a979406 (#743)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `0a5a6d5` -> `a979406` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 13:14:45 +00:00
renovate[bot] 4673d179fe
chore(deps): update actions/upload-pages-artifact action to v2 (#742)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/upload-pages-artifact](https://togithub.com/actions/upload-pages-artifact)
| action | major | `v1` -> `v2` |

---

### Release Notes

<details>
<summary>actions/upload-pages-artifact
(actions/upload-pages-artifact)</summary>

###
[`v2`](https://togithub.com/actions/upload-pages-artifact/compare/v1...v2)

[Compare
Source](https://togithub.com/actions/upload-pages-artifact/compare/v1...v2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-11 01:10:05 +00:00
renovate[bot] 70002a2b21
chore(deps): update actions/deploy-pages digest to 12ab2b1 (#740)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | digest | `ee48c7b` -> `12ab2b1` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 22:50:50 +00:00
renovate[bot] 713e2a9834
fix(deps): update module github.com/bufbuild/connect-opentelemetry-go to v0.4.0 (#739)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/bufbuild/connect-opentelemetry-go](https://togithub.com/bufbuild/connect-opentelemetry-go)
| require | minor | `v0.3.0` -> `v0.4.0` |

---

### Release Notes

<details>
<summary>bufbuild/connect-opentelemetry-go
(github.com/bufbuild/connect-opentelemetry-go)</summary>

###
[`v0.4.0`](https://togithub.com/bufbuild/connect-opentelemetry-go/releases/tag/v0.4.0)

[Compare
Source](https://togithub.com/bufbuild/connect-opentelemetry-go/compare/v0.3.0...v0.4.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Enhancements

- Add option to omit trace events for unary RPCs by
[@&#8203;jipperinbham](https://togithub.com/jipperinbham) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/98](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/98)
- Make option to omit trace events apply to streaming RPCs by
[@&#8203;joshcarp](https://togithub.com/joshcarp) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/123](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/123)

##### Bugfixes

- Set status codes properly for HTTP 304s by
[@&#8203;jhump](https://togithub.com/jhump) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/120](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/120)
- Set span status properly for HTTP 304s by
[@&#8203;akshayjshah](https://togithub.com/akshayjshah) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/121](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/121)
- Update studio URL in README by
[@&#8203;pkwarren](https://togithub.com/pkwarren) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/124](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/124)

##### Other changes

- Tighten internal linting for import aliases by
[@&#8203;zchee](https://togithub.com/zchee) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/116](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/116)

#### New Contributors

- [@&#8203;jhump](https://togithub.com/jhump) made their first
contribution in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/120](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/120)
- [@&#8203;jipperinbham](https://togithub.com/jipperinbham) made their
first contribution in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/98](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/98)
- [@&#8203;pkwarren](https://togithub.com/pkwarren) made their first
contribution in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/124](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/124)
- [@&#8203;zchee](https://togithub.com/zchee) made their first
contribution in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/116](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/116)

**Full Changelog**:
https://github.com/bufbuild/connect-opentelemetry-go/compare/v0.3.0...v0.4.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNTkuNyIsInVwZGF0ZWRJblZlciI6IjM1LjE1OS43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-08 04:21:29 +00:00
renovate[bot] 521cc30cde
fix(deps): update module google.golang.org/grpc to v1.56.2 (#738)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| patch | `v1.56.1` -> `v1.56.2` |

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

### [`v1.56.2`](https://togithub.com/grpc/grpc-go/releases/tag/v1.56.2):
Release 1.56.2

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.56.1...v1.56.2)

- status: To fix a panic, `status.FromError` now returns an error with
`codes.Unknown` when the error implements the `GRPCStatus()` method, and
calling `GRPCStatus()` returns `nil`.
([#&#8203;6374](https://togithub.com/grpc/grpc-go/issues/6374))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNTkuNyIsInVwZGF0ZWRJblZlciI6IjM1LjE1OS43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-07 00:51:12 +00:00
renovate[bot] 970b594ff3
chore(deps): update github/codeql-action digest to 46ed16d (#737)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `004c5de` -> `46ed16d` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNTkuNyIsInVwZGF0ZWRJblZlciI6IjM1LjE1OS43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-06 21:43:49 +00:00
renovate[bot] f61ebe5a03
chore(deps): update docker/metadata-action digest to 35e9aff (#736)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `ef25336` -> `35e9aff` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNTkuNyIsInVwZGF0ZWRJblZlciI6IjM1LjE1OS43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-06 19:17:10 +00:00
renovate[bot] 37f80357b6
chore(deps): update docker/login-action digest to 0a5a6d5 (#735)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `465a078` -> `0a5a6d5` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNTkuNyIsInVwZGF0ZWRJblZlciI6IjM1LjE1OS43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-06 16:23:33 +00:00
Kavindu Dodanduwa 09c0198f76
feat!: rename metrics and service (#730)
## This PR

Fixes https://github.com/open-feature/flagd/issues/712 

Refer the following table for metrics renames and their units,


 |  Old | New  | Unit |
|---|---|---|
| http_request_duration_seconds  |  http.server.duration | s |
| http_response_size_bytes | http.server.response.size | By |
| http_requests_inflight |http.server.active_requests | {request} |
| impressions | feature_flag.flagd.impression| {impression} | 
| reasons | feature_flag.flagd.evaluation.reason| {reason} |

### Validation

This change was validated against an OTel setup. Consider following
screen captures,

![Screenshot 2023-07-04 at 1 16 02
PM](https://github.com/open-feature/flagd/assets/8186721/5aba3103-e3fc-42a7-a396-c78999d22b05)

![Screenshot 2023-07-04 at 1 15 41
PM](https://github.com/open-feature/flagd/assets/8186721/0ea196f8-fcb4-4e8c-86eb-c6774de3e2f3)

![Screenshot 2023-07-04 at 1 14 53
PM](https://github.com/open-feature/flagd/assets/8186721/c285d78d-525a-4e40-bfe2-895a85d96cd6)

![Screenshot 2023-07-04 at 1 14 40
PM](https://github.com/open-feature/flagd/assets/8186721/e826ed8c-6056-4fd4-b206-d76592d8d484)

![Screenshot 2023-07-04 at 1 14 18
PM](https://github.com/open-feature/flagd/assets/8186721/30c959af-197b-405c-b303-c4dd59807311)

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-07-05 10:07:00 -07:00
Lam Tran 3f263c65a6
refactor(flagd): update profile.Dockerfile with buildkit caching (#723)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

updates `flagd/profile.Dockerfile` with changes:

- use less layers (from 7 to 2)
- leverage buildkit features: cache (go mod, go build) and bind

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->


### Notes
<!-- any additional notes for this PR -->

- This change is motivated from the new command of docker: `docker init`
(reference:
https://docs.docker.com/engine/reference/commandline/init/#example-of-selecting-go)

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

```
$ docker build . -f ./flagd/profile.Dockerfile -t flagdprofile        
[+] Building 2.2s (13/13) FINISHED                                                                                                                docker:orbstack
 => [internal] load .dockerignore                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                              0.0s
 => [internal] load build definition from profile.Dockerfile                                                                                                 0.0s
 => => transferring dockerfile: 1.76kB                                                                                                                       0.0s
 => [internal] load metadata for gcr.io/distroless/static:nonroot                                                                                            0.8s
 => [internal] load metadata for docker.io/library/golang:1.20-alpine                                                                                        2.2s
 => [auth] library/golang:pull token for registry-1.docker.io                                                                                                0.0s
 => [builder 1/4] FROM docker.io/library/golang:1.20-alpine@sha256:fd9d9d7194ec40a9a6ae89fcaef3e47c47de7746dd5848ab5343695dbbd09f8c                          0.0s
 => [stage-1 1/3] FROM gcr.io/distroless/static:nonroot@sha256:9ecc53c269509f63c69a266168e4a687c7eb8c0cfd753bd8bfcaa4f58a90876f                              0.0s
 => [internal] load build context                                                                                                                            0.0s
 => => transferring context: 6.36kB                                                                                                                          0.0s
 => CACHED [builder 2/4] WORKDIR /src                                                                                                                        0.0s
 => CACHED [builder 3/4] RUN --mount=type=cache,target=/go/pkg/mod/     --mount=type=bind,source=./core/go.mod,target=./core/go.mod     --mount=type=bind,s  0.0s
 => CACHED [builder 4/4] RUN --mount=type=cache,target=/go/pkg/mod/     --mount=type=cache,target=/root/.cache/go-build     --mount=type=bind,source=./core  0.0s
 => CACHED [stage-1 2/3] COPY --from=builder /bin/flagd-build .                                                                                              0.0s
 => exporting to image                                                                                                                                       0.0s
 => => exporting layers                                                                                                                                      0.0s
 => => writing image sha256:9c927f091058423d906644febcb182df0db4afa32ef2e1fc1a65d7c947390468                                                                 0.0s
 => => naming to docker.io/library/flagdprofile                                                                                                              0.0s

$ docker run flagdprofile version

                 ______   __       ________   _______    ______      
                /_____/\ /_/\     /_______/\ /______/\  /_____/\     
                \::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \    
                 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\ \ \ \   
                  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \  
                   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| | 
                    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/                                                                                             

```

Signed-off-by: Lam Tran <lam.tran@spenmo.com>
Co-authored-by: Lam Tran <lam.tran@spenmo.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-07-05 12:09:11 -04:00
Lam Tran 3e9cc1a7d6
refactor(flagd): update build.Dockerfile with buildkit caching (#724)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

updates `flagd/build.Dockerfile` with changes:

- use less layers (from 7 to 2)
- leverage buildkit features: cache (go mod, go build) and bind

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->


### Notes
<!-- any additional notes for this PR -->

- This change is motivated from the new command of docker: `docker init`
(reference:
https://docs.docker.com/engine/reference/commandline/init/#example-of-selecting-go)

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

```
$ docker build . -f ./flagd/build.Dockerfile -t flagd
[+] Building 17.3s (12/12) FINISHED                                                                                                               docker:orbstack
 => [internal] load .dockerignore                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                              0.0s
 => [internal] load build definition from build.Dockerfile                                                                                                   0.0s
 => => transferring dockerfile: 1.74kB                                                                                                                       0.0s
 => [internal] load metadata for gcr.io/distroless/static:nonroot                                                                                            0.5s
 => [internal] load metadata for docker.io/library/golang:1.20-alpine                                                                                        1.2s
 => [builder 1/4] FROM docker.io/library/golang:1.20-alpine@sha256:fd9d9d7194ec40a9a6ae89fcaef3e47c47de7746dd5848ab5343695dbbd09f8c                          0.0s
 => [internal] load build context                                                                                                                            0.0s
 => => transferring context: 8.07kB                                                                                                                          0.0s
 => CACHED [stage-1 1/3] FROM gcr.io/distroless/static:nonroot@sha256:9ecc53c269509f63c69a266168e4a687c7eb8c0cfd753bd8bfcaa4f58a90876f                       0.0s
 => CACHED [builder 2/4] WORKDIR /src                                                                                                                        0.0s
 => CACHED [builder 3/4] RUN --mount=type=cache,target=/go/pkg/mod/     --mount=type=bind,source=./core/go.mod,target=./core/go.mod     --mount=type=bind,s  0.0s
 => [builder 4/4] RUN --mount=type=cache,target=/go/pkg/mod/     --mount=type=cache,target=/root/.cache/go-build     --mount=type=bind,source=./core,targe  15.9s
 => [stage-1 2/3] COPY --from=builder /bin/flagd-build .                                                                                                     0.0s
 => exporting to image                                                                                                                                       0.1s
 => => exporting layers                                                                                                                                      0.1s
 => => writing image sha256:ccfeaee26cdeb83fcdd70408d372f9dc382d028eb53773f062f079bdb6ff4a40                                                                 0.0s
 => => naming to docker.io/library/flagd                                                                                                                     0.0s

$ docker run flagd version

                 ______   __       ________   _______    ______      
                /_____/\ /_/\     /_______/\ /______/\  /_____/\     
                \::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \    
                 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\ \ \ \   
                  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \  
                   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| | 
                    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/     
```

Signed-off-by: Lam Tran <lam.tran@spenmo.com>
Co-authored-by: Lam Tran <lam.tran@spenmo.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-07-05 12:01:00 -04:00
Lam Tran 06f3d2eecb
refactor(flagd-proxy): update build.Dockerfile with buildkit caching (#725)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

updates `flagd-proxy/build.Dockerfile` with changes:

- use less layers (from 7 to 2)
- leverage buildkit features: cache (go mod, go build) and bind

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->


### Notes
<!-- any additional notes for this PR -->

- This change is motivated from the new command of docker: `docker init`
(reference:
https://docs.docker.com/engine/reference/commandline/init/#example-of-selecting-go)

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

```
$ docker build . -f ./flagd-proxy/build.Dockerfile -t flagd-proxy
[+] Building 19.3s (13/13) FINISHED                                                                                                               docker:orbstack
 => [internal] load build definition from build.Dockerfile                                                                                                   0.0s
 => => transferring dockerfile: 1.99kB                                                                                                                       0.0s
 => [internal] load .dockerignore                                                                                                                            0.0s
 => => transferring context: 2B                                                                                                                              0.0s
 => [internal] load metadata for gcr.io/distroless/static:nonroot                                                                                            0.7s
 => [internal] load metadata for docker.io/library/golang:1.20-alpine                                                                                        2.1s
 => [auth] library/golang:pull token for registry-1.docker.io                                                                                                0.0s
 => [builder 1/4] FROM docker.io/library/golang:1.20-alpine@sha256:fd9d9d7194ec40a9a6ae89fcaef3e47c47de7746dd5848ab5343695dbbd09f8c                          0.0s
 => CACHED [stage-1 1/3] FROM gcr.io/distroless/static:nonroot@sha256:9ecc53c269509f63c69a266168e4a687c7eb8c0cfd753bd8bfcaa4f58a90876f                       0.0s
 => [internal] load build context                                                                                                                            0.0s
 => => transferring context: 298.78kB                                                                                                                        0.0s
 => CACHED [builder 2/4] WORKDIR /src                                                                                                                        0.0s
 => [builder 3/4] RUN --mount=type=cache,target=/go/pkg/mod/     --mount=type=bind,source=./core/go.mod,target=./core/go.mod     --mount=type=bind,source=.  0.7s
 => [builder 4/4] RUN --mount=type=cache,target=/go/pkg/mod/     --mount=type=cache,target=/root/.cache/go-build     --mount=type=bind,source=./core,targe  16.2s
 => [stage-1 2/3] COPY --from=builder /bin/flagd-build .                                                                                                     0.0s
 => exporting to image                                                                                                                                       0.1s
 => => exporting layers                                                                                                                                      0.1s
 => => writing image sha256:671b02ae96c27e2a1c3dc336c2a25fd2b1897d7737cb805cb5e0d72c562965b5                                                                 0.0s
 => => naming to docker.io/library/flagd-proxy                                                                                                               0.0s

$ docker run flagd-proxy        

                 ______   __       ________   _______    ______      
                /_____/\ /_/\     /_______/\ /______/\  /_____/\     
                \::::_\/_\:\ \    \::: _  \ \\::::__\/__\:::_ \ \    
                 \:\/___/\\:\ \    \::(_)  \ \\:\ /____/\\:\  \ \ \   
                  \:::._\/ \:\ \____\:: __  \ \\:\\_  _\/ \:\ \ \ \  
                   \:\ \    \:\/___/\\:.\ \  \ \\:\_\ \ \  \:\/.:| | 
                    \_\/     \_____\/ \__\/\__\/ \_____\/   \____/_/ 
                                                   Kubernetes Proxy  

flagd-proxy allows flagd to subscribe to CRD changes without the required permissions.

Usage:
  flagd [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  start       Start flagd-proxy

Flags:
      --config string   config file (default is $HOME/.agent.yaml)
  -x, --debug           verbose logging
  -h, --help            help for flagd

Use "flagd [command] --help" for more information about a command.
```

Signed-off-by: Lam Tran <lam.tran@spenmo.com>
Co-authored-by: Lam Tran <lam.tran@spenmo.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
2023-07-05 11:48:51 -04:00
renovate[bot] 7b109c705a
fix(deps): update module golang.org/x/mod to v0.12.0 (#729)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/mod | require | minor | `v0.11.0` -> `v0.12.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDQuMiIsInVwZGF0ZWRJblZlciI6IjM1LjE0NC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 21:45:33 +00:00
Lam Tran a2fdb7482e
test(flagd): replace os.Setenv by t.Setenv in test (#726)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- replaces `os.Setenv` by `t.Setenv` in unit test (reference:
https://pkg.go.dev/testing#T.Setenv)

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

N/A

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

Signed-off-by: Lam Tran <lam.tran@spenmo.com>
Co-authored-by: Lam Tran <lam.tran@spenmo.com>
2023-07-04 14:44:53 -04:00
renovate[bot] 71f8f129bf
chore(deps): update github/codeql-action digest to 004c5de (#727)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `f6e388e` -> `004c5de` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDQuMiIsInVwZGF0ZWRJblZlciI6IjM1LjE0NC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-03 15:34:45 +00:00
renovate[bot] 75223e2fc0
fix(deps): update module github.com/bufbuild/connect-go to v1.9.0 (#722)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/bufbuild/connect-go](https://togithub.com/bufbuild/connect-go)
| require | minor | `v1.8.0` -> `v1.9.0` |

---

### Release Notes

<details>
<summary>bufbuild/connect-go (github.com/bufbuild/connect-go)</summary>

###
[`v1.9.0`](https://togithub.com/bufbuild/connect-go/releases/tag/v1.9.0)

[Compare
Source](https://togithub.com/bufbuild/connect-go/compare/v1.8.0...v1.9.0)

#### What's Changed

Along with a few new features and bugfixes, this release includes a
variety of internal performance improvements.

[v1.8.0] BenchmarkConnect/unary-12 8415 1305116 ns/op 14449031 B/op 254
allocs/op
[v1.9.0] BenchmarkConnect/unary-12 10443 1151366 ns/op 6024079 B/op 236
allocs/op

##### Enhancements

- Allow clients to set Host in headers by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[https://github.com/bufbuild/connect-go/pull/522](https://togithub.com/bufbuild/connect-go/pull/522)
- Allow Connect clients to configure max HTTP GET size by
[@&#8203;jhump](https://togithub.com/jhump) in
[https://github.com/bufbuild/connect-go/pull/529](https://togithub.com/bufbuild/connect-go/pull/529)
- Reduce allocations in HTTP routing by
[@&#8203;mattrobenolt](https://togithub.com/mattrobenolt) in
[https://github.com/bufbuild/connect-go/pull/519](https://togithub.com/bufbuild/connect-go/pull/519)
- Cache mapping of methods to protocol handlers by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[https://github.com/bufbuild/connect-go/pull/525](https://togithub.com/bufbuild/connect-go/pull/525)
- Improve performance of percent encoding by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[https://github.com/bufbuild/connect-go/pull/531](https://togithub.com/bufbuild/connect-go/pull/531)
- Reduce marshaling allocations with MarshalAppend by
[@&#8203;emcfarlane](https://togithub.com/emcfarlane) in
[https://github.com/bufbuild/connect-go/pull/503](https://togithub.com/bufbuild/connect-go/pull/503)

##### Bugfixes

- Discard unknown JSON fields by default by
[@&#8203;akshayjshah](https://togithub.com/akshayjshah) in
[https://github.com/bufbuild/connect-go/pull/518](https://togithub.com/bufbuild/connect-go/pull/518)
- Canonicalize Connect streaming trailer names by
[@&#8203;jchadwick-buf](https://togithub.com/jchadwick-buf) in
[https://github.com/bufbuild/connect-go/pull/528](https://togithub.com/bufbuild/connect-go/pull/528)

##### Other changes

- Tighten internal lint checks by
[@&#8203;zchee](https://togithub.com/zchee) in
[https://github.com/bufbuild/connect-go/pull/520](https://togithub.com/bufbuild/connect-go/pull/520)
- Simplify code when pooled buffers aren't returned by
[@&#8203;pkwarren](https://togithub.com/pkwarren) in
[https://github.com/bufbuild/connect-go/pull/532](https://togithub.com/bufbuild/connect-go/pull/532)

#### New Contributors

- [@&#8203;zchee](https://togithub.com/zchee) made their first
contribution in
[https://github.com/bufbuild/connect-go/pull/520](https://togithub.com/bufbuild/connect-go/pull/520)
- [@&#8203;emcfarlane](https://togithub.com/emcfarlane) made their first
contribution in
[https://github.com/bufbuild/connect-go/pull/522](https://togithub.com/bufbuild/connect-go/pull/522)

**Full Changelog**:
https://github.com/bufbuild/connect-go/compare/v1.8.0...v1.9.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjM1LjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 21:35:17 +00:00
renovate[bot] f387f1f7d0
chore(deps): update sigstore/cosign-installer digest to 6e04d22 (#721)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `d130283` -> `6e04d22` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjM1LjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 15:20:11 +00:00
renovate[bot] 247239e76b
fix(deps): update module google.golang.org/protobuf to v1.31.0 (#720)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google.golang.org/protobuf](https://togithub.com/protocolbuffers/protobuf-go)
| require | minor | `v1.30.0` -> `v1.31.0` |

---

### Release Notes

<details>
<summary>protocolbuffers/protobuf-go
(google.golang.org/protobuf)</summary>

###
[`v1.31.0`](https://togithub.com/protocolbuffers/protobuf-go/releases/tag/v1.31.0)

[Compare
Source](https://togithub.com/protocolbuffers/protobuf-go/compare/v1.30.0...v1.31.0)

#### Notable changes <a name="v1.31-notable-changes"></a>

**New Features**

-   [CL/489316](https://go.dev/cl/489316): types/dynamicpb: add NewTypes
- Add a function to construct a dynamic type registry from a
protoregistry.Files
- [CL/489615](https://go.dev/cl/489615): encoding: add MarshalAppend to
protojson and prototext

**Minor performance improvements**

- [CL/491596](https://go.dev/cl/491596): encoding/protodelim: If
UnmarshalFrom gets a bufio.Reader, try to reuse its buffer instead of
creating a new one
- [CL/500695](https://go.dev/cl/500695): proto: store the size of tag to
avoid multiple calculations

**Bug fixes**

- [CL/497935](https://go.dev/cl/497935): internal/order: fix sorting of
synthetic oneofs to be deterministic
- [CL/505555](https://go.dev/cl/505555): encoding/protodelim: fix
handling of io.EOF

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjM1LjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 22:39:41 +00:00
renovate[bot] 3dcbd8566e
chore(deps): update docker/metadata-action digest to ef25336 (#719)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `818d4b7` -> `ef25336` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNDEuMyIsInVwZGF0ZWRJblZlciI6IjM1LjE0MS4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 18:12:29 +00:00
renovate[bot] 32668d347d
chore(deps): update sigstore/cosign-installer digest to d130283 (#718)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `ef0e969` -> `d130283` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-24 12:43:57 +00:00
renovate[bot] c12dad89a8
fix(deps): update opentelemetry-go monorepo (#648)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.38.0` -> `v0.39.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.15.0` -> `v1.16.0` |
|
[go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v1.15.0` -> `v1.16.0` |
|
[go.opentelemetry.io/otel/exporters/prometheus](https://togithub.com/open-telemetry/opentelemetry-go)
| require | minor | `v0.38.0` -> `v0.39.0` |

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-go</summary>

###
[`v1.16.0`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.16.0):
/v0.39.0 -- Stable Metric API

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.15.1...v1.16.0)

This release contains the first stable release of the OpenTelemetry Go
[metric API]. Our project stability guarantees now apply to the
`go.opentelemetry.io/otel/metric` package. See our [versioning
policy](VERSIONING.md) for more information about these stability
guarantees.

##### What's Changed

##### Added

- The `go.opentelemetry.io/otel/semconv/v1.19.0` package. The package
contains semantic conventions from the `v1.19.0` version of the
OpenTelemetry specification.
([#&#8203;3848](https://togithub.com/open-telemetry/opentelemetry-go/issues/3848))
- The `go.opentelemetry.io/otel/semconv/v1.20.0` package. The package
contains semantic conventions from the `v1.20.0` version of the
OpenTelemetry specification.
([#&#8203;4078](https://togithub.com/open-telemetry/opentelemetry-go/issues/4078))

##### Changed

- Use `strings.Cut()` instead of `string.SplitN()` for better
readability and memory use.
([#&#8203;4049](https://togithub.com/open-telemetry/opentelemetry-go/issues/4049))

##### Removed

- The deprecated `go.opentelemetry.io/otel/metric/instrument` package is
removed. Use `go.opentelemetry.io/otel/metric` instead.
([#&#8203;4055](https://togithub.com/open-telemetry/opentelemetry-go/issues/4055))

##### Fixed

- Fix build for BSD based systems in
`go.opentelemetry.io/otel/sdk/resource`.
([#&#8203;4077](https://togithub.com/open-telemetry/opentelemetry-go/issues/4077))

##### New Contributors

- [@&#8203;tsloughter](https://togithub.com/tsloughter) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/3848](https://togithub.com/open-telemetry/opentelemetry-go/pull/3848)
- [@&#8203;Tijmen34](https://togithub.com/Tijmen34) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4074](https://togithub.com/open-telemetry/opentelemetry-go/pull/4074)
- [@&#8203;ChillOrb](https://togithub.com/ChillOrb) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/3677](https://togithub.com/open-telemetry/opentelemetry-go/pull/3677)
- [@&#8203;ChenX1993](https://togithub.com/ChenX1993) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4043](https://togithub.com/open-telemetry/opentelemetry-go/pull/4043)
- [@&#8203;andrew-womeldorf](https://togithub.com/andrew-womeldorf) made
their first contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4086](https://togithub.com/open-telemetry/opentelemetry-go/pull/4086)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.1...v1.16.0

[metric API]: https://pkg.go.dev/go.opentelemetry.io/otel/metric

###
[`v1.15.1`](https://togithub.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1):
/v0.38.1

[Compare
Source](https://togithub.com/open-telemetry/opentelemetry-go/compare/v1.15.0...v1.15.1)

##### What's Changed

##### Fixed

- Remove unused imports from `sdk/resource/host_id_bsd.go` which caused
build failures.
([#&#8203;4040](https://togithub.com/open-telemetry/opentelemetry-go/issues/4040),
[#&#8203;4041](https://togithub.com/open-telemetry/opentelemetry-go/issues/4041))

##### New Contributors

- [@&#8203;Achooo](https://togithub.com/Achooo) made their first
contribution in
[https://github.com/open-telemetry/opentelemetry-go/pull/4041](https://togithub.com/open-telemetry/opentelemetry-go/pull/4041)

**Full Changelog**:
https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.0...v1.15.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43NS4wIiwidXBkYXRlZEluVmVyIjoiMzUuMTMxLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-24 00:02:21 +00:00
renovate[bot] eb81eed1f9
chore(deps): update google-github-actions/release-please-action digest to 8016a66 (#717)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | digest | `51ee8ae` -> `8016a66` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 22:49:54 +00:00
renovate[bot] 27d893fe78
fix(deps): update module golang.org/x/net to v0.11.0 (#706)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.10.0` -> `v0.11.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 16:49:42 +00:00
renovate[bot] 7f1d7e6666
fix(deps): update module golang.org/x/crypto to v0.10.0 (#647)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/crypto | require | minor | `v0.8.0` -> `v0.10.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43NS4wIiwidXBkYXRlZEluVmVyIjoiMzUuMTMxLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 16:48:47 +00:00
renovate[bot] 8f165739ae
fix(deps): update module google.golang.org/grpc to v1.56.1 (#710)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| minor | `v1.55.0` -> `v1.56.1` |

---

### Release Notes

<details>
<summary>grpc/grpc-go</summary>

### [`v1.56.1`](https://togithub.com/grpc/grpc-go/releases/tag/v1.56.1):
Release 1.56.1

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.56.0...v1.56.1)

-   client: handle empty address lists correctly in addrConn.updateAddrs

### [`v1.56.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.56.0):
Release 1.56.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.55.0...v1.56.0)

### New Features

- client: support channel idleness using `WithIdleTimeout` dial option
([#&#8203;6263](https://togithub.com/grpc/grpc-go/issues/6263))
- This feature is currently disabled by default, but will be enabled
with a 30 minute default in the future.
- client: when using pickfirst, keep channel state in TRANSIENT_FAILURE
until it becomes READY ([gRFC
A62](https://togithub.com/grpc/proposal/blob/master/A62-pick-first.md))
([#&#8203;6306](https://togithub.com/grpc/grpc-go/issues/6306))
- xds: Add support for Custom LB Policies ([gRFC
A52](https://togithub.com/grpc/proposal/blob/master/A52-xds-custom-lb-policies.md))
([#&#8203;6224](https://togithub.com/grpc/grpc-go/issues/6224))
- xds: support pick_first Custom LB policy ([gRFC
A62](https://togithub.com/grpc/proposal/blob/master/A62-pick-first.md))
([#&#8203;6314](https://togithub.com/grpc/grpc-go/issues/6314))
([#&#8203;6317](https://togithub.com/grpc/grpc-go/issues/6317))
- client: add support for pickfirst address shuffling ([gRFC
A62](https://togithub.com/grpc/proposal/blob/master/A62-pick-first.md))
([#&#8203;6311](https://togithub.com/grpc/grpc-go/issues/6311))
- xds: Add support for String Matcher Header Matcher in RDS
([#&#8203;6313](https://togithub.com/grpc/grpc-go/issues/6313))
- xds/outlierdetection: Add Channelz Logger to Outlier Detection LB
([#&#8203;6145](https://togithub.com/grpc/grpc-go/issues/6145))
- Special Thanks:
[@&#8203;s-matyukevich](https://togithub.com/s-matyukevich)
- xds: enable RLS in xDS by default
([#&#8203;6343](https://togithub.com/grpc/grpc-go/issues/6343))
- orca: add support for application_utilization field and missing range
checks on several metrics setters
- balancer/weightedroundrobin: add new LB policy for balancing between
backends based on their load reports ([gRFC
A58](https://togithub.com/grpc/proposal/blob/master/A58-client-side-weighted-round-robin-lb-policy.md))
([#&#8203;6241](https://togithub.com/grpc/grpc-go/issues/6241))
- authz: add conversion of json to RBAC Audit Logging config
([#&#8203;6192](https://togithub.com/grpc/grpc-go/issues/6192))
- authz: add support for stdout logger
([#&#8203;6230](https://togithub.com/grpc/grpc-go/issues/6230) and
[#&#8203;6298](https://togithub.com/grpc/grpc-go/issues/6298))
- authz: support customizable audit functionality for authorization
policy ([#&#8203;6192](https://togithub.com/grpc/grpc-go/issues/6192)
[#&#8203;6230](https://togithub.com/grpc/grpc-go/issues/6230) [#&#8203;6298](https://togithub.com/grpc/grpc-go/issues/6298)
[#&#8203;6158](https://togithub.com/grpc/grpc-go/issues/6158)
[#&#8203;6304](https://togithub.com/grpc/grpc-go/issues/6304) and
[#&#8203;6225](https://togithub.com/grpc/grpc-go/issues/6225))

### Bug Fixes

- orca: fix a race at startup of out-of-band metric subscriptions that
would cause the report interval to request 0
([#&#8203;6245](https://togithub.com/grpc/grpc-go/issues/6245))
- xds/xdsresource: Fix Outlier Detection Config Handling and correctly
set xDS Defaults
([#&#8203;6361](https://togithub.com/grpc/grpc-go/issues/6361))
- xds/outlierdetection: Fix Outlier Detection Config Handling by setting
defaults in ParseConfig()
([#&#8203;6361](https://togithub.com/grpc/grpc-go/issues/6361))

### API Changes

- orca: allow a ServerMetricsProvider to be passed to the ORCA service
and ServerOption
([#&#8203;6223](https://togithub.com/grpc/grpc-go/issues/6223))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 10:08:01 -04:00
renovate[bot] 798a975bb1
fix(deps): update module github.com/spf13/viper to v1.16.0 (#679)
Addressed the false positives reported by Fossa.

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-23 09:57:25 -04:00
James Milligan 34ffafd9a7
refactor: remove protobuf dependency from eval package (#701)
Signed-off-by: James Milligan <james@omnant.co.uk>
2023-06-21 16:56:28 -04:00
renovate[bot] 56df71a5fd
chore(deps): update github/codeql-action digest to f6e388e (#716)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `6c089f5` -> `f6e388e` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 12:44:44 +00:00
renovate[bot] ceacd002b6
chore(deps): update anchore/sbom-action digest to 78fc58e (#715)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `4d571ad` -> `78fc58e` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMzEuMCIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 01:14:47 +00:00
renovate[bot] 7852efb84e
fix(deps): update module golang.org/x/sync to v0.3.0 (#707)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/sync | require | minor | `v0.2.0` -> `v0.3.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-20 00:31:59 +00:00
renovate[bot] 23f6b6890e
chore(deps): update actions/upload-pages-artifact digest to 66b63f4 (#711)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/upload-pages-artifact](https://togithub.com/actions/upload-pages-artifact)
| action | digest | `64bcae5` -> `66b63f4` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjEzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 23:27:06 +00:00
James Milligan 4645d39284
docs: rename flagd proxy image (#713)
Signed-off-by: James Milligan <james@omnant.co.uk>
2023-06-19 15:22:11 -04:00
renovate[bot] b8bedd2b89
fix(deps): update module github.com/prometheus/client_golang to v1.16.0 (#709)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)
| require | minor | `v1.15.1` -> `v1.16.0` |

---

### Release Notes

<details>
<summary>prometheus/client_golang</summary>

###
[`v1.16.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.16.0)

[Compare
Source](https://togithub.com/prometheus/client_golang/compare/v1.15.1...v1.16.0)

#### What's Changed

- \[BUGFIX] api: Switch to POST for LabelNames, Series, and
QueryExemplars.
[#&#8203;1252](https://togithub.com/prometheus/client_golang/issues/1252)
- \[BUGFIX] api: Fix undefined execution order in return statements.
[#&#8203;1260](https://togithub.com/prometheus/client_golang/issues/1260)
- \[BUGFIX] native histograms: Fix bug in bucket key calculation.
[#&#8203;1279](https://togithub.com/prometheus/client_golang/issues/1279)
- \[ENHANCEMENT] Reduce constrainLabels allocations for all metrics.
[#&#8203;1272](https://togithub.com/prometheus/client_golang/issues/1272)
- \[ENHANCEMENT] promhttp: Add process start time header for scrape
efficiency.
[#&#8203;1278](https://togithub.com/prometheus/client_golang/issues/1278)
- \[ENHANCEMENT] promlint: Improve metricUnits runtime.
[#&#8203;1286](https://togithub.com/prometheus/client_golang/issues/1286)

<details>
  <summary> Commits </summary>

- Merge v1.15 to main by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1250](https://togithub.com/prometheus/client_golang/pull/1250)
- Switch to POST for LabelNames, Series, and QueryExemplars to
DoGetFallback by [@&#8203;jacksontj](https://togithub.com/jacksontj) in
[https://github.com/prometheus/client_golang/pull/1252](https://togithub.com/prometheus/client_golang/pull/1252)
- ✏️ \[collectors]: fix typo in test assertion by
[@&#8203;vegerot](https://togithub.com/vegerot) in
[https://github.com/prometheus/client_golang/pull/1153](https://togithub.com/prometheus/client_golang/pull/1153)
- Added interactive tutorial \[kubeCon] by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1255](https://togithub.com/prometheus/client_golang/pull/1255)
- Fixed tutorial. by [@&#8203;bwplotka](https://togithub.com/bwplotka)
in
[https://github.com/prometheus/client_golang/pull/1256](https://togithub.com/prometheus/client_golang/pull/1256)
- Bump golang.org/x/sys from 0.6.0 to 0.7.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1265](https://togithub.com/prometheus/client_golang/pull/1265)
- Cleanup proto use in tests by
[@&#8203;SuperQ](https://togithub.com/SuperQ) in
[https://github.com/prometheus/client_golang/pull/1264](https://togithub.com/prometheus/client_golang/pull/1264)
- Fix tutorial on WSL-based systems by
[@&#8203;marevers](https://togithub.com/marevers) in
[https://github.com/prometheus/client_golang/pull/1257](https://togithub.com/prometheus/client_golang/pull/1257)
- Fix undefined execution order in return statements by
[@&#8203;PiotrLewandowski323](https://togithub.com/PiotrLewandowski323)
in
[https://github.com/prometheus/client_golang/pull/1260](https://togithub.com/prometheus/client_golang/pull/1260)
- Merge release 1.15.1 to main by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1267](https://togithub.com/prometheus/client_golang/pull/1267)
- GitHub Workflows security hardening by
[@&#8203;sashashura](https://togithub.com/sashashura) in
[https://github.com/prometheus/client_golang/pull/1180](https://togithub.com/prometheus/client_golang/pull/1180)
- add process start time header to client_golang prometheus by
[@&#8203;logicalhan](https://togithub.com/logicalhan) in
[https://github.com/prometheus/client_golang/pull/1278](https://togithub.com/prometheus/client_golang/pull/1278)
- Fix bug in bucket key calculation by
[@&#8203;beorn7](https://togithub.com/beorn7) in
[https://github.com/prometheus/client_golang/pull/1279](https://togithub.com/prometheus/client_golang/pull/1279)
- Bump github.com/prometheus/procfs from 0.9.0 to 0.10.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1283](https://togithub.com/prometheus/client_golang/pull/1283)
- Reduce constrainLabels allocations by
[@&#8203;khasanovbi](https://togithub.com/khasanovbi) in
[https://github.com/prometheus/client_golang/pull/1272](https://togithub.com/prometheus/client_golang/pull/1272)
- added circleci as gh action YAML by
[@&#8203;krishnaduttPanchagnula](https://togithub.com/krishnaduttPanchagnula)
in
[https://github.com/prometheus/client_golang/pull/1281](https://togithub.com/prometheus/client_golang/pull/1281)
- Improve metricUnits runtime by
[@&#8203;avlitman](https://togithub.com/avlitman) in
[https://github.com/prometheus/client_golang/pull/1286](https://togithub.com/prometheus/client_golang/pull/1286)
- Moving fully to GH actions. by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1288](https://togithub.com/prometheus/client_golang/pull/1288)
- Fix docstring references to renamed native histogram fields /
functions. by [@&#8203;juliusv](https://togithub.com/juliusv) in
[https://github.com/prometheus/client_golang/pull/1290](https://togithub.com/prometheus/client_golang/pull/1290)
- Fixed README & CHANGELOG; Added fmt makefile command (+bingo) for
easier contributions. by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1289](https://togithub.com/prometheus/client_golang/pull/1289)
-

 </details>

#### New Contributors
* @&#8203;vegerot made their first
contributi[https://github.com/prometheus/client_golang/pull/1153](https://togithub.com/prometheus/client_golang/pull/1153)l/1153
* @&#8203;marevers made their first
contributi[https://github.com/prometheus/client_golang/pull/1257](https://togithub.com/prometheus/client_golang/pull/1257)l/1257
* @&#8203;PiotrLewandowski323 made their first
contributi[https://github.com/prometheus/client_golang/pull/1260](https://togithub.com/prometheus/client_golang/pull/1260)l/1260
* @&#8203;sashashura made their first
contributi[https://github.com/prometheus/client_golang/pull/1180](https://togithub.com/prometheus/client_golang/pull/1180)l/1180
* @&#8203;logicalhan made their first
contributi[https://github.com/prometheus/client_golang/pull/1278](https://togithub.com/prometheus/client_golang/pull/1278)l/1278
* @&#8203;khasanovbi made their first
contributi[https://github.com/prometheus/client_golang/pull/1272](https://togithub.com/prometheus/client_golang/pull/1272)l/1272
* @&#8203;krishnaduttPanchagnula made their first
contributi[https://github.com/prometheus/client_golang/pull/1281](https://togithub.com/prometheus/client_golang/pull/1281)l/1281
* @&#8203;avlitman made their first
contributi[https://github.com/prometheus/client_golang/pull/1286](https://togithub.com/prometheus/client_golang/pull/1286)l/1286

**Full Changelog**:
https://github.com/prometheus/client_golang/compare/v1.15.1...v1.16.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 14:17:43 +00:00
renovate[bot] 42813bef09
fix(deps): update module golang.org/x/mod to v0.11.0 (#705)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/mod | require | minor | `v0.10.0` -> `v0.11.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 11:33:06 +00:00
renovate[bot] 5bf3a69aa4
fix(deps): update kubernetes packages to v0.27.3 (#708)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/apimachinery](https://togithub.com/kubernetes/apimachinery) |
require | patch | `v0.27.2` -> `v0.27.3` |
| [k8s.io/client-go](https://togithub.com/kubernetes/client-go) |
require | patch | `v0.27.2` -> `v0.27.3` |

---

### Release Notes

<details>
<summary>kubernetes/apimachinery</summary>

###
[`v0.27.3`](https://togithub.com/kubernetes/apimachinery/compare/v0.27.2...v0.27.3)

[Compare
Source](https://togithub.com/kubernetes/apimachinery/compare/v0.27.2...v0.27.3)

</details>

<details>
<summary>kubernetes/client-go</summary>

###
[`v0.27.3`](https://togithub.com/kubernetes/client-go/compare/v0.27.2...v0.27.3)

[Compare
Source](https://togithub.com/kubernetes/client-go/compare/v0.27.2...v0.27.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 06:47:30 +00:00
renovate[bot] 435448f449
fix(deps): update module github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.13 (#697)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/go-sdk-contrib/providers/flagd](https://togithub.com/open-feature/go-sdk-contrib)
| require | patch | `v0.1.12` -> `v0.1.13` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 04:28:44 +00:00
renovate[bot] 4f3d9cc757
chore(deps): update sigstore/cosign-installer digest to ef0e969 (#704)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `871cdc7` -> `ef0e969` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 00:57:26 +00:00
renovate[bot] f0e3853bd7
chore(deps): update github/codeql-action digest to 6c089f5 (#703)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `83f0fe6` -> `6c089f5` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 21:41:15 +00:00
renovate[bot] 3070831675
chore(deps): update docker/metadata-action digest to 818d4b7 (#702)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `2c0bd77` -> `818d4b7` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 19:08:52 +00:00
renovate[bot] 52d39b1231
chore(deps): update docker/build-push-action digest to 2eb1c19 (#700)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[docker/build-push-action](https://togithub.com/docker/build-push-action)
| action | digest | `44ea916` -> `2eb1c19` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 17:34:17 +00:00
renovate[bot] b7cbe1b69c
chore(deps): update actions/deploy-pages digest to ee48c7b (#699)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | digest | `af48cf9` -> `ee48c7b` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTcuMyIsInVwZGF0ZWRJblZlciI6IjM1LjExNy4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 12:32:49 +00:00
Michael Beemer 16626031a3
docs: fixed sem ver example link
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-06-13 15:15:05 -04:00
renovate[bot] 0cddb1add0
chore(deps): update actions/checkout digest to c85c95e (#696)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
digest | `8e5e7e5` -> `c85c95e` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 18:50:09 +00:00
renovate[bot] 3c7cd6cde1
chore(deps): update docker/build-push-action digest to 44ea916 (#695)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[docker/build-push-action](https://togithub.com/docker/build-push-action)
| action | digest | `3b5e802` -> `44ea916` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 16:06:53 +01:00
renovate[bot] e8a88086d4
chore(deps): update cyclonedx/gh-gomod-generate-sbom action to v2 (#689)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[CycloneDX/gh-gomod-generate-sbom](https://togithub.com/CycloneDX/gh-gomod-generate-sbom)
| action | major | `v1` -> `v2` |

---

### Release Notes

<details>
<summary>CycloneDX/gh-gomod-generate-sbom</summary>

###
[`v2`](https://togithub.com/CycloneDX/gh-gomod-generate-sbom/compare/v1...v2)

[Compare
Source](https://togithub.com/CycloneDX/gh-gomod-generate-sbom/compare/v1...v2)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 17:01:41 +00:00
renovate[bot] 33705a6730
fix(deps): update module github.com/open-feature/flagd/core to v0.5.4 (#693)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.5.3` -> `v0.5.4` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 12:13:49 +00:00
renovate[bot] 597068d3c5
chore(deps): update sigstore/cosign-installer digest to 871cdc7 (#688)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `1a22e17` -> `871cdc7` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 07:12:58 +00:00
renovate[bot] d46bc22aeb
chore(deps): update github/codeql-action digest to 83f0fe6 (#686)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `0225834` -> `83f0fe6` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDUuMiIsInVwZGF0ZWRJblZlciI6IjM1LjEwNS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 03:23:37 +00:00
renovate[bot] 4073166cf9
chore(deps): update docker/metadata-action digest to 2c0bd77 (#687)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `c4ee3ad` -> `2c0bd77` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDUuMiIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-08 01:00:42 +00:00
Kavindu Dodanduwa 51c4ef0e95
chore: remove duplicate tar.gz bundling (#692)
## This PR

tar.gz bundling is already handled with widlcard usage `*.tar.gz`. This
caused pipeline failures

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-06-07 17:33:03 -04:00
github-actions[bot] f3fbe6dc6f
chore: release main (#643)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.5.4</summary>

##
[0.5.4](https://github.com/open-feature/flagd/compare/flagd/v0.5.3...flagd/v0.5.4)
(2023-06-07)


### 🧹 Chore

* update otel dependencies
([#649](https://github.com/open-feature/flagd/issues/649))
([2114e41](2114e41c38))


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.5.3
([#634](https://github.com/open-feature/flagd/issues/634))
([1bc7e99](1bc7e99473))
* **deps:** update module
github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.12
([#635](https://github.com/open-feature/flagd/issues/635))
([fe88061](fe88061ed6))
* **deps:** update module
github.com/open-feature/go-sdk-contrib/tests/flagd to v1.2.2
([#651](https://github.com/open-feature/flagd/issues/651))
([9776973](9776973109))


###  New Features

* telemetry improvements
([#653](https://github.com/open-feature/flagd/issues/653))
([ea02cba](ea02cba24b))


### 🔄 Refactoring

* introduce additional linting rules + fix discrepancies
([#616](https://github.com/open-feature/flagd/issues/616))
([aef0b90](aef0b9042d))
</details>

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

##
[0.2.4](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.3...flagd-proxy/v0.2.4)
(2023-06-07)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.5.3
([#634](https://github.com/open-feature/flagd/issues/634))
([1bc7e99](1bc7e99473))


### 🧹 Chore

* update otel dependencies
([#649](https://github.com/open-feature/flagd/issues/649))
([2114e41](2114e41c38))


###  New Features

* telemetry improvements
([#653](https://github.com/open-feature/flagd/issues/653))
([ea02cba](ea02cba24b))


### 🔄 Refactoring

* introduce additional linting rules + fix discrepancies
([#616](https://github.com/open-feature/flagd/issues/616))
([aef0b90](aef0b9042d))
* introduce isyncstore interface
([#660](https://github.com/open-feature/flagd/issues/660))
([c0e2fa0](c0e2fa0073))
</details>

<details><summary>core: 0.5.4</summary>

##
[0.5.4](https://github.com/open-feature/flagd/compare/core/v0.5.3...core/v0.5.4)
(2023-06-07)


###  New Features

* add `sem_ver` jsonLogic evaluator
([#675](https://github.com/open-feature/flagd/issues/675))
([a8d8ab6](a8d8ab6b44))
* add `starts_with` and `ends_with` json evaluators
([#658](https://github.com/open-feature/flagd/issues/658))
([f932b8f](f932b8f4c8))
* telemetry improvements
([#653](https://github.com/open-feature/flagd/issues/653))
([ea02cba](ea02cba24b))


### 🐛 Bug Fixes

* **deps:** update module github.com/bufbuild/connect-go to v1.8.0
([#683](https://github.com/open-feature/flagd/issues/683))
([13bb13d](13bb13daa1))
* **deps:** update module github.com/bufbuild/connect-opentelemetry-go
to v0.3.0 ([#669](https://github.com/open-feature/flagd/issues/669))
([e899435](e899435c29))
* **deps:** update module github.com/prometheus/client_golang to v1.15.1
([#636](https://github.com/open-feature/flagd/issues/636))
([b22279d](b22279df46))
* **deps:** update module github.com/stretchr/testify to v1.8.3
([#662](https://github.com/open-feature/flagd/issues/662))
([2e06d58](2e06d582ee))
* **deps:** update module github.com/stretchr/testify to v1.8.4
([#678](https://github.com/open-feature/flagd/issues/678))
([ca8c9d6](ca8c9d66a0))
* **deps:** update module golang.org/x/mod to v0.10.0
([#682](https://github.com/open-feature/flagd/issues/682))
([16199ce](16199ceac9))
* **deps:** update module golang.org/x/net to v0.10.0
([#644](https://github.com/open-feature/flagd/issues/644))
([ccd9d35](ccd9d351df))
* **deps:** update module golang.org/x/sync to v0.2.0
([#638](https://github.com/open-feature/flagd/issues/638))
([7f4a7db](7f4a7db813))
* **deps:** update module google.golang.org/grpc to v1.55.0
([#640](https://github.com/open-feature/flagd/issues/640))
([c0d7328](c0d7328662))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.15.0
([#665](https://github.com/open-feature/flagd/issues/665))
([9490ed6](9490ed62e2))
* fix connect error code handling for disabled flags
([#670](https://github.com/open-feature/flagd/issues/670))
([86a8012](86a8012efc))
* remove disabled flags from bulk evaluation
([#672](https://github.com/open-feature/flagd/issues/672))
([d2ce988](d2ce98838e))


### 🔄 Refactoring

* introduce additional linting rules + fix discrepancies
([#616](https://github.com/open-feature/flagd/issues/616))
([aef0b90](aef0b9042d))
* introduce isyncstore interface
([#660](https://github.com/open-feature/flagd/issues/660))
([c0e2fa0](c0e2fa0073))


### 🧹 Chore

* refactor json logic evaluator to pass custom operators as options
([#691](https://github.com/open-feature/flagd/issues/691))
([1c9bff9](1c9bff9a52))
* update otel dependencies
([#649](https://github.com/open-feature/flagd/issues/649))
([2114e41](2114e41c38))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-07 16:03:20 -04:00
Kavindu Dodanduwa 1c9bff9a52
chore: refactor json logic evaluator to pass custom operators as options (#691)
Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-06-07 15:57:14 -04:00
renovate[bot] 0da13b1faa
chore(deps): update docker/login-action digest to 465a078 (#690)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `40891eb` -> `465a078` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMTAuMCIsInVwZGF0ZWRJblZlciI6IjM1LjExMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-07 19:25:08 +00:00
Michael Beemer 6638c9a97c
docs: extended the flag configuration documentation (#681)
# This PR

- Includes a description for the full flag configuration
- Expands on the targeting rule conditions, properties, and functions.

### Related Issues

Fixes #680

---------

Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <toddbaert@gmail.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
2023-06-07 10:01:50 -07:00
James Milligan aef0b9042d
refactor: introduce additional linting rules + fix discrepancies (#616)
## This PR

- extends the scope of linting
- fixes all linting issues for the new scope

Signed-off-by: James Milligan <james@omnant.co.uk>
2023-06-07 12:27:08 -04:00
renovate[bot] 13bb13daa1
fix(deps): update module github.com/bufbuild/connect-go to v1.8.0 (#683)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/bufbuild/connect-go](https://togithub.com/bufbuild/connect-go)
| require | minor | `v1.7.0` -> `v1.8.0` |

---

### Release Notes

<details>
<summary>bufbuild/connect-go</summary>

###
[`v1.8.0`](https://togithub.com/bufbuild/connect-go/releases/tag/v1.8.0)

[Compare
Source](https://togithub.com/bufbuild/connect-go/compare/v1.7.0...v1.8.0)

#### What's Changed

##### Enhancements

- Expose HTTP method of unary requests (see
[documentation][http-method-docs]) by
[@&#8203;jhump](https://togithub.com/jhump) and
[@&#8203;akshayjshah](https://togithub.com/akshayjshah) in
[https://github.com/bufbuild/connect-go/pull/502](https://togithub.com/bufbuild/connect-go/pull/502)
and
[https://github.com/bufbuild/connect-go/pull/509](https://togithub.com/bufbuild/connect-go/pull/509)
- Implement `fmt.Stringer` interface for StreamType to improve debug
logging by [@&#8203;svrana](https://togithub.com/svrana) in
[https://github.com/bufbuild/connect-go/pull/495](https://togithub.com/bufbuild/connect-go/pull/495)

##### Bugfixes

- Fix documentation comments to use correct identifier name by
[@&#8203;cuishuang](https://togithub.com/cuishuang) in
[https://github.com/bufbuild/connect-go/pull/498](https://togithub.com/bufbuild/connect-go/pull/498)
- Fix Makefile quotes to handle paths with spaces by
[@&#8203;bufdev](https://togithub.com/bufdev) in
[https://github.com/bufbuild/connect-go/pull/508](https://togithub.com/bufbuild/connect-go/pull/508)
- Always close response body in `CloseRead` by
[@&#8203;pkwarren](https://togithub.com/pkwarren) in
[https://github.com/bufbuild/connect-go/pull/515](https://togithub.com/bufbuild/connect-go/pull/515)

#### New Contributors

- [@&#8203;cuishuang](https://togithub.com/cuishuang) made their first
contribution in
[https://github.com/bufbuild/connect-go/pull/498](https://togithub.com/bufbuild/connect-go/pull/498)
- [@&#8203;svrana](https://togithub.com/svrana) made their first
contribution in
[https://github.com/bufbuild/connect-go/pull/495](https://togithub.com/bufbuild/connect-go/pull/495)

**Full Changelog**:
https://github.com/bufbuild/connect-go/compare/v1.7.0...v1.8.0

[http-method-docs]:
https://connect.build/docs/go/get-requests-and-caching#distinguishing-get-requests

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-31 23:31:59 +00:00
renovate[bot] 16199ceac9
fix(deps): update module golang.org/x/mod to v0.10.0 (#682)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/mod | require | minor | `v0.9.0` -> `v0.10.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-31 19:35:22 +00:00
Florian Bacher a8d8ab6b44
feat: add `sem_ver` jsonLogic evaluator (#675)
Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-05-31 12:17:22 -04:00
renovate[bot] ca8c9d66a0
fix(deps): update module github.com/stretchr/testify to v1.8.4 (#678)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/stretchr/testify](https://togithub.com/stretchr/testify) |
require | patch | `v1.8.3` -> `v1.8.4` |

---

### Release Notes

<details>
<summary>stretchr/testify</summary>

###
[`v1.8.4`](https://togithub.com/stretchr/testify/compare/v1.8.3...v1.8.4)

[Compare
Source](https://togithub.com/stretchr/testify/compare/v1.8.3...v1.8.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNS4xMDIuMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-30 12:58:31 +00:00
Kavindu Dodanduwa d2ce98838e
fix: remove disabled flags from bulk evaluation (#672)
## This PR

Fixes #652 & enhance tests to validate error sates 

Note - had to sync go deps and thus the go mod/sum changes

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-05-29 09:27:11 -07:00
renovate[bot] 60d471ca81
chore(deps): update github/codeql-action digest to 0225834 (#676)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `f0e3dfb` -> `0225834` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45OC40IiwidXBkYXRlZEluVmVyIjoiMzUuOTguNCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-26 04:50:04 +00:00
renovate[bot] 53e357b348
chore(deps): update google-github-actions/release-please-action digest to 51ee8ae (#677)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | digest | `c078ea3` -> `51ee8ae` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45OC40IiwidXBkYXRlZEluVmVyIjoiMzUuOTguNCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-26 00:36:46 +00:00
Kavindu Dodanduwa 86a8012efc
fix: fix connect error code handling for disabled flags (#670)
## This PR

fixes #668 

Fixes incorrect error code mapping, which resulted in error message
`error code: PROVIDER_NOT_READY: connection not made`

With fix, the error code is set to unknown (as there is no appropriate
error code for this error) , and results in message `openfeature:
GENERAL: unknown: FLAG_DISABLED`

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-05-25 12:55:36 -07:00
renovate[bot] 693ec1579f
chore(deps): update github/codeql-action digest to f0e3dfb (#674)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `29b1f65` -> `f0e3dfb` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45OC40IiwidXBkYXRlZEluVmVyIjoiMzUuOTguNCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-25 03:01:08 +00:00
renovate[bot] 9490ed62e2
fix(deps): update module sigs.k8s.io/controller-runtime to v0.15.0 (#665)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[sigs.k8s.io/controller-runtime](https://togithub.com/kubernetes-sigs/controller-runtime)
| require | minor | `v0.14.6` -> `v0.15.0` |

---

### Release Notes

<details>
<summary>kubernetes-sigs/controller-runtime</summary>

###
[`v0.15.0`](https://togithub.com/kubernetes-sigs/controller-runtime/releases/tag/v0.15.0)

[Compare
Source](https://togithub.com/kubernetes-sigs/controller-runtime/compare/v0.14.6...v0.15.0)

### Controller Runtime v0.15

> *A note from the maintainers*
>
> The following release is probably the largest in the history of the
project. Controller Runtime is a foundational piece for almost all
controllers and operators and we're aware that breaking changes are
never an ask for our users, especially while running production
services.
>
> We take breaking changes very seriously and carefully reviewed each
one of these changes to improve the codebase, user experience, and
future maintainability of the project.
>
> The v0.15 release is a stepping stone towards maturity.
>
> As always, please reach out in Slack in #controller-runtime.

## Changes since v0.14.5

#### ⚠️ Breaking Changes

- Make `*http.Client` configurable and use/share the same client by
default
([#&#8203;2122](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2122))
- When using the default Manager configuration, no immediate changes are
needed.
- `client/apiutil.NewDynamicRESTMapper` signature has changed and now
requires an `*http.Client` as parameter.
- `cluster.Cluster` interface requires `GetHTTPClient()` method which
must return an already configured, non-nil, `*http.Client` for the
Cluster. When using `cluster.New` to create Clusters, the client is
created internally if not specified as an `Options` field.
- `cluster.Options.MapperProvider` field now requires a `*rest.Config`
and `*http.Client`.
- Deprecate Component Configuration `config/v1alpha1` types
([#&#8203;2149](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2149),
[#&#8203;2200](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2200))
- The Component Configuration package has been unmaintained for over a
year and is no longer actively developed. There are (currently) no plans
to revive the package, or provide an alternative.
- Users should migrate to a custom implementation that sets
`Manager.Options` directly.
- 👉 Feedback requested: removal of the deprecated types and code is
tracked in
[#&#8203;895](https://togithub.com/kubernetes-sigs/controller-runtime/issues/895).
- Remove dependency injection functions
([#&#8203;2134](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2134),
[#&#8203;2120](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2120))
- The package `pkg/inject` has been removed, this package contained long
deprecated injection functions (like `InjectScheme`, `InjectLogger`,
`InjectConfig`, `InjectClient`, `InjectCache`, etc.).
- The runtime injection functionality has been deprecated since
Controller Runtime 0.10; all of the above fields can be passed from the
`Manager` to structs or interfaces that need them.
- Improve `builder` package capabilities and general UX
([#&#8203;2135](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2135))
- `builder.Builder.Watches` signature has changed, it now takes a
`client.Object` instead of a `source.Source` as first argument.
        -   For `source.Source`, use `WatchesRawSource`.
- `builder.Builder.WatchesMetadata` has been added to simplify watching
`PartialObjectMetadata` objects.
- Refactor cache.Options, deprecate MultiNamespacedCacheBuilder
([#&#8203;2157](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2157),
[#&#8203;2166](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2166))
- `cache.Options.Namespace` has been removed in favor of
`cache.Options.Namespaces`, a slice.
    -   `cache.Options.Resync` has been renamed to `SyncPeriod`.
- `cache.Options.DefaultSelector` has been removed and split in two
fields:
        -   `cache.Options.DefaultLabelSelector`
        -   `cache.Options.DefaultFieldSelector`
- `cache.Options.DefaultTransform` was added to provide a global
transform function.
- `cache.Options.UnsafeDisableDeepCopy` was added to provide a global
toggle to disable DeepCopy of the objects from the cache before
returning them to clients.
    -   The following `[..]ByObject` field have been refactored:
- `cache.Options.SelectorsByObject` has been removed, use
`cache.Options.ByObject[Object].Field` and
`cache.Options.ByObject[Object].Label`
- `cache.Options.UnsafeDisableDeepCopyByObject` has been removed, use
`cache.Options.ByObject[Object].UnsafeDisableDeepCopy`.
- `cache.Options.TransformByObject` has been removed, use
`cache.Options.ByObject[Object].Transform`.
- `cache.ObjectAll` has been removed. This type was previously used to
set selectors or transformation functions for every object, use the
newly introduced default global options instead.
- Add context to EventHandler(s)
([#&#8203;2139](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2139))
- `handler.EventHandler` and `handler.Funcs` interfaces require
`context.Context` as the first parameter for every method.
- `handler.MapFunc` signature has changed and now requires a
`context.Context`.
- Add client.{GroupVersionKindFor, IsObjectNamespaced}
([#&#8203;2136](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2136))
- The `client.Client` interface now requires and exposes these helper
functions:
- `GroupVersionKindFor(Object)` which returns the
`schema.GroupVersionKind` for the object.
- `IsObjectNamespaced(Object)` which returns `true` if the object's
GroupVersionKind is namespaced, or `false` for global ones.
- Remove DelegatedClient, move all related options in `client.New`
([#&#8203;2150](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2150))
- `client.NewDelegatingClient` constructor and
`client.NewDelegatingClientInput` struct have been removed.
- The DelegatingClient created a Client backed by a cache, use
`client.New` and set `client.Options.Cache` to customize the client's
caching behavior.
- `cluster.NewClientFunc` has been moved to `client.NewClientFunc`.
    -   `cluster.ClientOptions` has been removed.
    -   `cluster.DefaultNewClient` has been removed.
    -   `cluster.ClientBuilderWithOptions` has been removed.
- Expose Manager.Cache/Client options, deprecate older options
([#&#8203;2199](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2199),
[#&#8203;2177](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2177))
- `manager.Options.Cache` is now the preferred way to customize the
cache options for the manager.
- Users can also keep using `manager.Options.NewCache`, which has now
been marked as a low level primitive.
- `manager.Options.Client` is now the preferred way to customize the
client options for the manager.
- Users can also keep using `manager.Options.NewClient`, which has now
been marked as a low level primitive.
- `manager.Options.SyncPeriod` has been deprecated in favor of
`manager.Options.Cache.SyncPeriod`.
- `manager.Options.Namespace` has been deprecated in favor of
`manager.Options.Cache.Namespaces`.
- `manager.Options.DryRunClient` has been deprecated in favor of
`manager.Options.Client.DryRun`.
- `manager.Options.ClientDisableCacheFor` has been deprecated in favor
of `manager.Options.Client.Cache.DisableCacheFor`.
- The following webhook server options have been deprecated, use
`manager.WebhookServer` instead.
        -   `manager.Options.Port`
        -   `manager.Options.Host`
        -   `manager.Options.CertDir`
        -   `manager.Options.TLSOpts`
- Remove `cache.BuilderWithOptions`
([#&#8203;2300](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2300))
- Add constructors for `webhook/conversion`, remove
`webhook/admission.GetDecoder()`
([#&#8203;2144](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2144))
- There are two set of changes related to the webhooks and how they're
exposed. For users using the Manager, there should be minimal to no
required changes.
- `webhook/admission/Webhook.GetDecoder()` method has been removed, it
was unused before and relied on runtime dependency injection.
- `webhook/conversion.Webhook` struct has been un-exported. Users should
use `webhook/conversion.NewWebhookHandler` instead.
-   `pkg/webhook/admission`:
- Use `Result.Message` instead of `Result.Reason`
([#&#8203;1539](https://togithub.com/kubernetes-sigs/controller-runtime/issues/1539))
- `Validator` and `CustomValidator` interfaces have been modified to
allow returning warnings
([#&#8203;2014](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2014))
- Testing: Fake client status handling
([#&#8203;2259](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2259))
- Added a new `WithStatusSubresource` option and pre-populating it with
        all in-tree resources that have a status subresource
- `Update` and `Patch` methods now don't change the status for any such
        resource anymore
- The status clients `Update` and `Patch` methods now only change the
status
        for any such resource
- Remove high cardinality metrics
([#&#8203;2217](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2217),
[#&#8203;2298](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2298))
    -   `rest_client_request_latency_seconds`
    -   `rest_client_request_duration_seconds`
    -   `rest_client_request_size_bytes`
    -   `rest_client_response_size_bytes`
- Allow passing a custom webhook server
([#&#8203;2293](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2293),
[#&#8203;2329](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2329))
    -   The `webhook.Server` struct is now an interface
- `webhook.NewServer` can be used to pass in and customize the default
server
- Flatten fields in controller.Options
([#&#8203;2307](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2307))
- Update fake client deletionTimestamp behavior
([#&#8203;2316](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2316))
- The fake client will panic if initialized with an object that has a
DeletionTimestamp and no finalizer
- The fake client will silently ignore a DeletionTimestamp on an object
in a Create request, matching the behavior of the kube-apiserver
- Unexport delegating logger, remove async init
([#&#8203;2317](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2317))
- `log.DelegatingLogSink` has been unexported, this logger should never
be used on its own, and it's only meant to be used within
controller-runtime initialization process.
- Previously, when the `pkg/log` package was imported, there was an
`init` function that spawned a goroutine, which set a null logger after
30 seconds. Now this logic has been removed, and instead incorporated
into the delegating logger private implementation.
- Change webhook request received / response written logs to log level 4
([#&#8203;2334](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2334))
- Use and offer a single dynamic lazy RESTMapper
([#&#8203;2116](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2116),
[#&#8203;2296](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2296))
- The following options have been removed: `WithCustomMapper`,
`WithExperimentalLazyMapper`, `WithLazyDiscovery`, `WithLimiter`.
    -   The `DynamicRESTMapperOption` type has been removed.

####  New Features

- Add cross-version compatibility with client-go 1.27
([#&#8203;2223](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2223))
- Introduce pprof server to manager
([#&#8203;1943](https://togithub.com/kubernetes-sigs/controller-runtime/issues/1943))
    -   To enable, use `Manager.Options.PprofBindAddress`.
- Added interceptor client to intercept calls to a client
([#&#8203;2248](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2248)
[#&#8203;2306](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2306))
- Add `reconcile.TerminalError(...)`
([#&#8203;2325](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2325))
- By wrapping an error with the above package-level function, the
controller won't retry the request again in an exponential backoff loop.
- The error is logged, and the
`controller_runtime_terminal_reconcile_errors_total` metric is
incremented.

#### 🐛 Bug Fixes

- Use correct context to cancel "list and watch" & wait for all
informers to complete
([#&#8203;2121](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2121))
- Client: use passed in Cache.DisableFor option
([#&#8203;2303](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2303))
- Fix race condition in channel source
([#&#8203;2286](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2286))
- ForceOwnership should work with subresources
([#&#8203;2257](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2257))
- Fix error string in CacheReader.List
([#&#8203;2256](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2256))
- Fix a bug in multinamespaced cache implementation
([#&#8203;2252](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2252))
- Allow lazy restmapper to work with CRDs created at runtime
([#&#8203;2208](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2208))
- Set DeleteStateUnknown in DeleteEvent when obj is
DeletedFinalStateUnknown
([#&#8203;2212](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2212))
- Allow to set GracefulShutdownTimeout to -1, disabling timeouts
([#&#8203;2169](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2169))
- pkg/certwatcher: Start should retry for 10s when adding files
([#&#8203;2160](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2160))
- Don't share error concurrently in test
([#&#8203;2158](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2158))

#### 🌱 Others

- Improve unstructured serialisation
([#&#8203;2147](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2147))
- Handle TLSOpts.GetCertificate in webhook
([#&#8203;2291](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2291))
- Kind source should expose type information on timeout
([#&#8203;2290](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2290))
- Fakeclient: Add support for evictions
([#&#8203;2305](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2305))
- envtest: set default webhook options for polling
([#&#8203;2289](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2289))
- Add client.InNamespace("xyz").AsSelector()
([#&#8203;2282](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2282))
- Update golanci-lint script
([#&#8203;2151](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2151))
- Preserve unstructured object GVKs in cache.Options.ByObject
([#&#8203;2246](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2246))
- Don't call defaultOpts for MultiNamespaceCache twice
([#&#8203;2234](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2234))
- GVKForObject should handle multiple GVKs in Scheme gracefully
([#&#8203;2192](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2192))
- verify.sh: verify generate & modules (in CI)
([#&#8203;2186](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2186))
- code clean for pkg/envtest/server.go
([#&#8203;2180](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2180))
- Return an error if no httpClient is provided for
`NewDynamicRESTMapper`
([#&#8203;2178](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2178))
- Use runtime.Unstructured interface instead of Unstructured struct
([#&#8203;2168](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2168))
- Return an error if no httpClient is provided
([#&#8203;2164](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2164))
- Return the error from rest.HTTPClientFor instead of hiding it
([#&#8203;2161](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2161))
- fix default value for cfg.Burst
([#&#8203;2142](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2142))
- Add more linters
([#&#8203;2133](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2133))
- Remove pkg/patterns
([#&#8203;2132](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2132))
- Further cleanup internal/informers
([#&#8203;2130](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2130))
- Simplify cache.objectTypeForListObject
([#&#8203;2131](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2131))
- Refactor internal cache/informers map impl
([#&#8203;2103](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2103))
- client/cache/client_cache.go should be called resources
([#&#8203;2111](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2111))
- Remove reviewers which are also approvers
([#&#8203;2109](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2109))
- Use HTTPClient to create the API Reader
([#&#8203;2163](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2163))
- Update SECURITY_CONTACTS and maintainer list
([#&#8203;2318](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2318))
- Update builtin webhook paths
([#&#8203;2319](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2319))
- Make metrics and health probe servers be Runnables
([#&#8203;2275](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2275))
- Revert: move health probes to runnable
([#&#8203;2321](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2321))
- Fix comment on MultiNamespaceCache
([#&#8203;2323](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2323))
- Cleanup webhook logging
([#&#8203;2326](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2326))
- Add certwatcher callback
([#&#8203;2301](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2301))
- Fix a bug in multinamespaced cache implementation
([#&#8203;2288](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2288))

#### 🌱 Dependencies

- Bump Go to 1.20
([#&#8203;2279](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2279))
- Bump github.com/go-logr/logr from v1.2.3 to v1.2.4
([#&#8203;2262](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2262))
- Bump github.com/go-logr/zapr from v1.2.3 to v1.2.4
([#&#8203;2320](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2320))
- Bump github.com/onsi/ginkgo/v2 from v2.6.1 to v2.9.5
([#&#8203;2123](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2123)
[#&#8203;2155](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2155)
[#&#8203;2194](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2194)
[#&#8203;2205](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2205)
[#&#8203;2224](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2224)
[#&#8203;2233](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2233)
[#&#8203;2251](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2251)
[#&#8203;2311](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2311)
[#&#8203;2328](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2328))
- Bump github.com/onsi/gomega from v1.24.1 to v1.27.7
([#&#8203;2106](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2106)
[#&#8203;2137](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2137)
[#&#8203;2156](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2156)
[#&#8203;2206](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2206)
[#&#8203;2227](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2227)
[#&#8203;2232](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2232)
[#&#8203;2260](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2260)
[#&#8203;2340](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2340))
- Bump github.com/prometheus/client_golang from v1.14.0 to v1.15.1
([#&#8203;2280](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2280)
[#&#8203;2310](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2310))
- Bump github.com/prometheus/client_model from v0.3.0 to v0.4.0
([#&#8203;2312](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2312))
- Bump go.uber.org/goleak from v1.2.0 to v1.2.1
([#&#8203;2195](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2195))
- Bump golang.org/x/sys from v0.3.0 to v0.8.0
([#&#8203;2124](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2124)
[#&#8203;2225](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2225)
[#&#8203;2270](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2270)
[#&#8203;2309](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2309))
- Bump k8s.io dependencies to 0.27.2
([#&#8203;2145](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2145)
[#&#8203;2330](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2330)
[#&#8203;2333](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2333))
- Bump k8s.io/klog/v2 from v2.80.1 to v2.90.1
([#&#8203;2138](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2138)
[#&#8203;2226](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2226))
- Bump sigs.k8s.io/controller-tools to v0.11.3 and apidiff to v0.5.0
([#&#8203;2187](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2187))
- Use Go 1.19 in golangci-lint action
([#&#8203;2272](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2272))
- Bump golangci-lint to v1.52.1
([#&#8203;2188](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2188)
[#&#8203;2284](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2284))
- Bump kubebuilder-release-tools to v0.3.0
([#&#8203;2126](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2126))

📖 Additionally, there have been 4 contributions to our
documentation and book.
([#&#8203;2203](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2203),
[#&#8203;2201](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2201),
[#&#8203;2162](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2162),
[#&#8203;2170](https://togithub.com/kubernetes-sigs/controller-runtime/issues/2170))

*Thanks to all our contributors!* 😊

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45OC40IiwidXBkYXRlZEluVmVyIjoiMzUuOTguNCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-24 14:55:39 +00:00
renovate[bot] e899435c29
fix(deps): update module github.com/bufbuild/connect-opentelemetry-go to v0.3.0 (#669)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/bufbuild/connect-opentelemetry-go](https://togithub.com/bufbuild/connect-opentelemetry-go)
| require | minor | `v0.2.0` -> `v0.3.0` |

---

### Release Notes

<details>
<summary>bufbuild/connect-opentelemetry-go</summary>

###
[`v0.3.0`](https://togithub.com/bufbuild/connect-opentelemetry-go/releases/tag/v0.3.0)

[Compare
Source](https://togithub.com/bufbuild/connect-opentelemetry-go/compare/v0.2.0...v0.3.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Other changes

- Upgrade the otel from 1.15.1/v0.38.1 to version 1.16.0/0.39.0 by
[@&#8203;Tochemey](https://togithub.com/Tochemey) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/111](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/111)
- Change references from alpha to stable by
[@&#8203;joshcarp](https://togithub.com/joshcarp) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/112](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/112)
- Update to semconv/v1.20.0 by
[@&#8203;joshcarp](https://togithub.com/joshcarp) in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/113](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/113)

#### New Contributors

- [@&#8203;Tochemey](https://togithub.com/Tochemey) made their first
contribution in
[https://github.com/bufbuild/connect-opentelemetry-go/pull/111](https://togithub.com/bufbuild/connect-opentelemetry-go/pull/111)

**Full Changelog**:
https://github.com/bufbuild/connect-opentelemetry-go/compare/v0.2.0...v0.3.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45OC40IiwidXBkYXRlZEluVmVyIjoiMzUuOTguNCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-24 10:45:30 +00:00
renovate[bot] 4025263819
chore(deps): update github/codeql-action digest to 29b1f65 (#666)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `b2c19fb` -> `29b1f65` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45OC40IiwidXBkYXRlZEluVmVyIjoiMzUuOTguNCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-24 06:09:02 +00:00
renovate[bot] 233a6d6619
chore(deps): update sigstore/cosign-installer digest to 1a22e17 (#663)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `dd6b2e2` -> `1a22e17` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45Ny4wIiwidXBkYXRlZEluVmVyIjoiMzUuOTcuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-24 02:56:45 +00:00
Florian Bacher f932b8f4c8
feat: add `starts_with` and `ends_with` json evaluators (#658)
Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-05-23 16:52:44 -04:00
renovate[bot] 07407a31e3
chore(deps): update github/codeql-action digest to b2c19fb (#629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-23 14:45:41 -04:00
renovate[bot] 2e06d582ee
fix(deps): update module github.com/stretchr/testify to v1.8.3 (#662)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/stretchr/testify](https://togithub.com/stretchr/testify) |
require | patch | `v1.8.2` -> `v1.8.3` |

---

### Release Notes

<details>
<summary>stretchr/testify</summary>

###
[`v1.8.3`](https://togithub.com/stretchr/testify/compare/v1.8.2...v1.8.3)

[Compare
Source](https://togithub.com/stretchr/testify/compare/v1.8.2...v1.8.3)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45NS4xIiwidXBkYXRlZEluVmVyIjoiMzUuOTUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-19 04:12:02 +00:00
renovate[bot] b28e7d93bb
chore(deps): update sigstore/cosign-installer digest to dd6b2e2 (#661)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `03d0fec` -> `dd6b2e2` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS44OS4xIiwidXBkYXRlZEluVmVyIjoiMzUuODkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-18 04:23:28 +00:00
James Milligan c0e2fa0073
refactor: introduce isyncstore interface (#660)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- decouples the sync store from sync server startup, allowing for
alternative sync store implementations to be introduced

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: James Milligan <james@omnant.co.uk>
2023-05-17 14:28:34 +01:00
renovate[bot] 93e708e979
chore(deps): update sigstore/cosign-installer digest to 03d0fec (#657)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `46b5db7` -> `03d0fec` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS44Ny4xIiwidXBkYXRlZEluVmVyIjoiMzUuODcuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 20:13:01 +00:00
renovate[bot] 8f479bdc72
chore(deps): update actions/setup-go digest to fac708d (#654)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/setup-go](https://togithub.com/actions/setup-go) | action |
digest | `4d34df0` -> `fac708d` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43OS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 17:45:08 +00:00
renovate[bot] cb8be62b21
chore(deps): update sigstore/cosign-installer digest to 46b5db7 (#656)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `84448ba` -> `46b5db7` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS44Ni4yIiwidXBkYXRlZEluVmVyIjoiMzUuODYuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 13:07:13 +00:00
renovate[bot] c4636a9e0a
chore(deps): update codecov/codecov-action digest to eaaf4be (#655)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [codecov/codecov-action](https://togithub.com/codecov/codecov-action)
| action | digest | `894ff02` -> `eaaf4be` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43OS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-16 05:09:44 +00:00
Kavindu Dodanduwa ea02cba24b
feat: telemetry improvements (#653)
## This PR

note - Includes minor refactoring, review commit by commit for for more
clarity

Fixes both #646 &  #650

Enrich flag sync span with more attributes. Renamed span name from
`setState` to `flagSync`.

Additional attributes,

- `feature_flag.sync_type` : Mapping to internal sync type (All, Add,
Update, Delete) for better visibility
- `feature_flag.change_count`: Number of flag configurations changed
through this sync


![image](https://github.com/open-feature/flagd/assets/8186721/421b9499-e1b1-495e-a2ce-e8f5a0a251d2)


The `reasons` metric now contains a flag key for valid (non-error)
evaluations


![image](https://github.com/open-feature/flagd/assets/8186721/8003528e-7e51-46b1-b543-dce5fa0e6dd0)

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-05-15 12:53:03 -07:00
renovate[bot] 9776973109
fix(deps): update module github.com/open-feature/go-sdk-contrib/tests/flagd to v1.2.2 (#651)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/go-sdk-contrib/tests/flagd](https://togithub.com/open-feature/go-sdk-contrib)
| require | patch | `v1.2.1` -> `v1.2.2` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43OS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-11 20:22:01 +00:00
renovate[bot] c0d7328662
fix(deps): update module google.golang.org/grpc to v1.55.0 (#640)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google.golang.org/grpc](https://togithub.com/grpc/grpc-go) | require
| minor | `v1.54.0` -> `v1.55.0` |

---

### Release Notes

<details>
<summary>grpc/grpc-go</summary>

### [`v1.55.0`](https://togithub.com/grpc/grpc-go/releases/tag/v1.55.0):
Release 1.55.0

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.54.1...v1.55.0)

### Behavior Changes

- xds: enable federation support by default
([#&#8203;6151](https://togithub.com/grpc/grpc-go/issues/6151))
- status: `status.Code` and `status.FromError` handle wrapped errors
([#&#8203;6031](https://togithub.com/grpc/grpc-go/issues/6031) and
[#&#8203;6150](https://togithub.com/grpc/grpc-go/issues/6150))
- Special Thanks: [@&#8203;psyhatter](https://togithub.com/psyhatter)

### New Features

- xds/xdsclient: support `ignore_resource_deletion` server feature as
per gRFC
[A53](https://togithub.com/grpc/proposal/blob/master/A53-xds-ignore-resource-deletion.md)
([#&#8203;6035](https://togithub.com/grpc/grpc-go/issues/6035))
- security/advancedtls: add min/max TLS version selection options
([#&#8203;6007](https://togithub.com/grpc/grpc-go/issues/6007))
- Special Thanks: [@&#8203;joeljeske](https://togithub.com/joeljeske)

### Bug Fixes

- xds: stop routing RPCs to deleted clusters
([#&#8203;6125](https://togithub.com/grpc/grpc-go/issues/6125))
- client: fix race between stream creation and GOAWAY receipt, which
could lead to spurious UNAVAILABLE stream errors
([#&#8203;6142](https://togithub.com/grpc/grpc-go/issues/6142))

### Performance Improvements

- server: improve stream handler goroutine worker allocation when
[`NumStreamWorkers`](https://pkg.go.dev/google.golang.org/grpc#NumStreamWorkers)
is used ([#&#8203;6004](https://togithub.com/grpc/grpc-go/issues/6004))
- Special Thanks:
[@&#8203;SaveTheRbtz](https://togithub.com/SaveTheRbtz)

### [`v1.54.1`](https://togithub.com/grpc/grpc-go/releases/tag/v1.54.1):
Release 1.54.1

[Compare
Source](https://togithub.com/grpc/grpc-go/compare/v1.54.0...v1.54.1)

### Bug Fixes

- credentials/alts: revert a change that causes a crash in the
handshaker

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43MS40IiwidXBkYXRlZEluVmVyIjoiMzUuNzEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-11 03:42:25 +00:00
renovate[bot] fe88061ed6
fix(deps): update module github.com/open-feature/go-sdk-contrib/providers/flagd to v0.1.12 (#635)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/go-sdk-contrib/providers/flagd](https://togithub.com/open-feature/go-sdk-contrib)
| require | patch | `v0.1.9` -> `v0.1.12` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43MS4wIiwidXBkYXRlZEluVmVyIjoiMzUuNzUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-11 00:54:26 +00:00
Kavindu Dodanduwa 2114e41c38
chore: update otel dependencies (#649)
## This PR

Upgrade OTEL dependencies. PR fix API deprecations & upgrade to latest
recommendations.

OTEL Go release notes -
https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0

Note - Refer OTEL Proposal [1] & PR [2] for breaking changes

[1] - https://github.com/open-telemetry/opentelemetry-go/issues/3995
[2] - https://github.com/open-telemetry/opentelemetry-go/pull/4018

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-05-10 12:28:59 -07:00
renovate[bot] 7f4a7db813
fix(deps): update module golang.org/x/sync to v0.2.0 (#638)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/sync | require | minor | `v0.1.0` -> `v0.2.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43MS40IiwidXBkYXRlZEluVmVyIjoiMzUuNzEuNCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-10 16:08:24 +00:00
renovate[bot] ccd9d351df
fix(deps): update module golang.org/x/net to v0.10.0 (#644)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| golang.org/x/net | require | minor | `v0.9.0` -> `v0.10.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43NC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNzQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-10 11:36:22 +00:00
renovate[bot] b22279df46
fix(deps): update module github.com/prometheus/client_golang to v1.15.1 (#636)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)
| require | patch | `v1.15.0` -> `v1.15.1` |

---

### Release Notes

<details>
<summary>prometheus/client_golang</summary>

###
[`v1.15.1`](https://togithub.com/prometheus/client_golang/releases/tag/v1.15.1)

[Compare
Source](https://togithub.com/prometheus/client_golang/compare/v1.15.0...v1.15.1)

#### Changes

- \[BUGFIX] Fixed promhttp.Instrument\* handlers wrongly trying to
attach exemplar to unsupported metrics (e.g. summary), \
causing panics
[#&#8203;1253](https://togithub.com/prometheus/client_golang/issues/1253)

**Full Changelog**:
https://github.com/prometheus/client_golang/compare/v1.15.0...v1.15.1

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43MS4wIiwidXBkYXRlZEluVmVyIjoiMzUuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-10 06:23:41 +00:00
renovate[bot] cbfb7d45d4
chore(deps): update sigstore/cosign-installer digest to 84448ba (#633)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `66dd3f3` -> `84448ba` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43MS4wIiwidXBkYXRlZEluVmVyIjoiMzUuNzQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-10 03:25:09 +00:00
renovate[bot] 707360d03a
chore(deps): update anchore/sbom-action digest to 4d571ad (#645)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `422cb34` -> `4d571ad` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43NC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNzQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 22:30:59 +00:00
Michael Beemer 90273a8e49
chore: fixed typos in the flagd telemetry docs
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-05-09 17:00:53 -04:00
Michael Beemer bc00edd58d
chore: fixed typo in configuration docs
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-05-09 16:52:08 -04:00
renovate[bot] 0ccd0f048d
chore(deps): update marocchino/sticky-pull-request-comment digest to f61b6cf (#628)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[marocchino/sticky-pull-request-comment](https://togithub.com/marocchino/sticky-pull-request-comment)
| action | digest | `3d60a5b` -> `f61b6cf` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS41NC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNTQuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 17:24:02 +00:00
renovate[bot] 1bc7e99473
fix(deps): update module github.com/open-feature/flagd/core to v0.5.3 (#634)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.5.2` -> `v0.5.3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43MS4wIiwidXBkYXRlZEluVmVyIjoiMzUuNzQuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-09 13:44:14 +00:00
Kavindu Dodanduwa 5060a0e547
chore: adding licenses to release archives and provide zip archive for windows (#642)
## This PR

Fixes https://github.com/open-feature/flagd/issues/581 &
https://github.com/open-feature/flagd/issues/639

**Third-party license artifacts
https://github.com/open-feature/flagd/issues/581**

This PR improved release builds to add
`<module>-third-party-license.tar.gz` to release artifacts. This
artifact contains third-party licenses extracted using
https://github.com/google/go-licenses.

This is an attempt to credit our dependencies and be license compliant
(ex:- retaining copyright notices) where possible.

Note that, the go-license tool emits error if it fails to identify
licenses (ex:- for non-go codes/internal deps). This breaks the build
(as it writes to stderr) and the workaround was to use
`continue-on-error: true`. Unfortunately, GH Actions do not provide any
better alternative and refer [1] for ongoing discussions. Errors are
accumulated to artifact `module-license-errors.txt` for anyone's
interest.

**Artefact archive format for Windows
https://github.com/open-feature/flagd/issues/639**

PR further set `.zip` archiving for Windows (i386 & x86-64)

### How to test

An example build was tested and a sample release is available here [2].
Please see `license.tar.gz` & `licenseErrors.txt` for third party
license content

[1] - https://github.com/actions/runner/issues/2347
[2] -
https://github.com/Kavindu-Dodan/flag-test-ground/releases/tag/v0.1.7

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-05-08 12:49:15 -04:00
github-actions[bot] ef5af58d1e
chore: release main (#615)
🤖 I have created a release *beep* *boop*
---


<details><summary>flagd: 0.5.3</summary>

##
[0.5.3](https://github.com/open-feature/flagd/compare/flagd/v0.5.2...flagd/v0.5.3)
(2023-05-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.5.2
([#613](https://github.com/open-feature/flagd/issues/613))
([218f435](218f435f02))
* **deps:** update module github.com/spf13/cobra to v1.7.0
([#587](https://github.com/open-feature/flagd/issues/587))
([12b3477](12b34773a6))


###  New Features

* Introduce connect traces
([#624](https://github.com/open-feature/flagd/issues/624))
([28bac6a](28bac6a54a))
</details>

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

##
[0.2.3](https://github.com/open-feature/flagd/compare/flagd-proxy/v0.2.2...flagd-proxy/v0.2.3)
(2023-05-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/open-feature/flagd/core to v0.5.2
([#613](https://github.com/open-feature/flagd/issues/613))
([218f435](218f435f02))
* **deps:** update module github.com/spf13/cobra to v1.7.0
([#587](https://github.com/open-feature/flagd/issues/587))
([12b3477](12b34773a6))


###  New Features

* Introduce connect traces
([#624](https://github.com/open-feature/flagd/issues/624))
([28bac6a](28bac6a54a))
</details>

<details><summary>core: 0.5.3</summary>

##
[0.5.3](https://github.com/open-feature/flagd/compare/core/v0.5.2...core/v0.5.3)
(2023-05-04)


### 🐛 Bug Fixes

* **deps:** update module github.com/bufbuild/connect-go to v1.6.0
([#585](https://github.com/open-feature/flagd/issues/585))
([8f2f467](8f2f467af5))
* **deps:** update module github.com/bufbuild/connect-go to v1.7.0
([#625](https://github.com/open-feature/flagd/issues/625))
([1b24fc9](1b24fc923a))
* **deps:** update module github.com/open-feature/open-feature-operator
to v0.2.34 ([#604](https://github.com/open-feature/flagd/issues/604))
([3e6a84b](3e6a84b455))
* **deps:** update module github.com/prometheus/client_golang to v1.15.0
([#608](https://github.com/open-feature/flagd/issues/608))
([0597a8f](0597a8f23d))
* **deps:** update module github.com/rs/cors to v1.9.0
([#609](https://github.com/open-feature/flagd/issues/609))
([97066c1](97066c107d))
* **deps:** update module github.com/rs/xid to v1.5.0
([#614](https://github.com/open-feature/flagd/issues/614))
([e3dfbc6](e3dfbc6753))
* **deps:** update module golang.org/x/crypto to v0.8.0
([#595](https://github.com/open-feature/flagd/issues/595))
([36016d7](36016d7940))


###  New Features

* Introduce connect traces
([#624](https://github.com/open-feature/flagd/issues/624))
([28bac6a](28bac6a54a))


### 🧹 Chore

* add instructions for windows and fix failing unit tests
([#632](https://github.com/open-feature/flagd/issues/632))
([6999d67](6999d67225))
</details>

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

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-04 09:43:36 -04:00
RealAnna 6999d67225
chore: add instructions for windows and fix failing unit tests (#632)
Signed-off-by: RealAnna <89971034+RealAnna@users.noreply.github.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2023-05-04 08:16:25 -04:00
Kavindu Dodanduwa 28bac6a54a
feat: Introduce connect traces (#624)
## This PR

Partially address issue https://github.com/open-feature/flagd/issues/620

Introduce connect interceptor[1] to add distributed tracing support for
flagd.

With interceptor and sdk tracing, we can get out of the box distributed
tracing. Consider following screens,


![image](https://user-images.githubusercontent.com/8186721/232918928-c4c75290-d1fd-4021-9435-d5e079084bc7.png)


![image](https://user-images.githubusercontent.com/8186721/232918838-0dbb488b-e7df-4c42-9bd1-960879291541.png)

note - follow up pr is ready at
https://github.com/open-feature/go-sdk-contrib


[1] - https://connect.build/docs/go/observability/

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-04-25 12:41:41 -07:00
renovate[bot] 2dd59f824e
chore(deps): update codecov/codecov-action digest to 894ff02 (#627)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [codecov/codecov-action](https://togithub.com/codecov/codecov-action)
| action | digest | `40a12dc` -> `894ff02` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS41NC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNTQuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-20 22:55:32 +00:00
renovate[bot] 1b24fc923a
fix(deps): update module github.com/bufbuild/connect-go to v1.7.0 (#625)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/bufbuild/connect-go](https://togithub.com/bufbuild/connect-go)
| require | minor | `v1.6.0` -> `v1.7.0` |

---

### Release Notes

<details>
<summary>bufbuild/connect-go</summary>

###
[`v1.7.0`](https://togithub.com/bufbuild/connect-go/releases/tag/v1.7.0)

[Compare
Source](https://togithub.com/bufbuild/connect-go/compare/v1.6.0...v1.7.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

As of this release, the Connect protocol supports performing idempotent,
side-effect free requests using HTTP GETs. This makes it easier to cache
responses in the browser, on your CDN, or in proxies and other
middleboxes.

> **Note**
> This functionality is *only* supported when using the Connect
protocol—using a Connect client with a Connect server. When using
`grpc-go` clients, or `connect-go` clients configured with the
`WithGRPC` or `WithGRPCWeb` options, all requests will continue to be
HTTP POSTs.

To opt into GET support for a given Protobuf RPC, you must mark it as
being side-effect free using the
[MethodOptions.IdempotencyLevel](e5679c01e8/src/google/protobuf/descriptor.proto (L795))
option:

```proto
service ElizaService {
  rpc Say(stream SayRequest) returns (SayResponse) {
    option idempotency_level = NO_SIDE_EFFECTS;
  }
}
```

With this schema change, handlers will automatically support both GET
and POST requests for this RPC. However, clients will continue to use
POST requests by default, even when GETs are possible. To make clients
use GETs for side effect free RPCs, use the `WithHTTPGet` option:

```go
client := elizav1connect.NewElizaServiceClient(
    http.DefaultClient,
    connect.WithHTTPGet(),
)
```

This functionality is *not* yet supported by other Connect
implementations (including `connect-es`), but hang tight! We're working
on it. For more information, please check the [full
documentation](https://connect.build/docs/go/get-requests-and-caching).

##### Enhancements

- Connect HTTP Get support by
[@&#8203;jchadwick-buf](https://togithub.com/jchadwick-buf) in
[https://github.com/bufbuild/connect-go/pull/478](https://togithub.com/bufbuild/connect-go/pull/478)
- Add APIs to make and handle conditional GETs by
[@&#8203;akshayjshah](https://togithub.com/akshayjshah) in
[https://github.com/bufbuild/connect-go/pull/494](https://togithub.com/bufbuild/connect-go/pull/494)

##### Bugfixes

- Fix `WithCompression` to match docs by
[@&#8203;jhump](https://togithub.com/jhump) in
[https://github.com/bufbuild/connect-go/pull/493](https://togithub.com/bufbuild/connect-go/pull/493)

**Full Changelog**:
https://github.com/bufbuild/connect-go/compare/v1.6.0...v1.7.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40OS4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDkuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-20 00:37:21 +00:00
renovate[bot] 5aad601f82
chore(deps): update sigstore/cosign-installer digest to 66dd3f3 (#622)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `9e9de22` -> `66dd3f3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40OS4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDkuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-19 04:36:28 +00:00
renovate[bot] e078fe2930
chore(deps): update docker/login-action digest to 40891eb (#621)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/login-action | action | digest | `65b78e6` -> `40891eb` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40OS4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDkuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-19 01:19:39 +00:00
renovate[bot] c55090b726
chore(deps): update actions/deploy-pages digest to af48cf9 (#623)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/deploy-pages](https://togithub.com/actions/deploy-pages) |
action | digest | `73e62e6` -> `af48cf9` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40OS4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDkuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 20:41:02 +00:00
renovate[bot] 32ae5223b1
chore(deps): update docker/metadata-action digest to c4ee3ad (#619)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `3f6690a` -> `c4ee3ad` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDkuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 15:54:03 +00:00
renovate[bot] e5b8465c94
chore(deps): update actions/configure-pages digest to f156874 (#618)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[actions/configure-pages](https://togithub.com/actions/configure-pages)
| action | digest | `7110e9e` -> `f156874` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-16 18:07:54 +00:00
renovate[bot] 36016d7940
fix(deps): update module golang.org/x/crypto to v0.8.0 (#595)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [golang.org/x/crypto](https://togithub.com/golang/crypto) | require |
minor | `v0.7.0` -> `v0.8.0` |

---

### Release Notes

<details>
<summary>golang/crypto</summary>

###
[`v0.8.0`](https://togithub.com/golang/crypto/compare/v0.7.0...v0.8.0)

[Compare
Source](https://togithub.com/golang/crypto/compare/v0.7.0...v0.8.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zNC4xIiwidXBkYXRlZEluVmVyIjoiMzUuMzQuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-15 18:56:24 +00:00
renovate[bot] 12b34773a6
fix(deps): update module github.com/spf13/cobra to v1.7.0 (#587)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/spf13/cobra](https://togithub.com/spf13/cobra) | require |
minor | `v1.6.1` -> `v1.7.0` |

---

### Release Notes

<details>
<summary>spf13/cobra</summary>

### [`v1.7.0`](https://togithub.com/spf13/cobra/releases/tag/v1.7.0)

[Compare
Source](https://togithub.com/spf13/cobra/compare/v1.6.1...v1.7.0)

#####  Features

- Allow to preserve ordering of completions in `bash`, `zsh`, `pwsh`, &
`fish`: [@&#8203;h4ck3rk3y](https://togithub.com/h4ck3rk3y)
[#&#8203;1903](https://togithub.com/spf13/cobra/issues/1903)
- Add support for PowerShell 7.2+ in completions:
[@&#8203;oldium](https://togithub.com/oldium)
[#&#8203;1916](https://togithub.com/spf13/cobra/issues/1916)
- Allow sourcing zsh completion script:
[@&#8203;marckhouzam](https://togithub.com/marckhouzam)
[#&#8203;1917](https://togithub.com/spf13/cobra/issues/1917)

##### 🐛 Bug fixes

- Don't remove flag values that match sub-command name:
[@&#8203;brianpursley](https://togithub.com/brianpursley)
[#&#8203;1781](https://togithub.com/spf13/cobra/issues/1781)
- Fix powershell completions not returning single word:
[@&#8203;totkeks](https://togithub.com/totkeks)
[#&#8203;1850](https://togithub.com/spf13/cobra/issues/1850)
- Remove masked `template` import variable name:
[@&#8203;yashLadha](https://togithub.com/yashLadha)
[#&#8203;1879](https://togithub.com/spf13/cobra/issues/1879)
- Correctly detect completions with dash in argument:
[@&#8203;oncilla](https://togithub.com/oncilla)
[#&#8203;1817](https://togithub.com/spf13/cobra/issues/1817)

##### 🧪 Testing & CI/CD

- Deprecate Go 1.15 in CI:
[@&#8203;umarcor](https://togithub.com/umarcor)
[#&#8203;1866](https://togithub.com/spf13/cobra/issues/1866)
- Deprecate Go 1.16 in CI:
[@&#8203;umarcor](https://togithub.com/umarcor)
[#&#8203;1926](https://togithub.com/spf13/cobra/issues/1926)
- Add testing for Go 1.20 in CI:
[@&#8203;umarcor](https://togithub.com/umarcor)
[#&#8203;1925](https://togithub.com/spf13/cobra/issues/1925)
- Add tests to illustrate unknown flag bug:
[@&#8203;brianpursley](https://togithub.com/brianpursley)
[#&#8203;1854](https://togithub.com/spf13/cobra/issues/1854)

##### 🔧 Maintenance

- Update main image to better handle dark backgrounds:
[@&#8203;Deleplace](https://togithub.com/Deleplace) and
[@&#8203;marckhouzam](https://togithub.com/marckhouzam)
[#&#8203;1883](https://togithub.com/spf13/cobra/issues/1883)
- Fix `stale.yaml` mispellings:
[@&#8203;enrichman](https://togithub.com/enrichman)
[#&#8203;1863](https://togithub.com/spf13/cobra/issues/1863)
- Remove stale bot from GitHub actions:
[@&#8203;jpmcb](https://togithub.com/jpmcb)
[#&#8203;1908](https://togithub.com/spf13/cobra/issues/1908)
- Add makefile target for installing dependencies:
[@&#8203;umarcor](https://togithub.com/umarcor)
[#&#8203;1865](https://togithub.com/spf13/cobra/issues/1865)
- Add Sia to projects using Cobra:
[@&#8203;mike76-dev](https://togithub.com/mike76-dev)
[#&#8203;1844](https://togithub.com/spf13/cobra/issues/1844)
- Add `Vitess` and `Arewefastyet` to projects using cobra:
[@&#8203;frouioui](https://togithub.com/frouioui)
[#&#8203;1932](https://togithub.com/spf13/cobra/issues/1932)
- Fixup for Kubescape github org:
[@&#8203;dwertent](https://togithub.com/dwertent)
[#&#8203;1874](https://togithub.com/spf13/cobra/issues/1874)
- Fix route for GitHub workflows badge:
[@&#8203;sh-cho](https://togithub.com/sh-cho)
[#&#8203;1884](https://togithub.com/spf13/cobra/issues/1884)
- Fixup for GoDoc style documentation:
[@&#8203;yashLadha](https://togithub.com/yashLadha)
[#&#8203;1885](https://togithub.com/spf13/cobra/issues/1885)
- Various bash scripting improvements for completion:
[@&#8203;scop](https://togithub.com/scop)
[#&#8203;1702](https://togithub.com/spf13/cobra/issues/1702)
- Add Constellation to projects using Cobra:
[@&#8203;datosh](https://togithub.com/datosh)
[#&#8203;1829](https://togithub.com/spf13/cobra/issues/1829)

##### ✏️ Documentation

- Add documentation about disabling completion descriptions:
[@&#8203;Shihta](https://togithub.com/Shihta)
[#&#8203;1901](https://togithub.com/spf13/cobra/issues/1901)
- Improve `MarkFlagsMutuallyExclusive` example in user guide:
[@&#8203;janhn](https://togithub.com/janhn)
[#&#8203;1904](https://togithub.com/spf13/cobra/issues/1904)
- Update `shell_completions.md`:
[@&#8203;gusega](https://togithub.com/gusega)
[#&#8203;1907](https://togithub.com/spf13/cobra/issues/1907)
- Update copywrite year: [@&#8203;umarcor](https://togithub.com/umarcor)
[#&#8203;1927](https://togithub.com/spf13/cobra/issues/1927)
- Document suggested layout of subcommands:
[@&#8203;lcarva](https://togithub.com/lcarva)
[#&#8203;1930](https://togithub.com/spf13/cobra/issues/1930)
- Replace deprecated ExactValidArgs with MatchAll in doc:
[@&#8203;doniacld](https://togithub.com/doniacld)
[#&#8203;1836](https://togithub.com/spf13/cobra/issues/1836)

***

This release contains several long running fixes, improvements to
powershell completions, and further optimizations for completions.

Thank you everyone who contributed to this release and all your hard
work! Cobra and this community would never be possible without all of
you! 🐍

Full changelog:  https://github.com/spf13/cobra/compare/v1.6.1...v1.7.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zMi4yIiwidXBkYXRlZEluVmVyIjoiMzUuMzIuMiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-15 14:25:39 +00:00
renovate[bot] e3dfbc6753
fix(deps): update module github.com/rs/xid to v1.5.0 (#614)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/rs/xid](https://togithub.com/rs/xid) | require | minor |
`v1.4.0` -> `v1.5.0` |

---

### Release Notes

<details>
<summary>rs/xid</summary>

### [`v1.5.0`](https://togithub.com/rs/xid/compare/v1.4.0...v1.5.0)

[Compare Source](https://togithub.com/rs/xid/compare/v1.4.0...v1.5.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-15 10:32:03 +00:00
renovate[bot] be009e804b
chore(deps): update actions/github-script digest to d7906e4 (#617)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/github-script](https://togithub.com/actions/github-script) |
action | digest | `98814c5` -> `d7906e4` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-15 06:08:58 +00:00
renovate[bot] 97066c107d
fix(deps): update module github.com/rs/cors to v1.9.0 (#609)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github.com/rs/cors](https://togithub.com/rs/cors) | require | minor |
`v1.8.3` -> `v1.9.0` |

---

### Release Notes

<details>
<summary>rs/cors</summary>

### [`v1.9.0`](https://togithub.com/rs/cors/compare/v1.8.3...v1.9.0)

[Compare Source](https://togithub.com/rs/cors/compare/v1.8.3...v1.9.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-15 04:02:43 +00:00
Michael Beemer a043684983
update doc links 2023-04-14 16:36:43 -04:00
renovate[bot] 0597a8f23d
fix(deps): update module github.com/prometheus/client_golang to v1.15.0 (#608)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/prometheus/client_golang](https://togithub.com/prometheus/client_golang)
| require | minor | `v1.14.0` -> `v1.15.0` |

---

### Release Notes

<details>
<summary>prometheus/client_golang</summary>

###
[`v1.15.0`](https://togithub.com/prometheus/client_golang/releases/tag/v1.15.0)

[Compare
Source](https://togithub.com/prometheus/client_golang/compare/v1.14.0...v1.15.0)

#### Changed

\[BUGFIX] Fix issue with atomic variables on ppc64le
[#&#8203;1171](https://togithub.com/prometheus/client_golang/issues/1171)
\[BUGFIX] Support for multiple samples within same metric
[#&#8203;1181](https://togithub.com/prometheus/client_golang/issues/1181)
\[BUGFIX] Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149
[#&#8203;1187](https://togithub.com/prometheus/client_golang/issues/1187)
\[ENHANCEMENT] Add exemplars and middleware examples
[#&#8203;1173](https://togithub.com/prometheus/client_golang/issues/1173)
\[ENHANCEMENT] Add more context to "duplicate label names" error to
enable debugging
[#&#8203;1177](https://togithub.com/prometheus/client_golang/issues/1177)
\[ENHANCEMENT] Add constrained labels and constrained variant for all
MetricVecs
[#&#8203;1151](https://togithub.com/prometheus/client_golang/issues/1151)
\[ENHANCEMENT] Moved away from deprecated github.com/golang/protobuf
package
[#&#8203;1183](https://togithub.com/prometheus/client_golang/issues/1183)
\[ENHANCEMENT] Add possibility to dynamically get label values for http
instrumentation
[#&#8203;1066](https://togithub.com/prometheus/client_golang/issues/1066)
\[ENHANCEMENT] Add ability to Pusher to add custom headers
[#&#8203;1218](https://togithub.com/prometheus/client_golang/issues/1218)
\[ENHANCEMENT] api: Extend and improve efficiency of json-iterator usage
[#&#8203;1225](https://togithub.com/prometheus/client_golang/issues/1225)
\[ENHANCEMENT] Added (official) support for go 1.20
[#&#8203;1234](https://togithub.com/prometheus/client_golang/issues/1234)
\[ENHANCEMENT] timer: Added support for exemplars
[#&#8203;1233](https://togithub.com/prometheus/client_golang/issues/1233)
\[ENHANCEMENT] Filter expected metrics as well in CollectAndCompare
[#&#8203;1143](https://togithub.com/prometheus/client_golang/issues/1143)
\[ENHANCEMENT] ⚠️ Only set start/end if time is not Zero. This breaks
compatibility in experimental api package. If you strictly depend on
empty time.Time as actual value, the behavior is now changed
[#&#8203;1238](https://togithub.com/prometheus/client_golang/issues/1238)

<details>
  <summary>All commits</summary>

- Merge release 1.14 to main by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1164](https://togithub.com/prometheus/client_golang/pull/1164)
- Fix typo in doc comment by
[@&#8203;beorn7](https://togithub.com/beorn7) in
[https://github.com/prometheus/client_golang/pull/1166](https://togithub.com/prometheus/client_golang/pull/1166)
- Fix issue with atomic variables on ppc64le by
[@&#8203;beorn7](https://togithub.com/beorn7) in
[https://github.com/prometheus/client_golang/pull/1171](https://togithub.com/prometheus/client_golang/pull/1171)
- examples: Add exemplars and middleware examples by
[@&#8203;jessicalins](https://togithub.com/jessicalins) in
[https://github.com/prometheus/client_golang/pull/1173](https://togithub.com/prometheus/client_golang/pull/1173)
- Add context to "duplicate label names" to enable debugging by
[@&#8203;SpencerMalone](https://togithub.com/SpencerMalone) in
[https://github.com/prometheus/client_golang/pull/1177](https://togithub.com/prometheus/client_golang/pull/1177)
- Add constrained labels and Constrained variant for all MetricVecs by
[@&#8203;Okhoshi](https://togithub.com/Okhoshi) in
[https://github.com/prometheus/client_golang/pull/1151](https://togithub.com/prometheus/client_golang/pull/1151)
- Support for multiple samples within same metric by
[@&#8203;machadovilaca](https://togithub.com/machadovilaca) in
[https://github.com/prometheus/client_golang/pull/1181](https://togithub.com/prometheus/client_golang/pull/1181)
- Replace deprecated github.com/golang/protobuf package by
[@&#8203;zhsj](https://togithub.com/zhsj) in
[https://github.com/prometheus/client_golang/pull/1183](https://togithub.com/prometheus/client_golang/pull/1183)
- Bump golang.org/x/text to v0.3.8 to mitigate CVE-2022-32149 by
[@&#8203;b4bay](https://togithub.com/b4bay) in
[https://github.com/prometheus/client_golang/pull/1187](https://togithub.com/prometheus/client_golang/pull/1187)
- typo fix by
[@&#8203;ibreakthecloud](https://togithub.com/ibreakthecloud) in
[https://github.com/prometheus/client_golang/pull/1178](https://togithub.com/prometheus/client_golang/pull/1178)
- Add possibility to dynamically get label values for http
instrumentation by [@&#8203;Okhoshi](https://togithub.com/Okhoshi) in
[https://github.com/prometheus/client_golang/pull/1066](https://togithub.com/prometheus/client_golang/pull/1066)
- Bump github.com/cespare/xxhash/v2 from 2.1.2 to 2.2.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1199](https://togithub.com/prometheus/client_golang/pull/1199)
- Bump github.com/prometheus/procfs from 0.8.0 to 0.9.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1198](https://togithub.com/prometheus/client_golang/pull/1198)
- Bump golang.org/x/sys from 0.3.0 to 0.4.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1217](https://togithub.com/prometheus/client_golang/pull/1217)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1213](https://togithub.com/prometheus/client_golang/pull/1213)
- Bump github.com/prometheus/common from 0.37.0 to 0.39.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1197](https://togithub.com/prometheus/client_golang/pull/1197)
- Add `Header` method to Pusher for custom header by
[@&#8203;songjiayang](https://togithub.com/songjiayang) in
[https://github.com/prometheus/client_golang/pull/1218](https://togithub.com/prometheus/client_golang/pull/1218)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1224](https://togithub.com/prometheus/client_golang/pull/1224)
- api: Extend and improve json-iterator usage by
[@&#8203;beorn7](https://togithub.com/beorn7) in
[https://github.com/prometheus/client_golang/pull/1225](https://togithub.com/prometheus/client_golang/pull/1225)
- Indent example in godoc consistently by
[@&#8203;lamida](https://togithub.com/lamida) in
[https://github.com/prometheus/client_golang/pull/1226](https://togithub.com/prometheus/client_golang/pull/1226)
- Remove unnecessary check if label is nil in observeWithExemplar by
[@&#8203;dimonl](https://togithub.com/dimonl) in
[https://github.com/prometheus/client_golang/pull/1235](https://togithub.com/prometheus/client_golang/pull/1235)
- README: Remove not working gocoverage images. by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1236](https://togithub.com/prometheus/client_golang/pull/1236)
- Added support for go 1.20. by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1234](https://togithub.com/prometheus/client_golang/pull/1234)
- timer: Added support for exemplars. by
[@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1233](https://togithub.com/prometheus/client_golang/pull/1233)
- Synchronize common files from prometheus/prometheus by
[@&#8203;prombot](https://togithub.com/prombot) in
[https://github.com/prometheus/client_golang/pull/1237](https://togithub.com/prometheus/client_golang/pull/1237)
- Filter expected metrics as well in CollectAndCompare by
[@&#8203;DariaKunoichi](https://togithub.com/DariaKunoichi) in
[https://github.com/prometheus/client_golang/pull/1143](https://togithub.com/prometheus/client_golang/pull/1143)
- Only set start/end if time is not Zero by
[@&#8203;jacksontj](https://togithub.com/jacksontj) in
[https://github.com/prometheus/client_golang/pull/1238](https://togithub.com/prometheus/client_golang/pull/1238)
- Bump google.golang.org/protobuf from 1.28.1 to 1.30.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1243](https://togithub.com/prometheus/client_golang/pull/1243)
- Bump golang.org/x/sys from 0.5.0 to 0.6.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1246](https://togithub.com/prometheus/client_golang/pull/1246)
- Bump github.com/golang/protobuf from 1.5.2 to 1.5.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1245](https://togithub.com/prometheus/client_golang/pull/1245)
- Bump github.com/prometheus/common from 0.41.0 to 0.42.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/prometheus/client_golang/pull/1244](https://togithub.com/prometheus/client_golang/pull/1244)
- Cut v1.15.0 by [@&#8203;bwplotka](https://togithub.com/bwplotka) in
[https://github.com/prometheus/client_golang/pull/1249](https://togithub.com/prometheus/client_golang/pull/1249)

</details>

#### New Contributors
* @&#8203;SpencerMalone made their first
contributi[https://github.com/prometheus/client_golang/pull/1177](https://togithub.com/prometheus/client_golang/pull/1177)l/1177
* @&#8203;Okhoshi made their first
contributi[https://github.com/prometheus/client_golang/pull/1151](https://togithub.com/prometheus/client_golang/pull/1151)l/1151
* @&#8203;machadovilaca made their first
contributi[https://github.com/prometheus/client_golang/pull/1181](https://togithub.com/prometheus/client_golang/pull/1181)l/1181
* @&#8203;b4bay made their first
contributi[https://github.com/prometheus/client_golang/pull/1187](https://togithub.com/prometheus/client_golang/pull/1187)l/1187
* @&#8203;ibreakthecloud made their first
contributi[https://github.com/prometheus/client_golang/pull/1178](https://togithub.com/prometheus/client_golang/pull/1178)l/1178
* @&#8203;songjiayang made their first
contributi[https://github.com/prometheus/client_golang/pull/1218](https://togithub.com/prometheus/client_golang/pull/1218)l/1218
* @&#8203;lamida made their first
contributi[https://github.com/prometheus/client_golang/pull/1226](https://togithub.com/prometheus/client_golang/pull/1226)l/1226
* @&#8203;dimonl made their first
contributi[https://github.com/prometheus/client_golang/pull/1235](https://togithub.com/prometheus/client_golang/pull/1235)l/1235
* @&#8203;DariaKunoichi made their first
contributi[https://github.com/prometheus/client_golang/pull/1143](https://togithub.com/prometheus/client_golang/pull/1143)l/1143

**Full Changelog**:
https://github.com/prometheus/client_golang/compare/v1.14.0...v1.15.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 19:49:58 +00:00
renovate[bot] 8f2f467af5
fix(deps): update module github.com/bufbuild/connect-go to v1.6.0 (#585)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/bufbuild/connect-go](https://togithub.com/bufbuild/connect-go)
| require | minor | `v1.5.2` -> `v1.6.0` |

---

### Release Notes

<details>
<summary>bufbuild/connect-go</summary>

###
[`v1.6.0`](https://togithub.com/bufbuild/connect-go/releases/tag/v1.6.0)

[Compare
Source](https://togithub.com/bufbuild/connect-go/compare/v1.5.2...v1.6.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Enhancements

- Improve comments & add procedure consts to generated code by
[@&#8203;akshayjshah](https://togithub.com/akshayjshah) in
[https://github.com/bufbuild/connect-go/pull/480](https://togithub.com/bufbuild/connect-go/pull/480)
- Reduce per-call URL parsing cost by
[@&#8203;mattrobenolt](https://togithub.com/mattrobenolt) in
[https://github.com/bufbuild/connect-go/pull/467](https://togithub.com/bufbuild/connect-go/pull/467)
- Improve errors for outdated protobuf runtimes by
[@&#8203;akshayjshah](https://togithub.com/akshayjshah) in
[https://github.com/bufbuild/connect-go/pull/465](https://togithub.com/bufbuild/connect-go/pull/465)
- Switch README to use `buf curl` by
[@&#8203;akshayjshah](https://togithub.com/akshayjshah) in
[https://github.com/bufbuild/connect-go/pull/474](https://togithub.com/bufbuild/connect-go/pull/474)

##### Bugfixes

- Clarify purpose of handler_stream_test.go by
[@&#8203;Hirochon](https://togithub.com/Hirochon) in
[https://github.com/bufbuild/connect-go/pull/472](https://togithub.com/bufbuild/connect-go/pull/472)
- Make StreamType constants typed numerics by
[@&#8203;jhump](https://togithub.com/jhump) in
[https://github.com/bufbuild/connect-go/pull/486](https://togithub.com/bufbuild/connect-go/pull/486)
- Populate Spec and Peer in Client.CallServerStream by
[@&#8203;jhump](https://togithub.com/jhump) in
[https://github.com/bufbuild/connect-go/pull/487](https://togithub.com/bufbuild/connect-go/pull/487)

#### New Contributors

- [@&#8203;Hirochon](https://togithub.com/Hirochon) made their first
contribution in
[https://github.com/bufbuild/connect-go/pull/472](https://togithub.com/bufbuild/connect-go/pull/472)

**Full Changelog**:
https://github.com/bufbuild/connect-go/compare/v1.5.2...v1.6.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zMS40IiwidXBkYXRlZEluVmVyIjoiMzUuMzEuNCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 15:52:26 +00:00
renovate[bot] 3e6a84b455
fix(deps): update module github.com/open-feature/open-feature-operator to v0.2.34 (#604)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/open-feature-operator](https://togithub.com/open-feature/open-feature-operator)
| require | patch | `v0.2.32` -> `v0.2.34` |

---

### Release Notes

<details>
<summary>open-feature/open-feature-operator</summary>

###
[`v0.2.34`](https://togithub.com/open-feature/open-feature-operator/releases/tag/v0.2.34)

[Compare
Source](https://togithub.com/open-feature/open-feature-operator/compare/v0.2.33...v0.2.34)

##### 🧹 Chore

- **deps:** update open-feature/flagd
([#&#8203;466](https://togithub.com/open-feature/open-feature-operator/issues/466))
([3b8d156](3b8d1564af))

###
[`v0.2.33`](https://togithub.com/open-feature/open-feature-operator/releases/tag/v0.2.33)

[Compare
Source](https://togithub.com/open-feature/open-feature-operator/compare/v0.2.32...v0.2.33)

##### 🐛 Bug Fixes

- removed old prefix from flagd-proxy provider config
([#&#8203;463](https://togithub.com/open-feature/open-feature-operator/issues/463))
([39a99c6](39a99c622b))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 11:48:38 +00:00
renovate[bot] 218f435f02
fix(deps): update module github.com/open-feature/flagd/core to v0.5.2 (#613)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/flagd/core](https://togithub.com/open-feature/flagd)
| require | patch | `v0.5.1` -> `v0.5.2` |

---

### Release Notes

<details>
<summary>open-feature/flagd</summary>

###
[`v0.5.2`](https://togithub.com/open-feature/flagd/releases/tag/flagd/v0.5.2):
flagd: v0.5.2

##### 🐛 Bug Fixes

- **deps:** update module github.com/open-feature/flagd/core to v0.5.1
([#&#8203;579](https://togithub.com/open-feature/flagd/issues/579))
([58eed62](58eed62f50))

#####  New Features

- otel traces for flag evaluation
([#&#8203;598](https://togithub.com/open-feature/flagd/issues/598))
([1757035](175703548f))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 06:54:17 +00:00
renovate[bot] 68f7193d57
chore(deps): update github/codeql-action digest to 7df0ce3 (#611)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `d186a2a` -> `7df0ce3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-14 03:12:28 +00:00
renovate[bot] 7f076835ab
chore(deps): update actions/checkout digest to 8e5e7e5 (#612)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
digest | `8f4b7f8` -> `8e5e7e5` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 23:26:13 +00:00
renovate[bot] b65e7f56d3
chore(deps): update actions/checkout digest to 8f4b7f8 (#557)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/checkout](https://togithub.com/actions/checkout) | action |
digest | `24cb908` -> `8f4b7f8` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNy4xIiwidXBkYXRlZEluVmVyIjoiMzUuMTcuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
2023-04-13 11:27:43 -07:00
github-actions[bot] 0fbd30f4b3
chore: release main (#607)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-13 11:34:58 -04:00
Kavindu Dodanduwa 175703548f
feat: otel traces for flag evaluation (#598)
## This PR

Partially address #575 by introducing **traces** for flag evaluations &
otlp **batch exporter** based on **otlp grpc** with aim to use by otel
collector.

Contents,

- Refactor telemetry builder to register `TraceProvider` [1].
- Tracers [2] for `flag_evaluator.go` & `json_evaluator.go` with passing
context to derive span [2] tree

```
flagEvaluationService
|__ jsonEvaluator
```

Note that, setting `otel-collector-uri` is essential to export collected
traces. However, flagd can still be run **without** collector uri -
<del>this results in an empty(nil) exporter with no-op behavior</del>
this results in no provider registration, making traces to use
`NoopTracerProvider`

## How to test 

1. Set up flagd with otel collector - follow documentation [4]
2. Perform flag evaluations  [5]
3. Visit Jaeger UI (typically - http://127.0.0.1:16686/) for traces 


![overview](https://user-images.githubusercontent.com/8186721/231010260-b6be4cb2-1926-4692-a911-6ae3724afe88.png)

![trace](https://user-images.githubusercontent.com/8186721/231010269-3af505a7-48c4-45c9-ae4d-cc1bc269322e.png)



[1] -
https://opentelemetry.io/docs/reference/specification/trace/api/#tracerprovider
[2] -
https://opentelemetry.io/docs/reference/specification/trace/api/#tracer
[3] -
https://opentelemetry.io/docs/reference/specification/trace/api/#span
[4] -
https://github.com/open-feature/flagd/blob/main/docs/configuration/flagd_telemetry.md#export-to-otel-collector
[5] -
https://github.com/open-feature/flagd/blob/main/docs/configuration/fractional_evaluation.md#example

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-04-13 11:19:21 -04:00
James Milligan dc4fc5cb64
test: introduce flagd-proxy profiling tool (#599)
Signed-off-by: James Milligan <james@omnant.co.uk>
2023-04-13 09:40:00 -04:00
renovate[bot] 58eed62f50
fix(deps): update module github.com/open-feature/flagd/core to v0.5.1 (#579)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 09:38:30 -04:00
Kavindu Dodanduwa edfbe51916
fix: eventing configuration setup (#605)
Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
2023-04-13 08:38:50 -04:00
odubajDT 77664cdf53
feat: introduce metrics for failed evaluations (#584)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- introduced a new metric which buckets evaluations by reason
- small refactoring
- unit tests

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->

Fixes #559 

### How to test

Run flagd via 
```
make run
```
Run
```
curl -X POST "localhost:8013/schema.v1.Service/ResolveString" -d '{"flagKey":"fibAlgo","context":{}}' -H "Content-Type: application/json"
curl -X POST "localhost:8013/schema.v1.Service/ResolveString" -d '{"flagKey":"myStringFlag","context":{}}' -H "Content-Type: application/json"
curl -X POST "localhost:8013/schema.v1.Service/ResolveString" -d '{"flagKey":"myStringFlagNonExisting","context":{}}' -H "Content-Type: application/json"
curl -X POST "localhost:8013/schema.v1.Service/ResolveString" -d '{"flagKey":"myStringFlagNonExisting2","context":{}}' -H "Content-Type: application/json"
curl -X POST "localhost:8013/schema.v1.Service/ResolveInt" -d '{"flagKey":"myStringFlag","context":{}}' -H "Content-Type: application/json"
```

Open http://localhost:8014/metrics and see something like the following

```
# HELP impressions_total The number of evaluation for a given flag
# TYPE impressions_total counter
impressions_total{feature_flag_key="fibAlgo",feature_flag_provider_name="flagd",feature_flag_reason="DEFAULT",feature_flag_variant="recursive",otel_scope_name="openfeature/flagd",otel_scope_version=""} 1
impressions_total{feature_flag_key="myStringFlag",feature_flag_provider_name="flagd",feature_flag_reason="STATIC",feature_flag_variant="key1",otel_scope_name="openfeature/flagd",otel_scope_version=""} 1
```
and

```
# HELP reasons_total The number of evaluations for a given reason
# TYPE reasons_total counter
reasons_total{feature_flag_provider_name="flagd",feature_flag_reason="DEFAULT",otel_scope_name="openfeature/flagd",otel_scope_version=""} 1
reasons_total{feature_flag_provider_name="flagd",feature_flag_reason="STATIC",otel_scope_name="openfeature/flagd",otel_scope_version=""} 1
reasons_total{exception_type="FLAG_NOT_FOUND",feature_flag_provider_name="flagd",feature_flag_reason="ERROR",otel_scope_name="openfeature/flagd",otel_scope_version=""} 2
reasons_total{exception_type="TYPE_MISMATCH",feature_flag_provider_name="flagd",feature_flag_reason="ERROR",otel_scope_name="openfeature/flagd",otel_scope_version=""} 1
```

Signed-off-by: odubajDT <ondrej.dubaj@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: James Milligan <75740990+james-milligan@users.noreply.github.com>
2023-04-13 10:44:59 +01:00
renovate[bot] c25d0ef4b0
chore(deps): update sigstore/cosign-installer digest to 9e9de22 (#596)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| sigstore/cosign-installer | action | digest | `8348525` -> `9e9de22` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zNC4xIiwidXBkYXRlZEluVmVyIjoiMzUuMzQuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 06:39:41 +00:00
renovate[bot] 6f721af379
fix(deps): update module github.com/open-feature/open-feature-operator to v0.2.32 [security] (#606)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/open-feature/open-feature-operator](https://togithub.com/open-feature/open-feature-operator)
| require | patch | `v0.2.31` -> `v0.2.32` |

### GitHub Vulnerability Alerts

####
[CVE-2023-29018](https://togithub.com/open-feature/open-feature-operator/security/advisories/GHSA-cwf6-xj49-wp83)

### Impact

On a node controlled by an attacker or malicious user, the lax
permissions configured on `open-feature-operator-controller-manager` can
be used to further escalate the privileges of any service account in the
cluster.

The increased privileges could be used to modify cluster state, leading
to DoS, or read sensitive data, including secrets.

### Patches

The patch mitigates this issue by restricting the resources the
`open-feature-operator-controller-manager` can modify.

---

### Release Notes

<details>
<summary>open-feature/open-feature-operator</summary>

###
[`v0.2.32`](https://togithub.com/open-feature/open-feature-operator/releases/tag/v0.2.32)

[Compare
Source](https://togithub.com/open-feature/open-feature-operator/compare/v0.2.31...v0.2.32)

##### 📚 Documentation

- add killercoda demo link
([#&#8203;413](https://togithub.com/open-feature/open-feature-operator/issues/413))
([bbeeea2](bbeeea27fe))

##### 🐛 Bug Fixes

- **deps:** update kubernetes packages to v0.26.3
([#&#8203;273](https://togithub.com/open-feature/open-feature-operator/issues/273))
([abe56e1](abe56e1430))
- **deps:** update module github.com/go-logr/logr to v1.2.4
([#&#8203;428](https://togithub.com/open-feature/open-feature-operator/issues/428))
([8d07dab](8d07dab7ee))
- **deps:** update module github.com/onsi/gomega to v1.27.5
([#&#8203;357](https://togithub.com/open-feature/open-feature-operator/issues/357))
([8624958](86249582d4))
- **deps:** update module github.com/onsi/gomega to v1.27.6
([#&#8203;429](https://togithub.com/open-feature/open-feature-operator/issues/429))
([987815c](987815c05e))
- **deps:** update module github.com/stretchr/testify to v1.8.2
([#&#8203;396](https://togithub.com/open-feature/open-feature-operator/issues/396))
([f24b6c4](f24b6c4e53))
- **deps:** update module sigs.k8s.io/controller-runtime to v0.14.6
([#&#8203;426](https://togithub.com/open-feature/open-feature-operator/issues/426))
([0e779e8](0e779e8d8f))
- remove unneeded OF namespace prefix from clusterrolebindings
([#&#8203;453](https://togithub.com/open-feature/open-feature-operator/issues/453))
([b23edef](b23edefc0d))
- restrict permissions to only access specific CRB
([#&#8203;436](https://togithub.com/open-feature/open-feature-operator/issues/436))
([6f1f93c](6f1f93c98c))
- update flagd proxy env var prefix
([#&#8203;440](https://togithub.com/open-feature/open-feature-operator/issues/440))
([b451d47](b451d47184))

#####  New Features

- flagd proxy resource ownership
([#&#8203;442](https://togithub.com/open-feature/open-feature-operator/issues/442))
([31b5f7b](31b5f7bdc6))
- introduce debugLogging parameter to FlagSourceConfiguration CRD
([#&#8203;434](https://togithub.com/open-feature/open-feature-operator/issues/434))
([26ae125](26ae1257f7))
- kube-flagd-proxy deployment
([#&#8203;412](https://togithub.com/open-feature/open-feature-operator/issues/412))
([651c63c](651c63c5fe))
- migrate flagd startup argument to sources flag
([#&#8203;427](https://togithub.com/open-feature/open-feature-operator/issues/427))
([1c67f34](1c67f34dca))
- **test:** substitute kuttl to bash e2e test
([#&#8203;411](https://togithub.com/open-feature/open-feature-operator/issues/411))
([ff199f1](ff199f1ae3))

##### 🧹 Chore

- add unit tests to pod webhook
([#&#8203;419](https://togithub.com/open-feature/open-feature-operator/issues/419))
([4290978](42909784b6))
- attempt renovate fix
([48b6c7f](48b6c7fabc))
- attempt versioning fix in test
([58d0145](58d0145f0a))
- **deps:** update actions/setup-go action to v4
([#&#8203;398](https://togithub.com/open-feature/open-feature-operator/issues/398))
([ee9ecb9](ee9ecb9d69))
- **deps:** update dependency open-feature/flagd to v0.2.1
([#&#8203;462](https://togithub.com/open-feature/open-feature-operator/issues/462))
([d2d53b7](d2d53b7579))
- **deps:** update docker/login-action digest to
[`65b78e6`](https://togithub.com/open-feature/open-feature-operator/commit/65b78e6)
([#&#8203;421](https://togithub.com/open-feature/open-feature-operator/issues/421))
([8d2ebe2](8d2ebe2719))
- **deps:** update docker/metadata-action digest to
[`3f6690a`](https://togithub.com/open-feature/open-feature-operator/commit/3f6690a)
([#&#8203;432](https://togithub.com/open-feature/open-feature-operator/issues/432))
([991b2bd](991b2bd3c3))
- **deps:** update golang docker tag to v1.20.3
([#&#8203;445](https://togithub.com/open-feature/open-feature-operator/issues/445))
([b8f6c5b](b8f6c5b9e7))
- **deps:** update module golang.org/x/net to v0.8.0
([#&#8203;397](https://togithub.com/open-feature/open-feature-operator/issues/397))
([096c889](096c889c87))
- **deps:** update module golang.org/x/net to v0.9.0
([#&#8203;451](https://togithub.com/open-feature/open-feature-operator/issues/451))
([4cbe4f1](4cbe4f1a02))
- **deps:** update open-feature/flagd
([#&#8203;457](https://togithub.com/open-feature/open-feature-operator/issues/457))
([db9af7a](db9af7a02d))
- **deps:** update open-feature/flagd to v0.5.0
([#&#8203;422](https://togithub.com/open-feature/open-feature-operator/issues/422))
([6846aa2](6846aa206a))
- fix renovate config, add recommended preset
([#&#8203;418](https://togithub.com/open-feature/open-feature-operator/issues/418))
([78c5970](78c5970242))
- improve container build layer caching
([#&#8203;414](https://togithub.com/open-feature/open-feature-operator/issues/414))
([3212eba](3212eba809))
- increase backoffLimit for inject-flagd
([#&#8203;423](https://togithub.com/open-feature/open-feature-operator/issues/423))
([29d7cf0](29d7cf069d))
- introduce additional unit tests for api packages
([#&#8203;420](https://togithub.com/open-feature/open-feature-operator/issues/420))
([5ba5bc9](5ba5bc97fa))
- refactor admission webhook tests
([#&#8203;409](https://togithub.com/open-feature/open-feature-operator/issues/409))
([29c7c28](29c7c28b4a))
- refactor pod webhook mutator
([#&#8203;410](https://togithub.com/open-feature/open-feature-operator/issues/410))
([2a86b03](2a86b03288))
- refactored component test using fake client
([#&#8203;435](https://togithub.com/open-feature/open-feature-operator/issues/435))
([08a50ac](08a50accff))
- remove ignored renovate paths
([#&#8203;441](https://togithub.com/open-feature/open-feature-operator/issues/441))
([c1d8929](c1d89291d7))
- reorder containers in e2e assertion
([1d895c3](1d895c33c3))
- split controllers to separate packages + cover them with unit tests
([#&#8203;404](https://togithub.com/open-feature/open-feature-operator/issues/404))
([6ed4cef](6ed4cef4a7))
- troubleshoot renovate
([de4ac14](de4ac14757))
- troubleshoot renovate
([89a7b5b](89a7b5b989))
- troubleshoot renovate
([244bd3a](244bd3ade5))
- troubleshoot renovate
([eafa670](eafa6702e1))
- troubleshoot renovate
([c3d9523](c3d95232d0))
- troubleshoot renovatge
([35054cb](35054cb691))
- troubleshoot renvoate
([7ac3c90](7ac3c90a35))
- update codeowners to use cloud native team
([6133060](6133060110))
- update flagd renovate detection
([#&#8203;439](https://togithub.com/open-feature/open-feature-operator/issues/439))
([3d1540c](3d1540c67c))
- update renovate config to watch the assert yaml directly
([9ef25a0](9ef25a0abb))
- use renovate to bump flagd version
([#&#8203;395](https://togithub.com/open-feature/open-feature-operator/issues/395))
([fd5b072](fd5b072214))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-13 03:57:05 +00:00
renovate[bot] 982e6914c8
chore(deps): update google-github-actions/release-please-action digest to c078ea3 (#597)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[google-github-actions/release-please-action](https://togithub.com/google-github-actions/release-please-action)
| action | digest | `ee9822e` -> `c078ea3` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-12 23:53:55 +00:00
renovate[bot] fb09e19033
chore(deps): update github/codeql-action digest to d186a2a (#588)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) |
action | digest | `04df126` -> `d186a2a` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4zMi4yIiwidXBkYXRlZEluVmVyIjoiMzUuMzQuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-12 19:12:20 +00:00
renovate[bot] 957d25be3a
chore(deps): update codecov/codecov-action digest to 40a12dc (#601)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [codecov/codecov-action](https://togithub.com/codecov/codecov-action)
| action | digest | `d9f34f8` -> `40a12dc` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuNDAuMCJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-12 13:36:16 +00:00
renovate[bot] 5561b2f39d
chore(deps): update anchore/sbom-action digest to 422cb34 (#583)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [anchore/sbom-action](https://togithub.com/anchore/sbom-action) |
action | digest | `448520c` -> `422cb34` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMjIuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-12 08:10:45 +00:00
github-actions[bot] f5ecc54137
chore: release main (#582)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-11 23:38:31 -04:00
Florian Bacher 1fda10473d
fix: fall back to default port if env var cannot be parsed (#591)
Closes #580

---------

Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-04-11 12:46:01 -04:00
James Milligan b1661225c9
fix: flagd-proxy locking bug fix (#592)
## This PR

- resolves issue with locks found during load testing

### Related Issues

Fixes: https://github.com/open-feature/flagd/issues/590

---------

Signed-off-by: James Milligan <james@omnant.co.uk>
2023-04-11 11:25:28 -04:00
James Milligan 425de9a1c2
refactor: remove connect-go from flagd-proxy and replace with grpc (#589)
<!-- Please use this template for your pull request. -->
<!-- Please use the sections that you need and delete other sections -->

## This PR
<!-- add the description of the PR here -->

- during load testing of the flags-proxy it was found that connect-go
causes `connection reset by peer` errors when there are too many
simultaneous connections, this is not the case when only using grpc.
This PR removes connect-go, replacing it with a standalone grpc server
- the `fetchAllFlags` endpoint will no longer be available via a http
request, this was only used internally by the flagd grpc sync
implementation

### Related Issues
<!-- add here the GitHub issue that this PR resolves if applicable -->


### Notes
<!-- any additional notes for this PR -->

### Follow-up Tasks
<!-- anything that is related to this PR but not done here should be
noted under this section -->
<!-- if there is a need for a new issue, please link it here -->

### How to test
<!-- if applicable, add testing instructions under this section -->

---------

Signed-off-by: James Milligan <james@omnant.co.uk>
2023-04-11 13:08:57 +01:00
Kavindu Dodanduwa 494bec33dc
feat: flagd OTEL collector (#586)
## This PR

Fixes #563

Introduce configurations for flagd to connect to OTEL collector. Also,
improves how telemetry configurations are handled.

Changes include,

- Package renaming - otel to telemetry - This avoids import conflicts 

- Introduce a telemetry builder - The intention is to have a central
location to handle telemetry configurations and build telemetry
components

- Introduce a span processor builder - Provide groundwork for
https://github.com/open-feature/flagd/issues/575 (needs fallback
mechanism)


## How to test?

Consider following this guide - (doc generated from commit)
81c66b3c89/docs/configuration/flagd_telemetry.md

In short, 

- create configuration files (docker-compose yaml, collector config
yaml, Prometheus yaml )
- start collector setup (docker-compose up)
- start flagd with otel collector override for metrics (`flagd start
--uri file:/flags.json --metrics-exporter otel --otel-collector-target
localhost:4317`)

Metrics will be available at Prometheus(http://localhost:9090/graph).
Traces are still missing as we have to implement them.

---------

Signed-off-by: Kavindu Dodanduwa <kavindudodanduwa@gmail.com>
Signed-off-by: Kavindu Dodanduwa <Kavindu-Dodan@users.noreply.github.com>
Co-authored-by: Giovanni Liva <giovanni.liva@dynatrace.com>
2023-04-10 07:36:57 -07:00
Michael Beemer d78a3d91fb
ci: improve homebrew release process (#578) 2023-04-07 09:36:03 -04:00
Florian Bacher 0223c23fbd
chore: move startServer functions into errGroups (#566)
Signed-off-by: Florian Bacher <florian.bacher@dynatrace.com>
2023-03-31 15:34:52 -04:00
renovate[bot] 898a820f46
chore(deps): update docker/metadata-action digest to 3f6690a (#577)
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| docker/metadata-action | action | digest | `9ec57ed` -> `3f6690a` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/flagd).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4yMi4xIiwidXBkYXRlZEluVmVyIjoiMzUuMjIuMSJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-03-31 00:14:23 +00:00
339 changed files with 39025 additions and 10012 deletions

View File

@ -15,40 +15,7 @@ on:
- "README.md"
- "docs/**"
env:
GO_VERSION: 1.19.3
jobs:
benchmark:
name: Run Benchmark
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
- name: Setup go
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Workspace init
run: make workspace-init
- name: Run benchmark
run: go test -bench=Bench -short -benchtime=5s -benchmem ./core/... | tee output.txt
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
name: Go Benchmark
tool: "go"
output-file-path: output.txt
github-token: ${{ secrets.GITHUB_TOKEN }}
auto-push: false
# Show alert with commit comment on detecting possible performance regression
alert-threshold: "130%"
comment-on-alert: true
fail-on-alert: false
lint:
runs-on: ubuntu-latest
env:
@ -56,11 +23,11 @@ jobs:
GOBIN: /home/runner/work/open-feature/flagd/bin
steps:
- name: Checkout repository
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: Setup go
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5
with:
go-version: ${{ env.GO_VERSION }}
go-version-file: 'flagd/go.mod'
- run: make workspace-init
- run: make lint
@ -68,11 +35,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: Setup go
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5
with:
go-version: ${{ env.GO_VERSION }}
go-version-file: 'flagd/go.mod'
- run: make workspace-init
- run: make generate-docs
- name: Check no diff
@ -86,29 +53,29 @@ jobs:
GOBIN: /home/runner/work/open-feature/flagd/bin
steps:
- name: Checkout repository
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: Setup go
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5
with:
go-version: ${{ env.GO_VERSION }}
go-version-file: 'flagd/go.mod'
- run: make workspace-init
- run: make test
- name: Upload coverage to Codecov
uses: codecov/codecov-action@d9f34f8cd5cb3b3eb79b3e4b5dae3a16df499a70 # v3
uses: codecov/codecov-action@e0b68c6749509c5f83f984dd99a76a1c1a231044 # v4
docker-local:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
with:
submodules: recursive
- name: Setup go
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5
with:
go-version: ${{ env.GO_VERSION }}
go-version-file: 'flagd/go.mod'
- name: Set up QEMU
uses: docker/setup-qemu-action@master
@ -120,7 +87,7 @@ jobs:
uses: docker/setup-buildx-action@master
- name: Build
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 # v4
uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5
with:
context: .
file: ./flagd/build.Dockerfile
@ -128,16 +95,18 @@ jobs:
tags: flagd-local:test
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@master
uses: aquasecurity/trivy-action@0.28.0
with:
input: /github/workspace/flagd-local.tar
format: "template"
template: "@/contrib/sarif.tpl"
input: ${{ github.workspace }}/flagd-local.tar
format: "sarif"
output: "trivy-results.sarif"
severity: "CRITICAL,HIGH"
env:
# use an alternative trivvy db to avoid rate limits
TRIVY_DB_REPOSITORY: public.ecr.aws/aquasecurity/trivy-db:2,ghcr.io/aquasecurity/trivy-db:2
- name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@04df1262e6247151b5ac09cd2c303ac36ad3f62b # v2
uses: github/codeql-action/upload-sarif@e8893c57a1f3a2b659b6b55564fdfdbbd2982911 # v3
with:
sarif_file: "trivy-results.sarif"
@ -146,14 +115,22 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
with:
submodules: recursive
- name: Setup go
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5
with:
go-version: ${{ env.GO_VERSION }}
go-version-file: 'flagd/go.mod'
- name: Install envoy
run: |
wget -O- https://apt.envoyproxy.io/signing.key | sudo gpg --dearmor -o /etc/apt/keyrings/envoy-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/envoy-keyring.gpg] https://apt.envoyproxy.io jammy main" | sudo tee /etc/apt/sources.list.d/envoy.list
sudo apt-get update
sudo apt-get install envoy
envoy --version
- name: Workspace init
run: make workspace-init
@ -162,7 +139,17 @@ jobs:
run: make build
- name: Run flagd binary in background
run: ./bin/flagd start -f file:${{ github.workspace }}/test-harness/symlink_testing-flags.json &
run: |
./bin/flagd start \
-f file:${{ github.workspace }}/test-harness/flags/testing-flags.json \
-f file:${{ github.workspace }}/test-harness/flags/custom-ops.json \
-f file:${{ github.workspace }}/test-harness/flags/evaluator-refs.json \
-f file:${{ github.workspace }}/test-harness/flags/zero-flags.json \
-f file:${{ github.workspace }}/test-harness/flags/edge-case-flags.json &
- name: Run envoy proxy in background
run: |
envoy -c ./test/integration/config/envoy.yaml &
- name: Run evaluation test suite
run: go test -cover ./flagd/tests/integration -run TestEvaluation
run: go clean -testcache && go test -cover ./test/integration

View File

@ -29,15 +29,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
with:
ref: gh-pages
- name: Setup Pages
uses: actions/configure-pages@7110e9e03ffb4a421945e5d0607007b8e9f1f52b # v3
uses: actions/configure-pages@1f0c5cde4bc74cd7e1254d0cb4de8d49e9068c7d # v4
- name: Upload artifact
uses: actions/upload-pages-artifact@64bcae551a7b18bcb9a09042ddf1960979799187 # v1
uses: actions/upload-pages-artifact@0252fc4ba7626f0298f0cf00902a25c6afc77fa8 # v3
with:
path: './dev/bench'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@73e62e651178eeba977de2dc9f4c7645b3d01015 # v2
uses: actions/deploy-pages@87c3283f01cd6fe19a0ab93a23b2f6fcba5a8e42 # v4

View File

@ -12,12 +12,12 @@ jobs:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@c3cd5d1ea3580753008872425915e343e351ab54 # v5
- uses: amannn/action-semantic-pull-request@e9fabac35e210fea40ca5b14c0da95a099eff26f # v5
id: lint_pr_title
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: marocchino/sticky-pull-request-comment@3d60a5b2dae89d44e0c6ddc69dd7536aec2071cd # v2
- uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # v2
# When the previous steps fails, the workflow would stop. By adding this
# condition you can continue the execution with the populated error message.
if: always() && (steps.lint_pr_title.outputs.error_message != null)
@ -34,7 +34,7 @@ jobs:
```
# Delete a previous comment when the issue has been resolved
- if: ${{ steps.lint_pr_title.outputs.error_message == null }}
uses: marocchino/sticky-pull-request-comment@3d60a5b2dae89d44e0c6ddc69dd7536aec2071cd # v2
uses: marocchino/sticky-pull-request-comment@331f8f5b4215f0445d3c07b4967662a32a2d3e31 # v2
with:
header: pr-title-lint-error
delete: true

View File

@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: Check out code
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
- name: Lint Markdown files
run: make markdownlint

View File

@ -1,41 +0,0 @@
name: "Trigger Site Rebuild on a CRON Schedule"
on:
schedule:
# runs at 02:00 every day, UTC
- cron: "0 2 * * *"
env:
GO_VERSION: 1.19.3
jobs:
benchmark-publish:
name: Run Benchmark
if: github.repository == 'open-feature/flagd'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
- name: Setup go
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4
with:
go-version: ${{ env.GO_VERSION }}
- name: Workspace init
run: make workspace-init
- name: Run benchmark
run: set -o pipefail; go test -bench=Bench -short -benchtime=5s -benchmem ./core/... | tee output.txt
- name: Store benchmark result
uses: benchmark-action/github-action-benchmark@v1
with:
name: Go Benchmark
tool: "go"
output-file-path: output.txt
github-token: ${{ secrets.GITHUB_TOKEN }}
auto-push: true
# Show alert with commit comment on detecting possible performance regression
alert-threshold: "130%"
comment-on-alert: true
fail-on-alert: false

View File

@ -8,7 +8,7 @@ env:
PUBLISHABLE_ITEMS: '["flagd","flagd-proxy"]'
REGISTRY: ghcr.io
REPO_OWNER: ${{ github.repository_owner }}
DEFAULT_GO_VERSION: 1.19
DEFAULT_GO_VERSION: '~1.21'
PUBLIC_KEY_FILE: publicKey.pub
GOPRIVATE: buf.build/gen/go
@ -19,23 +19,26 @@ jobs:
runs-on: ubuntu-latest
# Release-please creates a PR that tracks all changes
steps:
- uses: google-github-actions/release-please-action@ee9822ec2c397e8a364d634464339ac43a06e042 # v3
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- uses: google-github-actions/release-please-action@v3
id: release
with:
command: manifest
token: ${{secrets.GITHUB_TOKEN}}
default-branch: main
signoff: "OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>"
- name: Dump Release Please Output
env:
RELEASE_PLEASE_OUTPUT: ${{ toJson(steps.release.outputs) }}
run: |
echo "$RELEASE_PLEASE_OUTPUT"
- name: Determine what should be published
uses: actions/github-script@98814c53be79b1d30f795b907e553d8679345975 # v6
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
id: items-to-publish
env:
CHANGED_ITEMS: '${{ steps.release.outputs.paths_released }}'
CHANGED_ITEMS: "${{ steps.release.outputs.paths_released }}"
with:
# Release please outputs a string representation of an array under the key paths_released
# This script parses the output, and filters each of the changed items (provided as paths to the root of the package, e.g. flagd or core)
@ -50,75 +53,75 @@ jobs:
console.log("items to publish", itemsToPublish);
return itemsToPublish;
outputs:
date: ${{ steps.date.outputs.date }}
items_to_publish: ${{ steps.items-to-publish.outputs.result }}
flagd_version: ${{ steps.release.outputs.flagd--version }}
flagd_tag_name: ${{ steps.release.outputs.flagd--tag_name }}
flagd-proxy_version: ${{ steps.release.outputs.flagd-proxy--version }}
flagd-proxy_tag_name: ${{ steps.release.outputs.flagd-proxy--tag_name }}
container-release:
name: Build and push containers to GHCR
needs: release-please
runs-on: ubuntu-latest
environment: publish
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.items_to_publish != '' && toJson(fromJson(needs.release-please.outputs.items_to_publish)) != '[]' }}
strategy:
matrix:
matrix:
path: ${{ fromJSON(needs.release-please.outputs.items_to_publish) }}
env:
TAG: ${{ needs.release-please.outputs[format('{0}_tag_name', matrix.path)] }}
TAG: ${{ needs.release-please.outputs[format('{0}_tag_name', matrix.path)] }}
VERSION: v${{ needs.release-please.outputs[format('{0}_version', matrix.path)] }}
steps:
- name: Checkout
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
with:
ref: ${{ env.TAG }}
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
uses: docker/login-action@3d58c274f17dffee475a5520cbe67f0a882c4dbb
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
with:
images: ${{ env.REGISTRY }}/${{ matrix.path }}
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: all
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@master
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Build
id: build
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 # v4
uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56 # v5
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
file: ./${{ matrix.path }}/build.Dockerfile
platforms: linux/amd64,linux/arm64
provenance: mode=max
sbom: true
push: true
tags: |
${{ env.REGISTRY }}/${{ env.REPO_OWNER }}/${{ matrix.path }}:latest
${{ env.REGISTRY }}/${{ env.REPO_OWNER }}/${{ matrix.path }}:${{ env.VERSION }}
labels: ${{ steps.meta.outputs.labels }}
labels: ${{ steps.meta.outputs.labels }}
build-args: |
VERSION=${{ env.VERSION }}
COMMIT=${{ github.sha }}
DATE=${{ steps.date.outputs.date }}
DATE=${{ needs.release-please.outputs.date }}
- name: Install Cosign
uses: sigstore/cosign-installer@8348525c79cd67509c593a9352954618bdc3a862
uses: sigstore/cosign-installer@e1523de7571e31dbe865fd2e80c5c7c23ae71eb4
- name: Sign the image
run: |
@ -128,48 +131,40 @@ jobs:
COSIGN_PRIVATE_KEY: ${{secrets.COSIGN_PRIVATE_KEY}}
COSIGN_PASSWORD: ${{secrets.COSIGN_PASSWORD}}
- name: Generate image SBOM file name
id: image-sbom-file-gen
run: echo "IMG_SBOM_FILE=${{ format('{0}-{1}-sbom.spdx', matrix.path, env.VERSION) }}" >> $GITHUB_OUTPUT
- name: SBOM for latest image
uses: anchore/sbom-action@448520c4f19577ffce70a8317e619089054687e3 # v0
with:
image: ${{ env.REGISTRY }}/${{ env.REPO_OWNER }}/${{ matrix.path }}:${{ env.VERSION }}
artifact-name: ${{ steps.image-sbom-file-gen.outputs.IMG_SBOM_FILE }}
output-file: ${{ steps.image-sbom-file-gen.outputs.IMG_SBOM_FILE }}
- name: Bundle release assets
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
with:
tag_name: ${{ env.TAG }}
files: |
${{ env.PUBLIC_KEY_FILE }}
${{ steps.image-sbom-file-gen.outputs.IMG_SBOM_FILE }}
release-go-binaries:
name: Create and publish binaries to GitHub
needs: release-please
runs-on: ubuntu-latest
runs-on: ubuntu-latest
if: ${{ needs.release-please.outputs.items_to_publish != '' && toJson(fromJson(needs.release-please.outputs.items_to_publish)) != '[]' }}
strategy:
matrix:
matrix:
path: ${{ fromJSON(needs.release-please.outputs.items_to_publish) }}
env:
TAG: ${{ needs.release-please.outputs[format('{0}_tag_name', matrix.path)] }}
TAG: ${{ needs.release-please.outputs[format('{0}_tag_name', matrix.path)] }}
VERSION: v${{ needs.release-please.outputs[format('{0}_version', matrix.path)] }}
VERSION_NO_PREFIX: ${{ needs.release-please.outputs[format('{0}_version', matrix.path)] }}
COMMIT: ${{ github.sha }}
DATE: ${{ needs.release-please.outputs.date }}
BUILD_ARGS: '-a -ldflags "-X main.version=${VERSION} -X main.commit=${COMMIT} -X main.date=${DATE}"'
steps:
- name: Checkout
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
with:
ref: ${{ env.TAG }}
- name: Set up Go
uses: actions/setup-go@4d34df0c2316fe8122ab82dc22947d607c0c91f9 # v4
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5
with:
go-version: ${{ env.DEFAULT_GO_VERSION }}
- name: Download cyclonedx-gomod
uses: CycloneDX/gh-gomod-generate-sbom@d4aee0cf5133055dbd98899978246c10c18c440f # v1
uses: CycloneDX/gh-gomod-generate-sbom@efc74245d6802c8cefd925620515442756c70d8f # v2
with:
version: v1
- name: setup for builds
@ -180,32 +175,34 @@ jobs:
cd ${{ matrix.path }} && cyclonedx-gomod app > ../sbom.xml
- name: build darwin arm64
run: |
env GOOS=darwin GOARCH=arm64 go build -o ./${{ matrix.path }}_darwin_arm64 ./${{ matrix.path }}/main.go
env CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build ${{ env.BUILD_ARGS }} -o ./${{ matrix.path }}_darwin_arm64 ./${{ matrix.path }}/main.go
tar -cvzf ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Darwin_arm64.tar.gz ./${{ matrix.path }}_darwin_arm64 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
- name: build darwin x86_64
run: |
env GOOS=darwin GOARCH=amd64 go build -o ./${{ matrix.path }}_darwin_x86_64 ./${{ matrix.path }}/main.go
env CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build ${{ env.BUILD_ARGS }} -o ./${{ matrix.path }}_darwin_x86_64 ./${{ matrix.path }}/main.go
tar -cvzf ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Darwin_x86_64.tar.gz ./${{ matrix.path }}_darwin_x86_64 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
- name: build linux arm64
run: |
env GOOS=linux GOARCH=arm64 go build -o ./${{ matrix.path }}_linux_arm64 ./${{ matrix.path }}/main.go
env CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build ${{ env.BUILD_ARGS }} -o ./${{ matrix.path }}_linux_arm64 ./${{ matrix.path }}/main.go
tar -cvzf ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Linux_arm64.tar.gz ./${{ matrix.path }}_linux_arm64 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
- name: build linux x86_64
run: |
env GOOS=linux GOARCH=amd64 go build -o ./${{ matrix.path }}_linux_x86_64 ./${{ matrix.path }}/main.go
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ${{ env.BUILD_ARGS }} -o ./${{ matrix.path }}_linux_x86_64 ./${{ matrix.path }}/main.go
tar -cvzf ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Linux_x86_64.tar.gz ./${{ matrix.path }}_linux_x86_64 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
- name: build linux i386
run: |
env GOOS=linux GOARCH=386 go build -o ./${{ matrix.path }}_linux_i386 ./${{ matrix.path }}/main.go
env CGO_ENABLED=0 GOOS=linux GOARCH=386 go build ${{ env.BUILD_ARGS }} -o ./${{ matrix.path }}_linux_i386 ./${{ matrix.path }}/main.go
tar -cvzf ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Linux_i386.tar.gz ./${{ matrix.path }}_linux_i386 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
# Windows artifacts use .zip archive
- name: build windows x86_64
run: |
env GOOS=windows GOARCH=amd64 go build -o ./${{ matrix.path }}_windows_x86_64 ./${{ matrix.path }}/main.go
tar -cvzf ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Windows_x86_64.tar.gz ./${{ matrix.path }}_windows_x86_64 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
env CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build ${{ env.BUILD_ARGS }} -o ./${{ matrix.path }}_windows_x86_64 ./${{ matrix.path }}/main.go
zip -r ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Windows_x86_64.zip ./${{ matrix.path }}_windows_x86_64 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
- name: build windows i386
run: |
env GOOS=windows GOARCH=386 go build -o ./${{ matrix.path }}_windows_i386 ./${{ matrix.path }}/main.go
tar -cvzf ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Windows_i386.tar.gz ./${{ matrix.path }}_windows_i386 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
env CGO_ENABLED=0 GOOS=windows GOARCH=386 go build ${{ env.BUILD_ARGS }} -o ./${{ matrix.path }}_windows_i386 ./${{ matrix.path }}/main.go
zip -r ${{ matrix.path }}_${{ env.VERSION_NO_PREFIX }}_Windows_i386.zip ./${{ matrix.path }}_windows_i386 ./LICENSE ./CHANGELOG.md ./README.md ./sbom.xml
# Bundle release artifacts
- name: Bundle release assets
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
with:
@ -213,20 +210,24 @@ jobs:
files: |
./sbom.xml
./*.tar.gz
./*.zip
homebrew:
name: Bump homebrew-core formula
needs: release-please
runs-on: ubuntu-latest
# Only run on non-forked flagd releases
if: ${{ github.repository_owner == 'open-feature' && needs.release-please.outputs.flagd_tag_name }}
steps:
- uses: mislav/bump-homebrew-formula-action@v2
with:
formula-name: flagd
tag-name: ${{ needs.release-please.outputs.flagd_tag_name }}
download-url: https://github.com/${{ github.repository }}.git
commit-message: |
{{formulaName}} {{version}}
Created by https://github.com/mislav/bump-homebrew-formula-action
env:
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}
name: Bump homebrew-core formula
needs: release-please
runs-on: ubuntu-latest
# Only run on non-forked flagd releases
if: ${{ github.repository_owner == 'open-feature' && needs.release-please.outputs.flagd_tag_name }}
steps:
- uses: mislav/bump-homebrew-formula-action@v2
with:
formula-name: flagd
# https://github.com/mislav/bump-homebrew-formula-action/issues/58
formula-path: Formula/f/flagd.rb
tag-name: ${{ needs.release-please.outputs.flagd_tag_name }}
download-url: https://github.com/${{ github.repository }}.git
commit-message: |
{{formulaName}} ${{ needs.release-please.outputs.flagd_version }}
Created by https://github.com/mislav/bump-homebrew-formula-action
env:
COMMITTER_TOKEN: ${{ secrets.COMMITTER_TOKEN }}

14
.gitignore vendored
View File

@ -11,4 +11,16 @@ pkg/eval/flagd-definitions.json
core-coverage.out
go.work
go.work.sum
bin/
bin/
node_modules/
.venv
# built documentation
site
.cache/
# coverage results
*coverage.out
# benchmark results
benchmark.txt

6
.gitmodules vendored
View File

@ -1,3 +1,9 @@
[submodule "test-harness"]
path = test-harness
url = https://github.com/open-feature/test-harness.git
[submodule "spec"]
path = spec
url = https://github.com/open-feature/spec.git
[submodule "schemas"]
path = schemas
url = https://github.com/open-feature/flagd-schemas.git

30
.golangci.bck.yml Normal file
View File

@ -0,0 +1,30 @@
run:
timeout: 3m
linters-settings:
funlen:
statements: 50
golint:
min-confidence: 0.6
enable-all: true
issues:
exclude:
- pkg/generated
exclude-rules:
- path: _test.go
linters:
- funlen
- maligned
- noctx
- scopelint
- bodyclose
- lll
- goconst
- gocognit
- gocyclo
- dupl
- staticcheck
exclude-dirs:
- (^|/)bin($|/)
- (^|/)examples($|/)
- (^|/)schemas($|/)
- (^|/)test-harness($|/)

View File

@ -1,51 +1,43 @@
run:
skip-dirs:
- (^|/)bin($|/)
- (^|/)examples($|/)
version: "2"
linters:
enable:
- asciicheck
- bodyclose
- dogsled
- dupl
- funlen
- gocognit
- goconst
- gocritic
- gocyclo
- revive
- gosec
- lll
- misspell
- nakedret
- noctx
- prealloc
- rowserrcheck
- exportloopref
- stylecheck
- unconvert
- unparam
- whitespace
- gofumpt
linters-settings:
funlen:
statements: 50
golint:
min-confidence: 0.6
issues:
exclude:
- pkg/generated
exclude-rules:
- path: _test.go
linters:
- funlen
- maligned
- noctx
- scopelint
- bodyclose
- lll
- goconst
- gocognit
- gocyclo
- dupl
- staticcheck
settings:
funlen:
statements: 50
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
rules:
- linters:
- bodyclose
- dupl
- funlen
- gocognit
- goconst
- gocyclo
- lll
- maligned
- noctx
- scopelint
- staticcheck
path: _test.go
- path: (.+)\.go$
text: pkg/generated
paths:
- (^|/)bin($|/)
- (^|/)examples($|/)
- (^|/)schemas($|/)
- (^|/)test-harness($|/)
- third_party$
- builtin$
- examples$
formatters:
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$

View File

@ -8,11 +8,24 @@ config:
- details
- summary
- img
- br
github-admonition: true
max-one-sentence-per-line: true
code-block-style: false # not compatible with mkdocs "details" panes
no-alt-text: false
descriptive-link-text: false
MD007:
indent: 4
ignores:
- "**/CHANGELOG.md"
- "docs/specification"
- ".venv"
- "node_modules"
- "playground-app/node_modules"
- "tmp"
- "**/protos.md" # auto-generated
- "docs/playground" # auto-generated
- "docs/providers/*.md" # auto-generated
- "schemas" # submodule
- "spec" # submodule
- "test-harness" # submodule

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
20

View File

@ -5,6 +5,6 @@ repos:
- id: gofumpt
- repo: https://github.com/golangci/golangci-lint
rev: v1.46.2
rev: v1.50.1
hooks:
- id: golangci-lint

View File

@ -1,5 +1,5 @@
{
"flagd": "0.5.0",
"flagd-proxy": "0.2.0",
"core": "0.5.0"
"flagd": "0.12.9",
"flagd-proxy": "0.8.0",
"core": "0.12.1"
}

View File

@ -3,4 +3,4 @@
#
# Managed by Peribolos: https://github.com/open-feature/community/blob/main/config/open-feature/cloud-native/workgroup.yaml
#
* @open-feature/cloud-native-maintainers
* @open-feature/flagd-maintainers @open-feature/maintainers

View File

@ -8,6 +8,24 @@ TLDR: be respectful.
Any contributions are expected to include unit tests.
These can be validated with `make test` or the automated github workflow will run them on PR creation.
## Development
### Prerequisites
You'll need:
- Go
- make
- docker
You'll want:
- curl (for calling HTTP endpoints)
- [grpcurl](https://github.com/fullstorydev/grpcurl) (for making gRPC calls)
- jq (for pretty printing responses)
### Workspace Initialization
This project uses a go workspace, to setup the project run
```shell
@ -22,5 +40,154 @@ The project uses remote buf packages, changing the remote generation source will
export GOPRIVATE=buf.build/gen/go
```
### Manual testing
flagd has a number of interfaces (you can read more about them at [flagd.dev](https://flagd.dev/)) which can be used to evaluate flags, or deliver flag configurations so that they can be evaluated by _in-process_ providers.
You can manually test this functionality by starting flagd (from the flagd/ directory) with `go run main.go start -f file:../config/samples/example_flags.flagd.json`.
NOTE: you will need `go, curl`
#### Remote single flag evaluation via HTTP1.1/Connect
```sh
# evaluates a single boolean flag
curl -X POST -d '{"flagKey":"myBoolFlag","context":{}}' -H "Content-Type: application/json" "http://localhost:8013/flagd.evaluation.v1.Service/ResolveBoolean" | jq
```
#### Remote single flag evaluation via HTTP1.1/OFREP
```sh
# evaluates a single boolean flag
curl -X POST -d '{"context":{}}' 'http://localhost:8016/ofrep/v1/evaluate/flags/myBoolFlag' | jq
```
#### Remote single flag evaluation via gRPC
```sh
# evaluates a single boolean flag
grpcurl -import-path schemas/protobuf/flagd/evaluation/v1/ -proto evaluation.proto -plaintext -d '{"flagKey":"myBoolFlag"}' localhost:8013 flagd.evaluation.v1.Service/ResolveBoolean | jq
```
#### Remote bulk evaluation via HTTP1.1/OFREP
```sh
# evaluates flags in bulk
curl -X POST -d '{"context":{}}' 'http://localhost:8016/ofrep/v1/evaluate/flags' | jq
```
#### Remote bulk evaluation via gRPC
```sh
# evaluates flags in bulk
grpcurl -import-path schemas/protobuf/flagd/evaluation/v1/ -proto evaluation.proto -plaintext -d '{}' localhost:8013 flagd.evaluation.v1.Service/ResolveAll | jq
```
#### Remote event streaming via gRPC
```sh
# notifies of flag changes (but does not evaluate)
grpcurl -import-path schemas/protobuf/flagd/evaluation/v1/ -proto evaluation.proto -plaintext -d '{}' localhost:8013 flagd.evaluation.v1.Service/EventStream
```
#### Flag configuration fetch via gRPC
```sh
# sends back a representation of all flags
grpcurl -import-path schemas/protobuf/flagd/sync/v1/ -proto sync.proto -plaintext localhost:8015 flagd.sync.v1.FlagSyncService/FetchAllFlags | jq
```
#### Flag synchronization stream via gRPC
```sh
# will open a persistent stream which sends flag changes when the watched source is modified
grpcurl -import-path schemas/protobuf/flagd/sync/v1/ -proto sync.proto -plaintext localhost:8015 flagd.sync.v1.FlagSyncService/SyncFlags | jq
```
## DCO Sign-Off
A DCO (Developer Certificate of Origin) sign-off is a line placed at the end of
a commit message containing a contributor's "signature." In adding this, the
contributor certifies that they have the right to contribute the material in
question.
Here are the steps to sign your work:
1. Verify the contribution in your commit complies with the
[terms of the DCO](https://developercertificate.org/).
1. Add a line like the following to your commit message:
```shell
Signed-off-by: Joe Smith <joe.smith@example.com>
```
You MUST use your legal name -- handles or other pseudonyms are not
permitted.
While you could manually add DCO sign-off to every commit, there is an easier
way:
1. Configure your git client appropriately. This is one-time setup.
```shell
git config user.name <legal name>
git config user.email <email address you use for GitHub>
```
If you work on multiple projects that require a DCO sign-off, you can
configure your git client to use these settings globally instead of only
for Brigade:
```shell
git config --global user.name <legal name>
git config --global user.email <email address you use for GitHub>
```
1. Use the `--signoff` or `-s` (lowercase) flag when making each commit.
For example:
```shell
git commit --message "<commit message>" --signoff
```
If you ever make a commit and forget to use the `--signoff` flag, you
can amend your commit with this information before pushing:
```shell
git commit --amend --signoff
```
1. You can verify the above worked as expected using `git log`. Your latest
commit should look similar to this one:
```shell
Author: Joe Smith <joe.smith@example.com>
Date: Thu Feb 2 11:41:15 2018 -0800
Update README
Signed-off-by: Joe Smith <joe.smith@example.com>
```
Notice the `Author` and `Signed-off-by` lines match. If they do not, the
PR will be rejected by the automated DCO check.
## Conventional PR Titles
When raising PRs, please format according to [conventional commit standards](https://www.conventionalcommits.org/en/v1.0.0/#summary)
For example: `docs: some PR title here...`
Thanks!
Issues and pull requests following these guidelines are welcome.
## Markdown Lint and Markdown Lint Fix
PRs are expected to conform to markdown lint rules.
Therefore, run `make markdownlint-fix` to auto-fix _most_ issues.
Then commit the results.
For those issues that cannot be auto-fixed, run `make markdownlint`
then manually fix whatever it warns about.

2
Dockerfile Normal file
View File

@ -0,0 +1,2 @@
FROM squidfunk/mkdocs-material:9.5
RUN pip install mkdocs-include-markdown-plugin

109
Makefile
View File

@ -1,8 +1,17 @@
IMG ?= flagd:latest
PHONY: .docker-build .build .run .mockgen
PREFIX=/usr/local
PUBLIC_JSON_SCHEMA_DIR=docs/schema/v0/
ALL_GO_MOD_DIRS := $(shell find . -type f -name 'go.mod' -exec dirname {} \; | sort)
FLAGD_DEV_NAMESPACE ?= flagd-dev
ZD_TEST_NAMESPACE_FLAGD_PROXY ?= flagd-proxy-zd-test
ZD_TEST_NAMESPACE ?= flagd-zd-test
ZD_CLIENT_IMG ?= zd-client:latest
FLAGD_PROXY_IMG ?= flagd-proxy:latest
FLAGD_PROXY_IMG_ZD ?= flagd-proxy:zd
DOCS_DIR ?= docs
workspace-init: workspace-clean
go work init
$(foreach module, $(ALL_GO_MOD_DIRS), go work use $(module);)
@ -30,17 +39,27 @@ build: workspace-init # default to flagd
make build-flagd
build-flagd:
go build -ldflags "-X main.version=dev -X main.commit=$$(git rev-parse --short HEAD) -X main.date=$$(date +%FT%TZ)" -o ./bin/flagd ./flagd
test: # default to core
make test-core
.PHONY: test
test: test-core test-flagd test-flagd-proxy
test-core:
go test -race -covermode=atomic -cover -short ./core/pkg/... -coverprofile=core-coverage.out
flagd-integration-test: # dependent on ./bin/flagd start -f file:test-harness/symlink_testing-flags.json
go test -cover ./flagd/tests/integration $(ARGS)
cd test-harness; git restore testing-flags.json # reset testing-flags.json
test-flagd:
go test -race -covermode=atomic -cover -short ./flagd/pkg/... -coverprofile=flagd-coverage.out
test-flagd-proxy:
go test -race -covermode=atomic -cover -short ./flagd-proxy/pkg/... -coverprofile=flagd-proxy-coverage.out
flagd-benchmark-test:
go test -bench=Bench -short -benchtime=5s -benchmem ./core/... | tee benchmark.txt
flagd-integration-test-harness:
# target used to start a locally built flagd with the e2e flags
cd flagd; go run main.go start -f file:../test-harness/flags/testing-flags.json -f file:../test-harness/flags/custom-ops.json -f file:../test-harness/flags/evaluator-refs.json -f file:../test-harness/flags/zero-flags.json -f file:../test-harness/flags/edge-case-flags.json
flagd-integration-test: # dependent on flagd-e2e-test-harness if not running in github actions
go test -count=1 -cover ./test/integration $(ARGS)
run: # default to flagd
make run-flagd
run-flagd:
cd flagd; go run main.go start -f file:../config/samples/example_flags.flagd.json
cd flagd; go run main.go start -f file:../config/samples/example_flags.flagd.json
run-flagd-selector-demo:
cd flagd; go run main.go start -f file:../config/samples/example_flags.flagd.json -f file:../config/samples/example_flags.flagd.2.json
install:
cp systemd/flagd.service /etc/systemd/system/flagd.service
mkdir -p /etc/flagd
@ -54,19 +73,42 @@ uninstall:
rm /etc/systemd/system/flagd.service
rm -f $(DESTDIR)$(PREFIX)/bin/flagd
lint:
go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@latest
$(foreach module, $(ALL_GO_MOD_DIRS), ${GOPATH}/bin/golangci-lint run --deadline=3m --timeout=3m $(module)/... || exit;)
go install -v github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.2.1
$(foreach module, $(ALL_GO_MOD_DIRS), ${GOPATH}/bin/golangci-lint run $(module)/...;)
lint-fix:
go install -v github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.2.1
$(foreach module, $(ALL_GO_MOD_DIRS), ${GOPATH}/bin/golangci-lint run --fix $(module)/...;)
install-mockgen:
go install github.com/golang/mock/mockgen@v1.6.0
go install go.uber.org/mock/mockgen@v0.4.0
mockgen: install-mockgen
cd core; mockgen -source=pkg/sync/http/http_sync.go -destination=pkg/sync/http/mock/http.go -package=syncmock
cd core; mockgen -source=pkg/sync/grpc/grpc_sync.go -destination=pkg/sync/grpc/mock/grpc.go -package=grpcmock
cd core; mockgen -source=pkg/sync/grpc/credentials/builder.go -destination=pkg/sync/grpc/credentials/mock/builder.go -package=credendialsmock
cd core; mockgen -source=pkg/eval/ievaluator.go -destination=pkg/eval/mock/ievaluator.go -package=evalmock
cd core; mockgen -source=pkg/service/middleware/interface.go -destination=pkg/service/middleware/mock/interface.go -package=middlewaremock
cd core; mockgen -source=pkg/evaluator/ievaluator.go -destination=pkg/evaluator/mock/ievaluator.go -package=evalmock
cd core; mockgen -source=pkg/sync/builder/syncbuilder.go -destination=pkg/sync/builder/mock/syncbuilder.go -package=middlewaremocksyncbuildermock
cd flagd; mockgen -source=pkg/service/middleware/interface.go -destination=pkg/service/middleware/mock/interface.go -package=middlewaremock
generate-docs:
cd flagd; go run ./cmd/doc/main.go
.PHONY: deploy-dev-env
export IMG?= ghcr.io/open-feature/flagd:latest
deploy-dev-env: undeploy-dev-env
kubectl create ns "$(FLAGD_DEV_NAMESPACE)"
envsubst '$${IMG}' < config/deployments/flagd/deployment.yaml | kubectl apply -f - -n "$(FLAGD_DEV_NAMESPACE)"
kubectl apply -f config/deployments/flagd/service.yaml -n "$(FLAGD_DEV_NAMESPACE)"
kubectl wait --for=condition=available deployment/flagd -n "$(FLAGD_DEV_NAMESPACE)" --timeout=300s
undeploy-dev-env:
kubectl delete ns "$(FLAGD_DEV_NAMESPACE)" --ignore-not-found=true
run-zd-test:
kubectl delete ns "$(ZD_TEST_NAMESPACE)" --ignore-not-found=true
kubectl create ns "$(ZD_TEST_NAMESPACE)"
ZD_TEST_NAMESPACE="$(ZD_TEST_NAMESPACE)" FLAGD_DEV_NAMESPACE=$(FLAGD_DEV_NAMESPACE) IMG="$(IMG)" IMG_ZD="$(IMG_ZD)" ./test/zero-downtime/zd_test.sh
run-flagd-proxy-zd-test:
ZD_TEST_NAMESPACE_FLAGD_PROXY="$(ZD_TEST_NAMESPACE_FLAGD_PROXY)" FLAGD_PROXY_IMG="$(FLAGD_PROXY_IMG)" FLAGD_PROXY_IMG_ZD="$(FLAGD_PROXY_IMG_ZD)" ZD_CLIENT_IMG="$(ZD_CLIENT_IMG)" ./test/zero-downtime-flagd-proxy/zd_test.sh
# Markdown lint configuration
#
# - .markdownlintignore holds the configuration for files to be ignored
@ -80,4 +122,45 @@ markdownlint:
$(MDL_CMD) davidanson/markdownlint-cli2-rules:$(MDL_DOCKER_VERSION) "**/*.md"
markdownlint-fix:
$(MDL_CMD) --entrypoint="markdownlint-cli2-fix" davidanson/markdownlint-cli2-rules:$(MDL_DOCKER_VERSION) "**/*.md"
$(MDL_CMD) --entrypoint="markdownlint-cli2-fix" davidanson/markdownlint-cli2-rules:$(MDL_DOCKER_VERSION) "**/*.md"
.PHONY: pull-schemas-submodule
pull-schemas-submodule:
git submodule update schemas
.PHONY: generate-proto-docs
generate-proto-docs: pull-schemas-submodule
docker run --rm -v ${PWD}/$(DOCS_DIR)/reference/specifications:/out -v ${PWD}/schemas/protobuf:/protos pseudomuto/protoc-gen-doc --doc_opt=markdown,protos-with-toc.md flagd/evaluation/v1/evaluation.proto flagd/sync/v1/sync.proto \
&& echo '<!-- WARNING: THIS DOC IS AUTO-GENERATED. DO NOT EDIT! -->' > ${PWD}/$(DOCS_DIR)/reference/specifications/protos.md \
&& sed '/^## Table of Contents/,/#top/d' ${PWD}/$(DOCS_DIR)/reference/specifications/protos-with-toc.md >> ${PWD}/$(DOCS_DIR)/reference/specifications/protos.md \
&& rm -f ${PWD}/$(DOCS_DIR)/reference/specifications/protos-with-toc.md
# Update the schema at flagd.dev
# PUBLIC_JSON_SCHEMA_DIR above controls the dir (and therefore major version)
.PHONY: update-public-schema
update-public-schema: pull-schemas-submodule
rm -f $(PUBLIC_JSON_SCHEMA_DIR)*.json
cp schemas/json/*.json $(PUBLIC_JSON_SCHEMA_DIR)
.PHONY: run-web-docs
run-web-docs: generate-docs generate-proto-docs
docker build -t flag-docs:latest . --load \
&& docker run --rm -it -p 8000:8000 -v ${PWD}:/docs flag-docs:latest
# Run the playground app in dev mode
# See the readme in the playground-app folder for more details
.PHONY: playground-dev
playground-dev:
cd playground-app && npm ci && npm run dev
# Build the playground app
# See the readme in the playground-app folder for more details
.PHONY: playground-build
playground-build:
cd playground-app && npm ci && npm run build
# Publish the playground app to the docs folder
# See the readme in the playground-app folder for more details
.PHONY: playground-publish
playground-publish: playground-build
cp playground-app/dist/assets/index-*.js docs/playground/playground.js

View File

@ -21,22 +21,22 @@
## What's flagd?
Flagd is a feature flag daemon with a Unix philosophy. Think of it as a ready-made, open source, OpenFeature compliant feature flag backend system.
flagd is a feature flag daemon with a Unix philosophy. Think of it as a ready-made, open source, OpenFeature-compliant feature flag backend system.
## Features
- 🌐 OpenFeature compliant and [speaks your language](docs/usage/flagd_providers.md).
- 🆕 Easy to [extend to new languages](docs/other_resources/creating_providers.md).
- 🌐 OpenFeature compliant and [speaks your language](https://openfeature.dev/ecosystem?instant_search%5BrefinementList%5D%5Bvendor%5D%5B0%5D=flagd).
- 🆕 Easy to [extend to new languages](https://flagd.dev/reference/providers/).
- 🔄 Supports multiple data sources simultaneously.
- 🕒 Feature Flag updates occur in near real-time.
- 💪 Contains a [powerful and flexible rule targeting engine](docs/configuration/reusable_targeting_rules.md) and [deterministic percentage-based rollouts](docs/configuration/fractional_evaluation.md).
- 🔦 Flag evaluation statistics and metrics are exposed and compatible with Prometheus.
- 💪 Contains a [powerful and flexible rule targeting engine](https://flagd.dev/reference/flag-definitions/#targeting-rules) and [deterministic percentage-based rollouts](https://flagd.dev/reference/custom-operations/fractional-operation/).
- 🔦 Flag evaluation traces and metrics are exposed and compatible with [OpenTelemetry](https://flagd.dev/reference/monitoring/#opentelemetry).
## ▶️ Quick Start
Experiment with flagd in your browser using [the Killercoda tutorial](https://killercoda.com/open-feature/scenario/flagd-demo) or follow the instructions below to run on your own infrastructure.
1. flagd can be run as a standalone-binary or container. [Download and install flagd or run it as a container](docs/usage/installation_options.md)
1. flagd can be run as a standalone binary or container. [Download and install flagd or run it as a container](https://flagd.dev/installation/)
Kubernetes-native? flagd can also be run [as part of the Kubernetes Operator](https://github.com/open-feature/open-feature-operator).
@ -49,6 +49,8 @@ Experiment with flagd in your browser using [the Killercoda tutorial](https://ki
```
Or use docker:
_Note - In Windows, use WSL system for both the file location and Docker runtime. Mixed file systems don't
work and this is a [limitation of Docker](https://github.com/docker/for-win/issues/8479)_
```sh
docker run \
@ -73,7 +75,7 @@ Experiment with flagd in your browser using [the Killercoda tutorial](https://ki
--uri file:./example_flags.flagd.json
```
Or use docker:
Or use docker ( _Note - In Windows, this requires WSL system for both the file location and Docker runtime_):
```sh
docker run \
@ -85,7 +87,7 @@ Experiment with flagd in your browser using [the Killercoda tutorial](https://ki
--uri file:./etc/flagd/example_flags.flagd.json
```
`--uri` can be a local file or any remote endpoint. Use `file:` prefix for local files. eg. `--uri file:/path/to/example_flags.flagd.json`. `gRPC` and `http` have their own requirements. More information can be found [here](docs/configuration/configuration.md#uri-patterns).
`--uri` can be a local file or any remote endpoint. Use `file:` prefix for local files. eg. `--uri file:/path/to/example_flags.flagd.json`. `gRPC` and `http` have their own requirements. More information can be found [here](https://flagd.dev/concepts/syncs/).
Multiple `--uri` parameters can be specified. In other words, flagd can retrieve flags from multiple sources simultaneously.
@ -94,10 +96,18 @@ Experiment with flagd in your browser using [the Killercoda tutorial](https://ki
Retrieve a `String` value:
```sh
curl -X POST "http://localhost:8013/schema.v1.Service/ResolveString" \
curl -X POST "http://localhost:8013/flagd.evaluation.v1.Service/ResolveString" \
-d '{"flagKey":"myStringFlag","context":{}}' -H "Content-Type: application/json"
```
For Windows we recommend using a [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) terminal.
Otherwise, use the following with `cmd`:
```sh
set json={"flagKey":"myStringFlag","context":{}}
curl -i -X POST -H "Content-Type: application/json" -d %json:"=\"% "localhost:8013/flagd.evaluation.v1.Service/ResolveString"
```
Result:
```json
@ -108,11 +118,11 @@ Experiment with flagd in your browser using [the Killercoda tutorial](https://ki
}
```
Updates to the underlying flag store (e.g. JSON file) are reflected by flagd in realtime. No restarts required.
Updates to the underlying flag store (e.g. JSON file) are reflected by flagd in realtime. No restart is required.
flagd also supports boolean, integer, float and object flag types. Read more on the [evaluation examples page](docs/usage/evaluation_examples.md)
flagd also supports boolean, integer, float and object flag types.
4. Now that flagd is running, it is time to integrate into your application. Do this by using [an OpenFeature provider in a language of your choice](https://github.com/open-feature/flagd/blob/main/docs/usage/flagd_providers.md).
4. Now that flagd is running, it is time to integrate it into your application. Do this by using [an OpenFeature provider in a language of your choice](https://openfeature.dev/ecosystem?instant_search%5BrefinementList%5D%5Bvendor%5D%5B0%5D=FlagD).
## 📐 High-level Architecture
@ -120,14 +130,14 @@ Experiment with flagd in your browser using [the Killercoda tutorial](https://ki
## 📝 Further Documentation
Further documentation including flagd configuration options, fractional evaluation, targeting rules and flag configuration merging strategies can be found [on this page](docs/README.md).
Further documentation including flagd configuration options, fractional evaluation, targeting rules and flag configuration merging strategies can be found at [flagd.dev](https://flagd.dev/) or [in this repository](./docs/index.md).
## 🫶 Contributing
Interested in contributing? Great, we'd love your help! To get started, take a look at the [CONTRIBUTING](CONTRIBUTING.md) guide.
We also hold regular community meetings that are open to everyone.
Check the [OpenFeature community page](https://docs.openfeature.dev/community/) for all the ways to get involved.
Check the [OpenFeature community page](https://openfeature.dev/community/) for all the ways to get involved.
Thanks so much to our contributors.

72
benchmark.txt Normal file
View File

@ -0,0 +1,72 @@
PASS
ok github.com/open-feature/flagd/core/pkg/certreloader 15.986s
goos: linux
goarch: amd64
pkg: github.com/open-feature/flagd/core/pkg/evaluator
cpu: 11th Gen Intel(R) Core(TM) i9-11950H @ 2.60GHz
BenchmarkFractionalEvaluation/test_a@faas.com-16 423930 13316 ns/op 7229 B/op 135 allocs/op
BenchmarkFractionalEvaluation/test_b@faas.com-16 469594 13677 ns/op 7229 B/op 135 allocs/op
BenchmarkFractionalEvaluation/test_c@faas.com-16 569103 13286 ns/op 7229 B/op 135 allocs/op
BenchmarkFractionalEvaluation/test_d@faas.com-16 412386 13023 ns/op 7229 B/op 135 allocs/op
BenchmarkResolveBooleanValue/test_staticBoolFlag-16 3106903 1792 ns/op 1008 B/op 11 allocs/op
BenchmarkResolveBooleanValue/test_targetingBoolFlag-16 448164 11250 ns/op 6065 B/op 87 allocs/op
BenchmarkResolveBooleanValue/test_staticObjectFlag-16 3958750 1476 ns/op 1008 B/op 11 allocs/op
BenchmarkResolveBooleanValue/test_missingFlag-16 5331808 1353 ns/op 784 B/op 12 allocs/op
BenchmarkResolveBooleanValue/test_disabledFlag-16 4530751 1301 ns/op 1072 B/op 13 allocs/op
BenchmarkResolveStringValue/test_staticStringFlag-16 4583056 1525 ns/op 1040 B/op 13 allocs/op
BenchmarkResolveStringValue/test_targetingStringFlag-16 839954 10388 ns/op 6097 B/op 89 allocs/op
BenchmarkResolveStringValue/test_staticObjectFlag-16 4252830 1677 ns/op 1008 B/op 11 allocs/op
BenchmarkResolveStringValue/test_missingFlag-16 3743324 1495 ns/op 784 B/op 12 allocs/op
BenchmarkResolveStringValue/test_disabledFlag-16 3495699 1709 ns/op 1072 B/op 13 allocs/op
BenchmarkResolveFloatValue/test:_staticFloatFlag-16 4382868 1511 ns/op 1024 B/op 13 allocs/op
BenchmarkResolveFloatValue/test:_targetingFloatFlag-16 867987 10344 ns/op 6081 B/op 89 allocs/op
BenchmarkResolveFloatValue/test:_staticObjectFlag-16 3913120 1695 ns/op 1008 B/op 11 allocs/op
BenchmarkResolveFloatValue/test:_missingFlag-16 3910468 1349 ns/op 784 B/op 12 allocs/op
BenchmarkResolveFloatValue/test:_disabledFlag-16 3642919 1666 ns/op 1072 B/op 13 allocs/op
BenchmarkResolveIntValue/test_staticIntFlag-16 4077288 1349 ns/op 1008 B/op 11 allocs/op
BenchmarkResolveIntValue/test_targetingNumberFlag-16 922383 7601 ns/op 6065 B/op 87 allocs/op
BenchmarkResolveIntValue/test_staticObjectFlag-16 4995128 1229 ns/op 1008 B/op 11 allocs/op
BenchmarkResolveIntValue/test_missingFlag-16 5574153 1274 ns/op 768 B/op 12 allocs/op
BenchmarkResolveIntValue/test_disabledFlag-16 3633708 1734 ns/op 1072 B/op 13 allocs/op
BenchmarkResolveObjectValue/test_staticObjectFlag-16 1624102 4559 ns/op 2243 B/op 37 allocs/op
BenchmarkResolveObjectValue/test_targetingObjectFlag-16 443880 11995 ns/op 7283 B/op 109 allocs/op
BenchmarkResolveObjectValue/test_staticBoolFlag-16 3462445 1665 ns/op 1008 B/op 11 allocs/op
BenchmarkResolveObjectValue/test_missingFlag-16 4207567 1458 ns/op 784 B/op 12 allocs/op
BenchmarkResolveObjectValue/test_disabledFlag-16 3407262 1848 ns/op 1072 B/op 13 allocs/op
PASS
ok github.com/open-feature/flagd/core/pkg/evaluator 239.506s
? github.com/open-feature/flagd/core/pkg/evaluator/mock [no test files]
PASS
ok github.com/open-feature/flagd/core/pkg/logger 0.003s
? github.com/open-feature/flagd/core/pkg/model [no test files]
? github.com/open-feature/flagd/core/pkg/service [no test files]
PASS
ok github.com/open-feature/flagd/core/pkg/service/ofrep 0.002s
PASS
ok github.com/open-feature/flagd/core/pkg/store 0.003s
? github.com/open-feature/flagd/core/pkg/sync [no test files]
PASS
ok github.com/open-feature/flagd/core/pkg/sync/blob 0.016s
PASS
ok github.com/open-feature/flagd/core/pkg/sync/builder 0.018s
? github.com/open-feature/flagd/core/pkg/sync/builder/mock [no test files]
PASS
ok github.com/open-feature/flagd/core/pkg/sync/file 1.007s
PASS
ok github.com/open-feature/flagd/core/pkg/sync/grpc 8.011s
PASS
ok github.com/open-feature/flagd/core/pkg/sync/grpc/credentials 0.008s
? github.com/open-feature/flagd/core/pkg/sync/grpc/credentials/mock [no test files]
? github.com/open-feature/flagd/core/pkg/sync/grpc/mock [no test files]
PASS
ok github.com/open-feature/flagd/core/pkg/sync/grpc/nameresolvers 0.002s
PASS
ok github.com/open-feature/flagd/core/pkg/sync/http 4.006s
? github.com/open-feature/flagd/core/pkg/sync/http/mock [no test files]
PASS
ok github.com/open-feature/flagd/core/pkg/sync/kubernetes 0.016s
? github.com/open-feature/flagd/core/pkg/sync/testing [no test files]
PASS
ok github.com/open-feature/flagd/core/pkg/telemetry 0.016s
PASS
ok github.com/open-feature/flagd/core/pkg/utils 0.002s

View File

@ -0,0 +1,75 @@
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: flagd
name: flagd
spec:
replicas: 1
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: flagd
template:
metadata:
labels:
app.kubernetes.io/name: flagd
app: flagd
spec:
containers:
- name: flagd
image: ${IMG}
volumeMounts:
- name: config-volume
mountPath: /etc/flagd
readinessProbe:
httpGet:
path: /readyz
port: 8014
initialDelaySeconds: 5
periodSeconds: 5
livenessProbe:
httpGet:
path: /healthz
port: 8014
initialDelaySeconds: 5
periodSeconds: 60
ports:
- containerPort: 8013
args:
- start
- --uri
- file:/etc/flagd/config.json
- --debug
volumes:
- name: config-volume
configMap:
name: open-feature-flags
items:
- key: flags
path: config.json
---
# ConfigMap for Flagd OpenFeatuer provider
apiVersion: v1
kind: ConfigMap
metadata:
name: open-feature-flags
data:
flags: |
{
"$schema": "https://flagd.dev/schema/v0/flags.json",
"flags": {
"myStringFlag": {
"state": "ENABLED",
"variants": {
"key1": "val1",
"key2": "val2"
},
"defaultVariant": "key1"
}
}
}

View File

@ -0,0 +1,10 @@
apiVersion: v1
kind: Service
metadata:
name: flagd-svc
spec:
selector:
app.kubernetes.io/name: flagd
ports:
- port: 8013
targetPort: 8013

View File

@ -0,0 +1,17 @@
{
"$schema": "https://flagd.dev/schema/v0/flags.json",
"metadata": {
"flagSetId": "other",
"version": "v1"
},
"flags": {
"myStringFlag": {
"state": "ENABLED",
"variants": {
"dupe1": "dupe1",
"dupe2": "dupe2"
},
"defaultVariant": "dupe1"
}
}
}

View File

@ -1,4 +1,9 @@
{
"$schema": "https://flagd.dev/schema/v0/flags.json",
"metadata": {
"flagSetId": "example",
"version": "v1"
},
"flags": {
"myBoolFlag": {
"state": "ENABLED",
@ -6,7 +11,10 @@
"on": true,
"off": false
},
"defaultVariant": "on"
"defaultVariant": "on",
"metadata": {
"version": "v2"
}
},
"myStringFlag": {
"state": "ENABLED",
@ -100,8 +108,10 @@
"$ref": "emailWithFaas"
},
{
"fractionalEvaluation": [
"email",
"fractional": [
{
"var": "email"
},
[
"red",
25
@ -132,17 +142,17 @@
"defaultVariant": "first",
"state": "ENABLED",
"targeting": {
"if": [{
"in": ["@openfeature.dev", {
"var": "email"
}]
}, "second",
"if": [
{
"in": ["Chrome", {
"var": "userAgent"
}]
}, "third",
null
"in": [
"@openfeature.dev",
{
"var": "email"
}
]
},
"second",
"first"
]
}
}

View File

@ -1,3 +1,4 @@
# yaml-language-server: $schema=https://flagd.dev/schema/v0/flags.json
flags:
myBoolFlag:
state: ENABLED
@ -69,8 +70,8 @@ flags:
targeting:
if:
- "$ref": emailWithFaas
- fractionalEvaluation:
- email
- fractional:
- var: email
- - red
- 25
- - blue
@ -88,16 +89,13 @@ flags:
defaultVariant: first
state: ENABLED
targeting:
if:
- in:
- "@openfeature.dev"
- var: email
- second
- in:
- Chrome
- var: userAgent
- third
-
if:
- in:
- "@openfeature.dev"
- var: email
- second
- first
"$evaluators":
emailWithFaas:
in:

View File

@ -1,4 +1,5 @@
{
"$schema": "https://flagd.dev/schema/v0/flags.json",
"flags": {
"myBoolFlag": {
"state": "ENABLED",
@ -101,7 +102,9 @@
},
{
"fractionalEvaluation": [
"email",
{
"var": "email"
},
[
"red",
25

View File

@ -1,3 +1,4 @@
# yaml-language-server: $schema=https://flagd.dev/schema/v0/flags.json
flags:
myBoolFlag:
state: ENABLED
@ -70,7 +71,7 @@ flags:
if:
- "$ref": emailWithFaas
- fractionalEvaluation:
- email
- var: email
- - red
- 25
- - blue

View File

@ -1,4 +1,8 @@
{
"$schema": "https://flagd.dev/schema/v0/flags.json",
"metadata": {
"version": "v2"
},
"flags": {
"myBoolFlag": {
"state": "ENABLED",

View File

@ -1,4 +1,5 @@
{
"$schema": "https://flagd.dev/schema/v0/flags.json",
"flags": {
"myBoolFlag": {
"state": "ENABLED",

View File

@ -1,5 +1,798 @@
# Changelog
## [0.12.1](https://github.com/open-feature/flagd/compare/core/v0.12.0...core/v0.12.1) (2025-07-28)
### 🧹 Chore
* add back file-delete test ([#1694](https://github.com/open-feature/flagd/issues/1694)) ([750aa17](https://github.com/open-feature/flagd/commit/750aa176b5a8dd24a9daaff985ff6efeb084c758))
* fix benchmark ([#1698](https://github.com/open-feature/flagd/issues/1698)) ([5e2d7d7](https://github.com/open-feature/flagd/commit/5e2d7d7176ba05e667cd92acd7decb531a8de2f6))
## [0.12.0](https://github.com/open-feature/flagd/compare/core/v0.11.8...core/v0.12.0) (2025-07-21)
### ⚠ BREAKING CHANGES
* remove sync.Type ([#1691](https://github.com/open-feature/flagd/issues/1691))
### 🐛 Bug Fixes
* update to latest otel semconv ([#1668](https://github.com/open-feature/flagd/issues/1668)) ([81855d7](https://github.com/open-feature/flagd/commit/81855d76f94a09251a19a05f830cc1d11ab6b566))
### ✨ New Features
* Add support for HTTP eTag header and 304 no change response ([#1645](https://github.com/open-feature/flagd/issues/1645)) ([ea3be4f](https://github.com/open-feature/flagd/commit/ea3be4f9010644132795bb60b36fb7705f901b62))
* remove sync.Type ([#1691](https://github.com/open-feature/flagd/issues/1691)) ([ac647e0](https://github.com/open-feature/flagd/commit/ac647e065636071f5bc065a9a084461cea692166))
## [0.11.8](https://github.com/open-feature/flagd/compare/core/v0.11.7...core/v0.11.8) (2025-07-15)
### 🧹 Chore
* **deps:** update github.com/open-feature/flagd-schemas digest to 08b4c52 ([#1682](https://github.com/open-feature/flagd/issues/1682)) ([68d04e2](https://github.com/open-feature/flagd/commit/68d04e21e63c63d6054fcd6aebfb864e8b3a597e))
## [0.11.7](https://github.com/open-feature/flagd/compare/core/v0.11.6...core/v0.11.7) (2025-07-15)
### 🐛 Bug Fixes
* general err if targeting variant not in variants ([#1680](https://github.com/open-feature/flagd/issues/1680)) ([6cabfc8](https://github.com/open-feature/flagd/commit/6cabfc8ff3bd4ad69699a72724495e84cdec0cc3))
## [0.11.6](https://github.com/open-feature/flagd/compare/core/v0.11.5...core/v0.11.6) (2025-07-10)
### ✨ New Features
* add sync_context to SyncFlags ([#1642](https://github.com/open-feature/flagd/issues/1642)) ([07a45d9](https://github.com/open-feature/flagd/commit/07a45d9b2275584fa92ff33cbe5e5c7d7864db38))
* allowing null/missing defaultValue ([#1659](https://github.com/open-feature/flagd/issues/1659)) ([3f6b78c](https://github.com/open-feature/flagd/commit/3f6b78c8ccab75e9c07d26741c4b206fd0b722ee))
## [0.11.5](https://github.com/open-feature/flagd/compare/core/v0.11.4...core/v0.11.5) (2025-06-13)
### ✨ New Features
* add server-side deadline to sync service ([#1638](https://github.com/open-feature/flagd/issues/1638)) ([b70fa06](https://github.com/open-feature/flagd/commit/b70fa06b66e1fe8a28728441a7ccd28c6fe6a0c6))
* updating context using headers ([#1641](https://github.com/open-feature/flagd/issues/1641)) ([ba34815](https://github.com/open-feature/flagd/commit/ba348152b6e7b6bd7473bb11846aac7db316c88e))
## [0.11.4](https://github.com/open-feature/flagd/compare/core/v0.11.3...core/v0.11.4) (2025-05-28)
### 🐛 Bug Fixes
* incorrect comparison used for time ([#1608](https://github.com/open-feature/flagd/issues/1608)) ([8c5ac2f](https://github.com/open-feature/flagd/commit/8c5ac2f2c31e092cbe6ddb4d3c1adeeeb04e9ef9))
### 🧹 Chore
* **deps:** update dependency go to v1.24.1 ([#1559](https://github.com/open-feature/flagd/issues/1559)) ([cd46044](https://github.com/open-feature/flagd/commit/cd4604471bba0a1df67bf87653a38df3caf9d20f))
* **security:** upgrade dependency versions ([#1632](https://github.com/open-feature/flagd/issues/1632)) ([761d870](https://github.com/open-feature/flagd/commit/761d870a3c563b8eb1b83ee543b41316c98a1d48))
### 🔄 Refactoring
* Refactor the cron function in http sync ([#1600](https://github.com/open-feature/flagd/issues/1600)) ([babcacf](https://github.com/open-feature/flagd/commit/babcacfe4dd1244dda954823d8a3ed2019c8752b))
* removed hardcoded metric export interval and use otel default ([#1621](https://github.com/open-feature/flagd/issues/1621)) ([81c66eb](https://github.com/open-feature/flagd/commit/81c66ebf2b82fc6874ab325569f52801d5ab8e5e))
## [0.11.3](https://github.com/open-feature/flagd/compare/core/v0.11.2...core/v0.11.3) (2025-03-25)
### 🐛 Bug Fixes
* **deps:** update github.com/open-feature/flagd-schemas digest to 9b0ee43 ([#1598](https://github.com/open-feature/flagd/issues/1598)) ([0587ce4](https://github.com/open-feature/flagd/commit/0587ce44e60b643ff6960c1eaf4461f933ea95b7))
* **deps:** update github.com/open-feature/flagd-schemas digest to e840a03 ([#1587](https://github.com/open-feature/flagd/issues/1587)) ([9ee0c57](https://github.com/open-feature/flagd/commit/9ee0c573d6dbfa0c4e9b18c9da7313094ea56916))
* **deps:** update module connectrpc.com/otelconnect to v0.7.2 ([#1574](https://github.com/open-feature/flagd/issues/1574)) ([6094dce](https://github.com/open-feature/flagd/commit/6094dce5c0472f593b79d6d40e080f9b8d6503e5))
* **deps:** update module github.com/google/go-cmp to v0.7.0 ([#1569](https://github.com/open-feature/flagd/issues/1569)) ([6e9dbd2](https://github.com/open-feature/flagd/commit/6e9dbd2dbf8365f839e353f53cb638847a1f05d6))
* **deps:** update module github.com/prometheus/client_golang to v1.21.1 ([#1576](https://github.com/open-feature/flagd/issues/1576)) ([cd95193](https://github.com/open-feature/flagd/commit/cd95193f71fd465ffd1b177fa492aa84d8414a87))
* **deps:** update module google.golang.org/grpc to v1.71.0 ([#1578](https://github.com/open-feature/flagd/issues/1578)) ([5c2c64f](https://github.com/open-feature/flagd/commit/5c2c64f878b8603dd37cbfd79b0e1588e4b5a3c6))
* incorrect metadata returned per source ([#1599](https://github.com/open-feature/flagd/issues/1599)) ([b333e11](https://github.com/open-feature/flagd/commit/b333e11ecfe54f72c44ee61b3dcb1f2a487c94d4))
### ✨ New Features
* accept version numbers which are not strings ([#1589](https://github.com/open-feature/flagd/issues/1589)) ([6a13796](https://github.com/open-feature/flagd/commit/6a137967a258e799cbac9e3bb3927a07412c2a7b))
## [0.11.2](https://github.com/open-feature/flagd/compare/core/v0.11.1...core/v0.11.2) (2025-02-21)
### 🐛 Bug Fixes
* **deps:** update golang.org/x/exp digest to 939b2ce ([#1555](https://github.com/open-feature/flagd/issues/1555)) ([23afa9c](https://github.com/open-feature/flagd/commit/23afa9c18c27885bdae0f5c4ebdc30e780e9da71))
* **deps:** update golang.org/x/exp digest to f9890c6 ([#1551](https://github.com/open-feature/flagd/issues/1551)) ([02c4b42](https://github.com/open-feature/flagd/commit/02c4b4250131ca819c85dcf10c2d78e0c218469f))
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.5-20250127221518-be6d1143b690.1 ([#1549](https://github.com/open-feature/flagd/issues/1549)) ([d3eb44e](https://github.com/open-feature/flagd/commit/d3eb44ed45a54bd9152b7477cce17be90016683c))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.7.4 ([#1556](https://github.com/open-feature/flagd/issues/1556)) ([0dfa799](https://github.com/open-feature/flagd/commit/0dfa79956695849f3a703554525759093931a01d))
* **deps:** update module github.com/prometheus/client_golang to v1.21.0 ([#1568](https://github.com/open-feature/flagd/issues/1568)) ([a3d4162](https://github.com/open-feature/flagd/commit/a3d41625a2b79452c0732af29d0b4f320e74fe8b))
* **deps:** update module golang.org/x/crypto to v0.33.0 ([#1552](https://github.com/open-feature/flagd/issues/1552)) ([7cef153](https://github.com/open-feature/flagd/commit/7cef153a275a4fac5099f5a52013dcd227a79bb3))
* **deps:** update module golang.org/x/mod to v0.23.0 ([#1544](https://github.com/open-feature/flagd/issues/1544)) ([6fe7bd2](https://github.com/open-feature/flagd/commit/6fe7bd2a3e82dfc81068d9d95d8c3a4acc16456c))
### ✨ New Features
* Adding gRPC dial option override to grpc_sync.go ([#1563](https://github.com/open-feature/flagd/issues/1563)) ([1a97ca5](https://github.com/open-feature/flagd/commit/1a97ca5f81582e6d1f139a61e0e49007ad173d3f))
## [0.11.1](https://github.com/open-feature/flagd/compare/core/v0.11.0...core/v0.11.1) (2025-02-04)
### 🐛 Bug Fixes
* **deps:** update module golang.org/x/sync to v0.11.0 ([#1543](https://github.com/open-feature/flagd/issues/1543)) ([7d6c0dc](https://github.com/open-feature/flagd/commit/7d6c0dc6e6e6955af1e5225807deeb2b6797900b))
## [0.11.0](https://github.com/open-feature/flagd/compare/core/v0.10.8...core/v0.11.0) (2025-01-31)
### ⚠ BREAKING CHANGES
* flagSetMetadata in OFREP/ResolveAll, core refactors ([#1540](https://github.com/open-feature/flagd/issues/1540))
### 🐛 Bug Fixes
* **deps:** update github.com/open-feature/flagd-schemas digest to bb76343 ([#1534](https://github.com/open-feature/flagd/issues/1534)) ([8303353](https://github.com/open-feature/flagd/commit/8303353a1b503ef34b8e46d9bf77ce53c067ef3b))
* **deps:** update golang.org/x/exp digest to 3edf0e9 ([#1538](https://github.com/open-feature/flagd/issues/1538)) ([7a06567](https://github.com/open-feature/flagd/commit/7a0656713a8c2ac3d456a3a300fe137debee0edd))
* **deps:** update golang.org/x/exp digest to e0ece0d ([#1539](https://github.com/open-feature/flagd/issues/1539)) ([4281c6e](https://github.com/open-feature/flagd/commit/4281c6e80b233a162436fea3640bf5d061d40b96))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20250127221518-be6d1143b690.2 ([#1536](https://github.com/open-feature/flagd/issues/1536)) ([e23060f](https://github.com/open-feature/flagd/commit/e23060f24b2a714ae748e6b37d0d06b7caa1c95c))
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.4-20241220192239-696330adaff0.1 ([#1529](https://github.com/open-feature/flagd/issues/1529)) ([8881a80](https://github.com/open-feature/flagd/commit/8881a804b4055da0127a16b8fc57022d24906e1b))
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.4-20250127221518-be6d1143b690.1 ([#1537](https://github.com/open-feature/flagd/issues/1537)) ([f74207b](https://github.com/open-feature/flagd/commit/f74207bc13b75bae4275bc486df51e2da569dd41))
* **deps:** update module google.golang.org/grpc to v1.70.0 ([#1528](https://github.com/open-feature/flagd/issues/1528)) ([79b2b0a](https://github.com/open-feature/flagd/commit/79b2b0a6bbd48676dcbdd2393feb8247529bf29c))
### ✨ New Features
* flagSetMetadata in OFREP/ResolveAll, core refactors ([#1540](https://github.com/open-feature/flagd/issues/1540)) ([b49abf9](https://github.com/open-feature/flagd/commit/b49abf95069da93bdf8369c8aa0ae40e698df760))
* support yaml in blob, file, and http syncs ([#1522](https://github.com/open-feature/flagd/issues/1522)) ([76d673a](https://github.com/open-feature/flagd/commit/76d673ae8f765512270e6498569c0ce3d54a60bf))
## [0.10.8](https://github.com/open-feature/flagd/compare/core/v0.10.7...core/v0.10.8) (2025-01-19)
### 🐛 Bug Fixes
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.7.3 ([#1520](https://github.com/open-feature/flagd/issues/1520)) ([db2f990](https://github.com/open-feature/flagd/commit/db2f99021dfd676d2fd0c6af6af7e77783ee31ce))
* **deps:** update opentelemetry-go monorepo ([#1524](https://github.com/open-feature/flagd/issues/1524)) ([eeae9a6](https://github.com/open-feature/flagd/commit/eeae9a64caf93356fd663cc735cc422edcf9e132))
## [0.10.7](https://github.com/open-feature/flagd/compare/core/v0.10.6...core/v0.10.7) (2025-01-16)
### 🐛 Bug Fixes
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.3-20241220192239-696330adaff0.1 ([#1513](https://github.com/open-feature/flagd/issues/1513)) ([64c5787](https://github.com/open-feature/flagd/commit/64c57875b032edcef2e2d230e7735990e01b72b8))
## [0.10.6](https://github.com/open-feature/flagd/compare/core/v0.10.5...core/v0.10.6) (2025-01-15)
### 🐛 Bug Fixes
* **deps:** update github.com/open-feature/flagd-schemas digest to 37baa2c ([#1499](https://github.com/open-feature/flagd/issues/1499)) ([1a853f7](https://github.com/open-feature/flagd/commit/1a853f79dc41523fd6dcb1ae6ca9745947955cbc))
* **deps:** update github.com/open-feature/flagd-schemas digest to b81a56e ([#1391](https://github.com/open-feature/flagd/issues/1391)) ([6a3d8ac](https://github.com/open-feature/flagd/commit/6a3d8ac2511c32bd0dc77bba0169679aa9bf6ca6))
* **deps:** update golang.org/x/exp digest to 7588d65 ([#1495](https://github.com/open-feature/flagd/issues/1495)) ([242e594](https://github.com/open-feature/flagd/commit/242e59450c71c682b56e554830ea3003bdbf9622))
* **deps:** update golang.org/x/exp digest to b2144cd ([#1320](https://github.com/open-feature/flagd/issues/1320)) ([a692b00](https://github.com/open-feature/flagd/commit/a692b009ae8e7dc928d0fd65236b404192c99562))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20241220192239-696330adaff0.1 ([#1489](https://github.com/open-feature/flagd/issues/1489)) ([53add83](https://github.com/open-feature/flagd/commit/53add83a491c6e00e0d9b1b64a9461e5973edca7))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20241220192239-696330adaff0.2 ([#1492](https://github.com/open-feature/flagd/issues/1492)) ([9f1d94a](https://github.com/open-feature/flagd/commit/9f1d94a42ac00ecf5fc58c07a76c350e2e4ec2f6))
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.0-20241220192239-696330adaff0.1 ([#1490](https://github.com/open-feature/flagd/issues/1490)) ([6edce72](https://github.com/open-feature/flagd/commit/6edce72e8cff01ea13cbd15d604b35ccc8337f50))
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.2-20241220192239-696330adaff0.1 ([#1502](https://github.com/open-feature/flagd/issues/1502)) ([426c36e](https://github.com/open-feature/flagd/commit/426c36e838b9ded3a23f933e66e963c8110c0ddb))
* **deps:** update module connectrpc.com/connect to v1.18.1 ([#1507](https://github.com/open-feature/flagd/issues/1507)) ([89d3259](https://github.com/open-feature/flagd/commit/89d32591db784458ce9b4cca36662ea502418bc5))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.7.0 ([#1496](https://github.com/open-feature/flagd/issues/1496)) ([e1fe149](https://github.com/open-feature/flagd/commit/e1fe1490fd1c26b9c566ff5ddef666c0fa74b2d5))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.7.1 ([#1509](https://github.com/open-feature/flagd/issues/1509)) ([9d06812](https://github.com/open-feature/flagd/commit/9d0681270f26bb91777fa2b8a792a4b0ccd07304))
* **deps:** update module golang.org/x/crypto to v0.32.0 ([#1497](https://github.com/open-feature/flagd/issues/1497)) ([63a34d2](https://github.com/open-feature/flagd/commit/63a34d23aedcd798ff9f4cd47cdaddca35416423))
* **deps:** update module google.golang.org/grpc to v1.69.2 ([#1484](https://github.com/open-feature/flagd/issues/1484)) ([6b40ad3](https://github.com/open-feature/flagd/commit/6b40ad34c83da4a3116e7cad4139a63a6c918097))
* **deps:** update module google.golang.org/grpc to v1.69.4 ([#1510](https://github.com/open-feature/flagd/issues/1510)) ([76d6353](https://github.com/open-feature/flagd/commit/76d6353840ab8e7c93bdb0802eb1c49fc6fe1dc0))
* **deps:** update opentelemetry-go monorepo ([#1470](https://github.com/open-feature/flagd/issues/1470)) ([26b0b1a](https://github.com/open-feature/flagd/commit/26b0b1af8bc4b3a393c3453784b50f167f13f743))
### ✨ New Features
* add ssl support to sync service ([#1479](https://github.com/open-feature/flagd/issues/1479)) ([#1501](https://github.com/open-feature/flagd/issues/1501)) ([d50fcc8](https://github.com/open-feature/flagd/commit/d50fcc821c1ae043cb8cf77e464f7b738e2ff755))
* support flag metadata ([#1476](https://github.com/open-feature/flagd/issues/1476)) ([13fbbad](https://github.com/open-feature/flagd/commit/13fbbad4d849b35884f429c0e74a71ece9cce2c9))
## [0.10.5](https://github.com/open-feature/flagd/compare/core/v0.10.4...core/v0.10.5) (2024-12-17)
### 🐛 Bug Fixes
* **deps:** update kubernetes packages to v0.31.2 ([#1430](https://github.com/open-feature/flagd/issues/1430)) ([0df8622](https://github.com/open-feature/flagd/commit/0df862215563545c33f518ab7a5ad42a19bf6adb))
* **deps:** update kubernetes packages to v0.31.3 ([#1454](https://github.com/open-feature/flagd/issues/1454)) ([f56d7b0](https://github.com/open-feature/flagd/commit/f56d7b043c2d80ae4fe27e996c05a7cc1c2c1b28))
* **deps:** update kubernetes packages to v0.31.4 ([#1461](https://github.com/open-feature/flagd/issues/1461)) ([431fbb4](https://github.com/open-feature/flagd/commit/431fbb49513bcdb21b09845f47c26e51e7e9f21b))
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.35.2-20240906125204-0a6a901b42e8.1 ([#1451](https://github.com/open-feature/flagd/issues/1451)) ([8c6d91d](https://github.com/open-feature/flagd/commit/8c6d91d538d226b10cb954c23409902e9d245cda))
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.36.0-20240906125204-0a6a901b42e8.1 ([#1475](https://github.com/open-feature/flagd/issues/1475)) ([0b11c6c](https://github.com/open-feature/flagd/commit/0b11c6cf612b244bda6bab119814647f3ce8de2e))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.6.0 ([#1460](https://github.com/open-feature/flagd/issues/1460)) ([dbc1da4](https://github.com/open-feature/flagd/commit/dbc1da4ba984c06972b57cf990d1d31c4b8323df))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.6.1 ([#1473](https://github.com/open-feature/flagd/issues/1473)) ([a3d899c](https://github.com/open-feature/flagd/commit/a3d899c5f8952181a6a987436e2255c2ab9176c5))
* **deps:** update module github.com/fsnotify/fsnotify to v1.8.0 ([#1438](https://github.com/open-feature/flagd/issues/1438)) ([949c73b](https://github.com/open-feature/flagd/commit/949c73bd6ebadb30cfa3b7573b43d722f8d2a93d))
* **deps:** update module github.com/stretchr/testify to v1.10.0 ([#1455](https://github.com/open-feature/flagd/issues/1455)) ([8c843df](https://github.com/open-feature/flagd/commit/8c843df7714b1f2d120c5cac8e40c7220cc0c05b))
* **deps:** update module golang.org/x/crypto to v0.29.0 ([#1443](https://github.com/open-feature/flagd/issues/1443)) ([db96dd5](https://github.com/open-feature/flagd/commit/db96dd57b9de032fc4d15931bf907a7ed962f81b))
* **deps:** update module golang.org/x/crypto to v0.30.0 ([#1457](https://github.com/open-feature/flagd/issues/1457)) ([dbdaa19](https://github.com/open-feature/flagd/commit/dbdaa199f0667f16d2a3b91867535ce93e63373c))
* **deps:** update module golang.org/x/crypto to v0.31.0 ([#1463](https://github.com/open-feature/flagd/issues/1463)) ([b2245d7](https://github.com/open-feature/flagd/commit/b2245d7f73f1bde859b9627d337dd09ecd2f1a31))
* **deps:** update module golang.org/x/mod to v0.22.0 ([#1444](https://github.com/open-feature/flagd/issues/1444)) ([ed064e1](https://github.com/open-feature/flagd/commit/ed064e134fb3a5edb0ec2d976f136af7e94d7f6d))
* **deps:** update module google.golang.org/grpc to v1.68.0 ([#1442](https://github.com/open-feature/flagd/issues/1442)) ([cd27d09](https://github.com/open-feature/flagd/commit/cd27d098e6d8d8b0f681ef42d26dba1ebac67d12))
* **deps:** update module google.golang.org/grpc to v1.68.1 ([#1456](https://github.com/open-feature/flagd/issues/1456)) ([0b6e2a1](https://github.com/open-feature/flagd/commit/0b6e2a1cd64910226d348c921b08a6de8013ac90))
* **deps:** update module google.golang.org/grpc to v1.69.0 ([#1469](https://github.com/open-feature/flagd/issues/1469)) ([dd4869f](https://github.com/open-feature/flagd/commit/dd4869f5e095066f80c9d82d1be83155e7504d88))
* **deps:** update opentelemetry-go monorepo ([#1447](https://github.com/open-feature/flagd/issues/1447)) ([68b5794](https://github.com/open-feature/flagd/commit/68b5794180da84af9adc1f2cd80f929489969c1c))
### ✨ New Features
* add context-value flag ([#1448](https://github.com/open-feature/flagd/issues/1448)) ([7ca092e](https://github.com/open-feature/flagd/commit/7ca092e478c937eca0c91357394499763545dc1c))
* s3 support for the blob sync ([#1449](https://github.com/open-feature/flagd/issues/1449)) ([a9f7261](https://github.com/open-feature/flagd/commit/a9f7261e75bc064947ae14900e5c4edc4b49bec4))
## [0.10.4](https://github.com/open-feature/flagd/compare/core/v0.10.3...core/v0.10.4) (2024-10-28)
### 🐛 Bug Fixes
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.35.1-20240906125204-0a6a901b42e8.1 ([#1420](https://github.com/open-feature/flagd/issues/1420)) ([1f06d5a](https://github.com/open-feature/flagd/commit/1f06d5a1837ea2b753974e96c2a1154d6cb3e582))
* **deps:** update module github.com/prometheus/client_golang to v1.20.5 ([#1425](https://github.com/open-feature/flagd/issues/1425)) ([583ba89](https://github.com/open-feature/flagd/commit/583ba894f2de794b36b6a1cc3bfceb9c46dc9d96))
* **deps:** update module go.uber.org/mock to v0.5.0 ([#1427](https://github.com/open-feature/flagd/issues/1427)) ([0c6fd7f](https://github.com/open-feature/flagd/commit/0c6fd7fa688db992d4e58a202889cbfea07eebf6))
* **deps:** update module gocloud.dev to v0.40.0 ([#1422](https://github.com/open-feature/flagd/issues/1422)) ([e0e4709](https://github.com/open-feature/flagd/commit/e0e4709243d8301bcbb0aaaa309be66944c1d9ed))
* **deps:** update module golang.org/x/crypto to v0.28.0 ([#1416](https://github.com/open-feature/flagd/issues/1416)) ([fb272da](https://github.com/open-feature/flagd/commit/fb272da56e0eba12245309899888c18920b9a200))
* **deps:** update module google.golang.org/grpc to v1.67.1 ([#1415](https://github.com/open-feature/flagd/issues/1415)) ([85a3a6b](https://github.com/open-feature/flagd/commit/85a3a6b46233fcc7cf71a0292b46c82ac8e66d7b))
### ✨ New Features
* added custom grpc resolver ([#1424](https://github.com/open-feature/flagd/issues/1424)) ([e5007e2](https://github.com/open-feature/flagd/commit/e5007e2bcb6f049a3c54e09331065bb9abe215be))
* support azure blob sync ([#1428](https://github.com/open-feature/flagd/issues/1428)) ([5c39cfe](https://github.com/open-feature/flagd/commit/5c39cfe30a3dead4f6db2c6f9ee4c12193cd479b))
## [0.10.3](https://github.com/open-feature/flagd/compare/core/v0.10.2...core/v0.10.3) (2024-09-23)
### 🐛 Bug Fixes
* **deps:** update kubernetes package and controller runtime, fix proto lint ([#1290](https://github.com/open-feature/flagd/issues/1290)) ([94860d6](https://github.com/open-feature/flagd/commit/94860d6ceabe9eb7c1e5dd8ea139a796710d6d8b))
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20240906125204-0a6a901b42e8.1 ([#1400](https://github.com/open-feature/flagd/issues/1400)) ([954d972](https://github.com/open-feature/flagd/commit/954d97238210f90b650493ae76277d4a8d80788a))
* **deps:** update module connectrpc.com/connect to v1.17.0 ([#1408](https://github.com/open-feature/flagd/issues/1408)) ([e7eb691](https://github.com/open-feature/flagd/commit/e7eb691094dfbf02e37d79c41f60f556415e7640))
* **deps:** update module github.com/prometheus/client_golang to v1.20.3 ([#1384](https://github.com/open-feature/flagd/issues/1384)) ([8fd16b2](https://github.com/open-feature/flagd/commit/8fd16b23b1fa8517128af36b3068ca18ebbad6c3))
* **deps:** update module github.com/prometheus/client_golang to v1.20.4 ([#1406](https://github.com/open-feature/flagd/issues/1406)) ([a0a6426](https://github.com/open-feature/flagd/commit/a0a64269b08251317676075fdea7bc65bea8a8dc))
* **deps:** update module gocloud.dev to v0.39.0 ([#1404](https://github.com/open-feature/flagd/issues/1404)) ([a3184d6](https://github.com/open-feature/flagd/commit/a3184d68413749808709baac47df3bf7400f9cdc))
* **deps:** update module golang.org/x/crypto to v0.27.0 ([#1396](https://github.com/open-feature/flagd/issues/1396)) ([f9a7d10](https://github.com/open-feature/flagd/commit/f9a7d10590d3191ea8eba0dbb340fa94d07026a4))
* **deps:** update module golang.org/x/mod to v0.21.0 ([#1397](https://github.com/open-feature/flagd/issues/1397)) ([1507e19](https://github.com/open-feature/flagd/commit/1507e19e9304bcebfbbe4376f45e9f2e82135fd2))
* **deps:** update module google.golang.org/grpc to v1.66.0 ([#1393](https://github.com/open-feature/flagd/issues/1393)) ([c96e9d7](https://github.com/open-feature/flagd/commit/c96e9d764aa51caf00fbde07cdc7d2de55b98b9e))
* **deps:** update module google.golang.org/grpc to v1.66.1 ([#1402](https://github.com/open-feature/flagd/issues/1402)) ([50c9cd3](https://github.com/open-feature/flagd/commit/50c9cd3ada2f470a22374392a5a152a487636645))
* **deps:** update module google.golang.org/grpc to v1.66.2 ([#1405](https://github.com/open-feature/flagd/issues/1405)) ([69ec28f](https://github.com/open-feature/flagd/commit/69ec28fceb597bdaad63b184943b66ccdb4af0b7))
* **deps:** update module google.golang.org/grpc to v1.67.0 ([#1407](https://github.com/open-feature/flagd/issues/1407)) ([1ad6480](https://github.com/open-feature/flagd/commit/1ad6480a0f37c4677e53065ef455f615b26b1f17))
* **deps:** update opentelemetry-go monorepo ([#1387](https://github.com/open-feature/flagd/issues/1387)) ([22aef5b](https://github.com/open-feature/flagd/commit/22aef5bbf030c619e48fbe22a16d83e071b11902))
* **deps:** update opentelemetry-go monorepo ([#1403](https://github.com/open-feature/flagd/issues/1403)) ([fc4cd3e](https://github.com/open-feature/flagd/commit/fc4cd3e547f4826ea0bb8cc1bb2304807932b4e6))
* remove dep cycle with certreloader ([#1410](https://github.com/open-feature/flagd/issues/1410)) ([5244f6f](https://github.com/open-feature/flagd/commit/5244f6f6c94f310fd80c7ab84942103cc8c18a39))
### ✨ New Features
* add mTLS support to otel exporter ([#1389](https://github.com/open-feature/flagd/issues/1389)) ([8737f53](https://github.com/open-feature/flagd/commit/8737f53444016b114ee4ae52eead0b835af0e200))
## [0.10.2](https://github.com/open-feature/flagd/compare/core/v0.10.1...core/v0.10.2) (2024-08-22)
### 🐛 Bug Fixes
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.5.1-20240215170432-1e611e2999cc.1 ([#1372](https://github.com/open-feature/flagd/issues/1372)) ([ae24595](https://github.com/open-feature/flagd/commit/ae2459504f7eccafebccec83fa1f72b08f41a978))
* **deps:** update module connectrpc.com/otelconnect to v0.7.1 ([#1367](https://github.com/open-feature/flagd/issues/1367)) ([184915b](https://github.com/open-feature/flagd/commit/184915b31726729e8ed2f7999f338bf4ed684809))
* **deps:** update module github.com/open-feature/open-feature-operator/apis to v0.2.44 ([#1368](https://github.com/open-feature/flagd/issues/1368)) ([0c68726](https://github.com/open-feature/flagd/commit/0c68726bed1cdae07f1b90447818ebbc9dc45caf))
* **deps:** update module golang.org/x/crypto to v0.26.0 ([#1379](https://github.com/open-feature/flagd/issues/1379)) ([05f6658](https://github.com/open-feature/flagd/commit/05f6658e3dc72182adbff9197c8980641af8c53f))
* **deps:** update module golang.org/x/mod to v0.20.0 ([#1377](https://github.com/open-feature/flagd/issues/1377)) ([797d7a4](https://github.com/open-feature/flagd/commit/797d7a4bbafc73e6882e5998df500ae4fe98fbbc))
* **deps:** update module golang.org/x/sync to v0.8.0 ([#1378](https://github.com/open-feature/flagd/issues/1378)) ([4804c17](https://github.com/open-feature/flagd/commit/4804c17a67ea9761079ecade34ccb3446643050b))
### ✨ New Features
* add 'watcher' interface to file sync ([#1365](https://github.com/open-feature/flagd/issues/1365)) ([61fff43](https://github.com/open-feature/flagd/commit/61fff43e288daac88efb127ada20276c01ed5928))
* added new grpc sync config option to allow setting max receive message size. ([#1358](https://github.com/open-feature/flagd/issues/1358)) ([bed077b](https://github.com/open-feature/flagd/commit/bed077bac9da3b6e3bd45ca54046e40a595fcba6))
* Support blob type sources and GCS as an example of such source. ([#1366](https://github.com/open-feature/flagd/issues/1366)) ([21f2c9a](https://github.com/open-feature/flagd/commit/21f2c9a5d64cbfe2fc841080850a2c582e8f4ba6))
### 🧹 Chore
* **deps:** update dependency go to v1.22.6 ([#1297](https://github.com/open-feature/flagd/issues/1297)) ([50b92c1](https://github.com/open-feature/flagd/commit/50b92c17cfd872d3e6b95fef3b3d96444e563715))
## [0.10.1](https://github.com/open-feature/flagd/compare/core/v0.10.0...core/v0.10.1) (2024-07-08)
### 🐛 Bug Fixes
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.4.0-20240215170432-1e611e2999cc.2 ([#1342](https://github.com/open-feature/flagd/issues/1342)) ([efdd921](https://github.com/open-feature/flagd/commit/efdd92139903b89ac986a62ff2cf4f5cfef91cde))
* **deps:** update module golang.org/x/crypto to v0.25.0 ([#1351](https://github.com/open-feature/flagd/issues/1351)) ([450cbc8](https://github.com/open-feature/flagd/commit/450cbc84ca55eef3fccc768003e358a8e589668e))
* **deps:** update module golang.org/x/mod to v0.19.0 ([#1349](https://github.com/open-feature/flagd/issues/1349)) ([6ee89b4](https://github.com/open-feature/flagd/commit/6ee89b44ca4aca8f6236603fc3f969e814907bd6))
* **deps:** update module google.golang.org/grpc to v1.65.0 ([#1346](https://github.com/open-feature/flagd/issues/1346)) ([72a6b87](https://github.com/open-feature/flagd/commit/72a6b876e880ff0b43440d9b63710c7a87536988))
* **deps:** update opentelemetry-go monorepo ([#1347](https://github.com/open-feature/flagd/issues/1347)) ([37fb3cd](https://github.com/open-feature/flagd/commit/37fb3cd81d5436e9d8cd3ea490a3951ae5794130))
## [0.10.0](https://github.com/open-feature/flagd/compare/core/v0.9.3...core/v0.10.0) (2024-06-27)
### ⚠ BREAKING CHANGES
* support emitting errors from the bulk evaluator ([#1338](https://github.com/open-feature/flagd/issues/1338))
### 🐛 Bug Fixes
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.4.0-20240215170432-1e611e2999cc.1 ([#1333](https://github.com/open-feature/flagd/issues/1333)) ([494062f](https://github.com/open-feature/flagd/commit/494062fed891fab0fb659352142dbbc97c8f1492))
* **deps:** update module buf.build/gen/go/open-feature/flagd/protocolbuffers/go to v1.34.2-20240215170432-1e611e2999cc.2 ([#1330](https://github.com/open-feature/flagd/issues/1330)) ([32291ad](https://github.com/open-feature/flagd/commit/32291ad93d25d79299a7a02381df70e2719c4fbc))
* **deps:** update module connectrpc.com/connect to v1.16.2 ([#1289](https://github.com/open-feature/flagd/issues/1289)) ([8bacb7c](https://github.com/open-feature/flagd/commit/8bacb7c59c17956dda3cf9d2a7bc6f139885a656))
* **deps:** update module github.com/open-feature/open-feature-operator/apis to v0.2.43 ([#1331](https://github.com/open-feature/flagd/issues/1331)) ([fecd769](https://github.com/open-feature/flagd/commit/fecd769e5f2c4aa7bf1a0fb13f0543e7b8045af8))
* **deps:** update module golang.org/x/crypto to v0.24.0 ([#1335](https://github.com/open-feature/flagd/issues/1335)) ([2a31a17](https://github.com/open-feature/flagd/commit/2a31a1740303991412e0169e50a064823cce0560))
* **deps:** update module golang.org/x/mod to v0.18.0 ([#1336](https://github.com/open-feature/flagd/issues/1336)) ([5fa83f7](https://github.com/open-feature/flagd/commit/5fa83f7ab266320d8d8f1388a6c2f2cac922275a))
* **deps:** update opentelemetry-go monorepo ([#1314](https://github.com/open-feature/flagd/issues/1314)) ([e9f1a7a](https://github.com/open-feature/flagd/commit/e9f1a7a04828f36691e694375b3c665140bc7dee))
* readable error messages ([#1325](https://github.com/open-feature/flagd/issues/1325)) ([7ff33ef](https://github.com/open-feature/flagd/commit/7ff33effcc47e31c5b7fdc33385d8128db2163fc))
### ✨ New Features
* add mandatory flags property in bulk response ([#1339](https://github.com/open-feature/flagd/issues/1339)) ([b20266e](https://github.com/open-feature/flagd/commit/b20266ed5e0c16bf14769f300297f7f2b0ab2dcd))
* support emitting errors from the bulk evaluator ([#1338](https://github.com/open-feature/flagd/issues/1338)) ([b9c099c](https://github.com/open-feature/flagd/commit/b9c099cb7fa002a509a82c81b467f5e784c27e82))
* support relative weighting for fractional evaluation ([#1313](https://github.com/open-feature/flagd/issues/1313)) ([f82c094](https://github.com/open-feature/flagd/commit/f82c094f5c47f99ef37b7392bfd39cec3ec7ba51))
## [0.9.3](https://github.com/open-feature/flagd/compare/core/v0.9.2...core/v0.9.3) (2024-06-06)
### 🐛 Bug Fixes
* fixes store merge when selector is used ([#1322](https://github.com/open-feature/flagd/issues/1322)) ([ed5025d](https://github.com/open-feature/flagd/commit/ed5025d8f28fdf92a5c7dceaec7fd6df7f979e3b))
### 🧹 Chore
* adapt telemetry setup error handling ([#1315](https://github.com/open-feature/flagd/issues/1315)) ([20bcb78](https://github.com/open-feature/flagd/commit/20bcb78d11dbb16aab2b14d5869bb990a0f7bca5))
## [0.9.2](https://github.com/open-feature/flagd/compare/core/v0.9.1...core/v0.9.2) (2024-05-10)
### ✨ New Features
* improve error log and add flag disabled handling for ofrep ([#1306](https://github.com/open-feature/flagd/issues/1306)) ([39ae4fe](https://github.com/open-feature/flagd/commit/39ae4fe11380af5c6e23c4aaae45b5ec17cf32d6))
### 🧹 Chore
* bump go deps to latest ([#1307](https://github.com/open-feature/flagd/issues/1307)) ([004ad08](https://github.com/open-feature/flagd/commit/004ad083dc01538791148d6233e453d2a3009fcd))
## [0.9.1](https://github.com/open-feature/flagd/compare/core/v0.9.0...core/v0.9.1) (2024-04-19)
### 🐛 Bug Fixes
* missing/nil custom variables in fractional operator ([#1295](https://github.com/open-feature/flagd/issues/1295)) ([418c5cd](https://github.com/open-feature/flagd/commit/418c5cd7c07fad61674a751872a1256b5062799c))
### ✨ New Features
* move json logic operator registration to resolver ([#1291](https://github.com/open-feature/flagd/issues/1291)) ([b473457](https://github.com/open-feature/flagd/commit/b473457ddff28789fee1eeb6704491b6aa3525e3))
## [0.9.0](https://github.com/open-feature/flagd/compare/core/v0.8.2...core/v0.9.0) (2024-04-10)
### ⚠ BREAKING CHANGES
* allow custom seed when using targetingKey override for fractional op ([#1266](https://github.com/open-feature/flagd/issues/1266))
* This is a breaking change only to the extent that it changes the assignment of evaluated flag values.
Previously, flagd's `fractional` op would internally concatenate any specified bucketing property with the `flag-key`.
This improved apparent "randomness" by reducing the chances that users were assigned a bucket of the same ordinality across multiple flags.
However, sometimes it's desireable to have such predictibility, so now **flagd will use the bucketing value as is**.
If you are specifying a bucketing value in a `fractional` rule, and want to maintain the previous assignments, you can do this concatenation manually:
`{ "var": "user.name" }` => `{"cat": [{ "var": "$flagd.flagKey" }, { "var": "user.name" }]}`.
This will result in the same assignment as before.
Please note, that if you do not specify a bucketing key at all (the shorthand version of the `fractional` op), flagd still uses a concatentation of the `flag-key` and `targetingKey` as before; this behavior has not changed.
### ✨ New Features
* allow custom seed when using targetingKey override for fractional op ([#1266](https://github.com/open-feature/flagd/issues/1266)) ([f62bc72](https://github.com/open-feature/flagd/commit/f62bc721e8ebc07e27fbe7b9ca085a8771295d65))
### 🧹 Chore
* refactor evaluation core ([#1259](https://github.com/open-feature/flagd/issues/1259)) ([0e6604c](https://github.com/open-feature/flagd/commit/0e6604cd038dc13d7d40e622523320bf03efbcd0))
* update go deps ([#1279](https://github.com/open-feature/flagd/issues/1279)) ([219789f](https://github.com/open-feature/flagd/commit/219789fca8a929d552e4e8d1f6b6d5cd44505f43))
* wire evaluation ctx to store methods ([#1273](https://github.com/open-feature/flagd/issues/1273)) ([0075932](https://github.com/open-feature/flagd/commit/00759322594f309ca9236156f296805a09f5f9fe))
## [0.8.2](https://github.com/open-feature/flagd/compare/core/v0.8.1...core/v0.8.2) (2024-03-27)
### ✨ New Features
* OFREP support for flagd ([#1247](https://github.com/open-feature/flagd/issues/1247)) ([9d12fc2](https://github.com/open-feature/flagd/commit/9d12fc20702a86e8385564659be88f07ad36d9e5))
## [0.8.1](https://github.com/open-feature/flagd/compare/core/v0.8.0...core/v0.8.1) (2024-03-15)
### 🐛 Bug Fixes
* occasional panic when watched YAML files change ([#1246](https://github.com/open-feature/flagd/issues/1246)) ([6249d12](https://github.com/open-feature/flagd/commit/6249d12ec452073ed881b6e5faf716332c7f132a))
* update protobuff CVE-2024-24786 ([#1249](https://github.com/open-feature/flagd/issues/1249)) ([fd81c23](https://github.com/open-feature/flagd/commit/fd81c235fb4a09dfc42289ac316ac3a1d7eff58c))
### 🧹 Chore
* move packaging & isolate service implementations ([#1234](https://github.com/open-feature/flagd/issues/1234)) ([b58fab3](https://github.com/open-feature/flagd/commit/b58fab3df030ef7e9e10eafa7a0141c05aa05bbd))
## [0.8.0](https://github.com/open-feature/flagd/compare/core/v0.7.5...core/v0.8.0) (2024-02-20)
### ⚠ BREAKING CHANGES
* new proto (flagd.sync.v1) for sync sources ([#1214](https://github.com/open-feature/flagd/issues/1214))
### 🐛 Bug Fixes
* **deps:** update github.com/open-feature/flagd-schemas digest to 8c72c14 ([#1212](https://github.com/open-feature/flagd/issues/1212)) ([4add9fd](https://github.com/open-feature/flagd/commit/4add9fd1c47e3e3dea818a6b262273fadb7edb81))
* **deps:** update kubernetes packages to v0.29.2 ([#1213](https://github.com/open-feature/flagd/issues/1213)) ([b0c805f](https://github.com/open-feature/flagd/commit/b0c805f7f58979f927e60c22c94c0448af459c7d))
* **deps:** update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.15.0-20240215170432-1e611e2999cc.1 ([#1219](https://github.com/open-feature/flagd/issues/1219)) ([4c4f08a](https://github.com/open-feature/flagd/commit/4c4f08afabf7d646973768500db028ab0b4c7d68))
* **deps:** update module golang.org/x/crypto to v0.19.0 ([#1203](https://github.com/open-feature/flagd/issues/1203)) ([f0ff317](https://github.com/open-feature/flagd/commit/f0ff3177f67c832d62694cdf44b766344da5483f))
* **deps:** update module golang.org/x/mod to v0.15.0 ([#1202](https://github.com/open-feature/flagd/issues/1202)) ([6ca8e6d](https://github.com/open-feature/flagd/commit/6ca8e6d33f6646698605fb4b5b99f8a3ee1ddbed))
* **deps:** update module golang.org/x/net to v0.21.0 ([#1204](https://github.com/open-feature/flagd/issues/1204)) ([bccf365](https://github.com/open-feature/flagd/commit/bccf365fa2e5f443208ec70b1244bdb4f07ced04))
* **deps:** update module google.golang.org/grpc to v1.61.1 ([#1210](https://github.com/open-feature/flagd/issues/1210)) ([10cc63e](https://github.com/open-feature/flagd/commit/10cc63e7992b4ae8d861f5296afcc78417e645cb))
* **deps:** update opentelemetry-go monorepo ([#1199](https://github.com/open-feature/flagd/issues/1199)) ([422ebaa](https://github.com/open-feature/flagd/commit/422ebaa30b8bb0246bcdf8c0cc2be0a5870eb9e9))
### ✨ New Features
* new proto (flagd.sync.v1) for sync sources ([#1214](https://github.com/open-feature/flagd/issues/1214)) ([544234e](https://github.com/open-feature/flagd/commit/544234ebd9f9be5f54c2865a866575a7869a56c0))
## [0.7.5](https://github.com/open-feature/flagd/compare/core/v0.7.4...core/v0.7.5) (2024-02-05)
### 🐛 Bug Fixes
* add signal handling to SyncFlags grpc ([#1176](https://github.com/open-feature/flagd/issues/1176)) ([5c8ed7c](https://github.com/open-feature/flagd/commit/5c8ed7c6dd29ffe43c1f1f0e2843683570873443))
* **deps:** update kubernetes packages to v0.29.1 ([#1156](https://github.com/open-feature/flagd/issues/1156)) ([899e6b5](https://github.com/open-feature/flagd/commit/899e6b505abe63b7b599858a0d55e6a69be08993))
* **deps:** update module buf.build/gen/go/open-feature/flagd/connectrpc/go to v1.14.0-20231031123731-ac2ec0f39838.1 ([#1170](https://github.com/open-feature/flagd/issues/1170)) ([8b3c8d6](https://github.com/open-feature/flagd/commit/8b3c8d6c87cbebd6f324771cb8aa1f6990a74cf4))
* **deps:** update module golang.org/x/crypto to v0.18.0 ([#1138](https://github.com/open-feature/flagd/issues/1138)) ([53569d9](https://github.com/open-feature/flagd/commit/53569d9cd88de1073a7e49b1a835adee4b0e8ef2))
* **deps:** update module golang.org/x/net to v0.20.0 ([#1139](https://github.com/open-feature/flagd/issues/1139)) ([fdb1d0c](https://github.com/open-feature/flagd/commit/fdb1d0c909373e23a8c8fca435ef77205526f730))
* **deps:** update module google.golang.org/grpc to v1.61.0 ([#1164](https://github.com/open-feature/flagd/issues/1164)) ([11ccecd](https://github.com/open-feature/flagd/commit/11ccecd5ac2e23991ac76ee079630f527559db1d))
* **deps:** update opentelemetry-go monorepo ([#1155](https://github.com/open-feature/flagd/issues/1155)) ([436fefe](https://github.com/open-feature/flagd/commit/436fefedf67afda1cbf97ff12f7c3071cb833d9a))
### ✨ New Features
* add targeting validation ([#1146](https://github.com/open-feature/flagd/issues/1146)) ([b727dd0](https://github.com/open-feature/flagd/commit/b727dd00c561c27e54dbe4bafff0ca2d82487a42))
* **core:** support any auth scheme in HTTP-sync auth header ([#1152](https://github.com/open-feature/flagd/issues/1152)) ([df65966](https://github.com/open-feature/flagd/commit/df6596634e1ca960592d5e4825985aeee781a25d))
### 🧹 Chore
* update test dependencies, fix for otel api change and update renovate configuration ([#1188](https://github.com/open-feature/flagd/issues/1188)) ([3270346](https://github.com/open-feature/flagd/commit/32703464d5c637dbb06c2c857070e9f038977c01))
### 📚 Documentation
* update schemas ([#1158](https://github.com/open-feature/flagd/issues/1158)) ([396c618](https://github.com/open-feature/flagd/commit/396c618bac13c5c8eb2aadc29bb126a83fec1b56))
## [0.7.4](https://github.com/open-feature/flagd/compare/core/v0.7.3...core/v0.7.4) (2024-01-04)
### 🐛 Bug Fixes
* add custom marshalling options ([#1117](https://github.com/open-feature/flagd/issues/1117)) ([e8e49de](https://github.com/open-feature/flagd/commit/e8e49de909fba6791a26e73a59d5b7ab54284499))
* **deps:** update kubernetes packages to v0.29.0 ([#1082](https://github.com/open-feature/flagd/issues/1082)) ([751a79a](https://github.com/open-feature/flagd/commit/751a79a16571bea943aa1297c9828d1149d0c319))
* **deps:** update module connectrpc.com/connect to v1.14.0 ([#1108](https://github.com/open-feature/flagd/issues/1108)) ([0a41aca](https://github.com/open-feature/flagd/commit/0a41acae082e65b2f0b1e1f36304556f77eba72a))
* **deps:** update module github.com/prometheus/client_golang to v1.18.0 ([#1110](https://github.com/open-feature/flagd/issues/1110)) ([745bbb0](https://github.com/open-feature/flagd/commit/745bbb079af50f8fdb870e2234edd70c7a7a52f9))
* **deps:** update module golang.org/x/crypto to v0.17.0 [security] ([#1090](https://github.com/open-feature/flagd/issues/1090)) ([26681de](https://github.com/open-feature/flagd/commit/26681ded7389ca4ecb3d9612aedad8c700796dc9))
* **deps:** update module google.golang.org/protobuf to v1.32.0 ([#1106](https://github.com/open-feature/flagd/issues/1106)) ([e0d3b34](https://github.com/open-feature/flagd/commit/e0d3b34aa2fad5435a296dda896c9d430563b6ea))
## [0.7.3](https://github.com/open-feature/flagd/compare/core/v0.7.2...core/v0.7.3) (2023-12-22)
### 🐛 Bug Fixes
* **deps:** update golang.org/x/exp digest to 6522937 ([#1032](https://github.com/open-feature/flagd/issues/1032)) ([78b23d2](https://github.com/open-feature/flagd/commit/78b23d25fcd2ea49675fc96963565afbdf0acf25))
* **deps:** update module connectrpc.com/connect to v1.13.0 ([#1070](https://github.com/open-feature/flagd/issues/1070)) ([63f86ea](https://github.com/open-feature/flagd/commit/63f86ea699ff1f25639101a36e4fc25c76c94c1e))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.4.0 ([#1068](https://github.com/open-feature/flagd/issues/1068)) ([5c5d5ab](https://github.com/open-feature/flagd/commit/5c5d5abc38540277deb4e11f41f79ff49273d659))
* **deps:** update module github.com/open-feature/open-feature-operator to v0.5.2 ([#1059](https://github.com/open-feature/flagd/issues/1059)) ([cefea3e](https://github.com/open-feature/flagd/commit/cefea3ee035726940ee5ac51e8f7fc92cc0eeac3))
* **deps:** update module google.golang.org/grpc to v1.60.0 ([#1074](https://github.com/open-feature/flagd/issues/1074)) ([bf3e9d8](https://github.com/open-feature/flagd/commit/bf3e9d82b40afdc89edc519f40bc0f67af48f1bf))
* **deps:** update module google.golang.org/grpc to v1.60.1 ([#1092](https://github.com/open-feature/flagd/issues/1092)) ([5bf1368](https://github.com/open-feature/flagd/commit/5bf1368e68012937b57bf27168646e784524ae9b))
* make sure sync builder is initialized to avoid nil pointer access ([#1076](https://github.com/open-feature/flagd/issues/1076)) ([ebcd616](https://github.com/open-feature/flagd/commit/ebcd616e0df1ab56fd11bcf4f53fa7cf13f5e1d6))
### ✨ New Features
* support new flagd.evaluation and flagd.sync schemas ([#1083](https://github.com/open-feature/flagd/issues/1083)) ([e9728aa](https://github.com/open-feature/flagd/commit/e9728aae8352e77e6564a88e37d13f87021526ef))
### 🧹 Chore
* refactoring component structure ([#1044](https://github.com/open-feature/flagd/issues/1044)) ([0c7f78a](https://github.com/open-feature/flagd/commit/0c7f78a95fa4ad2a8b2afe2f6023b9c6d4fd48ed))
* renaming of evaluation components ([#1064](https://github.com/open-feature/flagd/issues/1064)) ([d39f31d](https://github.com/open-feature/flagd/commit/d39f31d65b57a9b033a4976e5cea8fdab716769d))
* use client-go library for retrieving FeatureFlag CRs ([#1077](https://github.com/open-feature/flagd/issues/1077)) ([c86dff0](https://github.com/open-feature/flagd/commit/c86dff0bd058ca65f4ccd34c0bc5c0a4ad5b11a6))
## [0.7.2](https://github.com/open-feature/flagd/compare/core/v0.7.1...core/v0.7.2) (2023-12-05)
### 🐛 Bug Fixes
* **deps:** update module github.com/open-feature/open-feature-operator to v0.5.0 ([#1039](https://github.com/open-feature/flagd/issues/1039)) ([eb128d9](https://github.com/open-feature/flagd/commit/eb128d97ecb8b6916f9c5a32c21c698207f82be5))
* **deps:** update module github.com/open-feature/open-feature-operator to v0.5.1 ([#1046](https://github.com/open-feature/flagd/issues/1046)) ([0321935](https://github.com/open-feature/flagd/commit/0321935992ef50c2fc62bd659d8858c25c88efa7))
* **deps:** update module golang.org/x/crypto to v0.16.0 ([#1033](https://github.com/open-feature/flagd/issues/1033)) ([b79aaf2](https://github.com/open-feature/flagd/commit/b79aaf2c2ca5fe9c43c1460d6cab349d5d68b7e1))
* **deps:** update module golang.org/x/net to v0.19.0 ([#1034](https://github.com/open-feature/flagd/issues/1034)) ([c6426b2](https://github.com/open-feature/flagd/commit/c6426b20fa241066fc844a2a000812015790cf12))
* various edge cases in targeting ([#1041](https://github.com/open-feature/flagd/issues/1041)) ([ca38c16](https://github.com/open-feature/flagd/commit/ca38c165c606ffa4517872f170375dde37f4ac5b))
## [0.7.1](https://github.com/open-feature/flagd/compare/core/v0.7.0...core/v0.7.1) (2023-11-28)
### 🐛 Bug Fixes
* **deps:** update kubernetes packages to v0.28.4 ([#1016](https://github.com/open-feature/flagd/issues/1016)) ([ae470e3](https://github.com/open-feature/flagd/commit/ae470e37f3368c81484f0c54366ccf059ea2cea6))
* **deps:** update opentelemetry-go monorepo ([#1019](https://github.com/open-feature/flagd/issues/1019)) ([23ae555](https://github.com/open-feature/flagd/commit/23ae555ad73128dff46e911fccfef76306f5c550))
### 🔄 Refactoring
* Rename metrics-port to management-port ([#1012](https://github.com/open-feature/flagd/issues/1012)) ([5635e38](https://github.com/open-feature/flagd/commit/5635e38703cae835a53e9cce83d5bc42d00091e2))
## [0.7.0](https://github.com/open-feature/flagd/compare/core/v0.6.8...core/v0.7.0) (2023-11-15)
### ⚠ BREAKING CHANGES
* OFO APIs were updated to version v1beta1, since they are more stable now. Resources of the alpha versions are no longer supported in flagd or flagd-proxy.
### ✨ New Features
* support OFO v1beta1 API ([#997](https://github.com/open-feature/flagd/issues/997)) ([bb6f5bf](https://github.com/open-feature/flagd/commit/bb6f5bf0fc382ade75d80a34d209beaa2edc459d))
## [0.6.8](https://github.com/open-feature/flagd/compare/core/v0.6.7...core/v0.6.8) (2023-11-13)
### 🐛 Bug Fixes
* **deps:** update golang.org/x/exp digest to 9a3e603 ([#929](https://github.com/open-feature/flagd/issues/929)) ([f8db930](https://github.com/open-feature/flagd/commit/f8db930da22f52ffddd4533bdbaf8188f89250d0))
* **deps:** update kubernetes packages to v0.28.3 ([#974](https://github.com/open-feature/flagd/issues/974)) ([d7d205f](https://github.com/open-feature/flagd/commit/d7d205f457e46de3385610ee27db6dfd41323cd1))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.3.1 ([#971](https://github.com/open-feature/flagd/issues/971)) ([f1a40b8](https://github.com/open-feature/flagd/commit/f1a40b862e7be69b542ab65a645c29c56b8fe307))
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.3.2 ([#975](https://github.com/open-feature/flagd/issues/975)) ([b53c14a](https://github.com/open-feature/flagd/commit/b53c14afabd6b3f2403d9e2ea2bd26c8f1cfe8e4))
* **deps:** update module github.com/fsnotify/fsnotify to v1.7.0 ([#981](https://github.com/open-feature/flagd/issues/981)) ([727b9d2](https://github.com/open-feature/flagd/commit/727b9d2046ccd998d2ab721df10d88b84445494f))
* **deps:** update module golang.org/x/mod to v0.14.0 ([#991](https://github.com/open-feature/flagd/issues/991)) ([87bc12d](https://github.com/open-feature/flagd/commit/87bc12dd968e9fcf524eb0b69462222f29c6ba34))
* **deps:** update module golang.org/x/net to v0.17.0 [security] ([#963](https://github.com/open-feature/flagd/issues/963)) ([7f54bd1](https://github.com/open-feature/flagd/commit/7f54bd1fb3fdbb7dff3a7b097f804ce843bb6e3a))
* **deps:** update module golang.org/x/net to v0.18.0 ([#1000](https://github.com/open-feature/flagd/issues/1000)) ([e9347cc](https://github.com/open-feature/flagd/commit/e9347cc88a4174c984432571710588ac57665cb7))
* **deps:** update module golang.org/x/sync to v0.5.0 ([#992](https://github.com/open-feature/flagd/issues/992)) ([bd24536](https://github.com/open-feature/flagd/commit/bd24536722f3c3c99b5946de0b62dba603992ba7))
* **deps:** update module google.golang.org/grpc to v1.59.0 ([#972](https://github.com/open-feature/flagd/issues/972)) ([7d0f1f2](https://github.com/open-feature/flagd/commit/7d0f1f225ebfe83681c83cf38bf5c253a7b0ebef))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.16.3 ([#976](https://github.com/open-feature/flagd/issues/976)) ([b33c9c9](https://github.com/open-feature/flagd/commit/b33c9c97cf21eb317e4b0b1f452571d85de145b1))
* **deps:** update opentelemetry-go monorepo ([#1001](https://github.com/open-feature/flagd/issues/1001)) ([9798aeb](https://github.com/open-feature/flagd/commit/9798aeb248764400128048b65ba27baba71b07e6))
### 🔄 Refactoring
* migrate to connectrpc/connect-go ([#990](https://github.com/open-feature/flagd/issues/990)) ([7dd5b2b](https://github.com/open-feature/flagd/commit/7dd5b2b4c284481bcba5a9c45bd6c85ad1dc6d33))
## [0.6.7](https://github.com/open-feature/flagd/compare/core/v0.6.6...core/v0.6.7) (2023-10-12)
### 🐛 Bug Fixes
* **deps:** update module github.com/prometheus/client_golang to v1.17.0 ([#939](https://github.com/open-feature/flagd/issues/939)) ([9065cba](https://github.com/open-feature/flagd/commit/9065cba599ac07225b613c5acd9403ab24462078))
* **deps:** update module github.com/rs/cors to v1.10.1 ([#946](https://github.com/open-feature/flagd/issues/946)) ([1c39862](https://github.com/open-feature/flagd/commit/1c39862297746e66189ece87892b6e4694294fb6))
* **deps:** update module go.uber.org/zap to v1.26.0 ([#917](https://github.com/open-feature/flagd/issues/917)) ([e57e206](https://github.com/open-feature/flagd/commit/e57e206c937d5b11b81d46ee57b3e92cc454dd88))
* **deps:** update module golang.org/x/mod to v0.13.0 ([#952](https://github.com/open-feature/flagd/issues/952)) ([be61450](https://github.com/open-feature/flagd/commit/be61450ec3fab3c294c9813df193c98e374900aa))
* **deps:** update module golang.org/x/sync to v0.4.0 ([#949](https://github.com/open-feature/flagd/issues/949)) ([faa24a6](https://github.com/open-feature/flagd/commit/faa24a6c6f34330364e1ba0c3a847943f4e55150))
* **deps:** update module google.golang.org/grpc to v1.58.1 ([#915](https://github.com/open-feature/flagd/issues/915)) ([06d95de](https://github.com/open-feature/flagd/commit/06d95ded9b69c9c598d08f8a6ef73ec598a817af))
* **deps:** update module google.golang.org/grpc to v1.58.2 ([#928](https://github.com/open-feature/flagd/issues/928)) ([90f1878](https://github.com/open-feature/flagd/commit/90f1878ae482ea4a684615f733392a38301de68d))
* **deps:** update module google.golang.org/grpc to v1.58.3 ([#960](https://github.com/open-feature/flagd/issues/960)) ([fee1558](https://github.com/open-feature/flagd/commit/fee1558da4f5418499fb09fe356d16f008423eb7))
* **deps:** update opentelemetry-go monorepo ([#943](https://github.com/open-feature/flagd/issues/943)) ([e7cee41](https://github.com/open-feature/flagd/commit/e7cee41630e5684999b3689dbf1ab66234c65f6e))
* erroneous warning about prop overwrite ([#924](https://github.com/open-feature/flagd/issues/924)) ([673b76a](https://github.com/open-feature/flagd/commit/673b76aeff5c27e8e031e59da5f0ed1871d3f749))
### ✨ New Features
* add `$flagd.timestamp` to json evaluator ([#958](https://github.com/open-feature/flagd/issues/958)) ([a1b04e7](https://github.com/open-feature/flagd/commit/a1b04e778df4d2f6beb881183a82161018151479))
## [0.6.6](https://github.com/open-feature/flagd/compare/core/v0.6.5...core/v0.6.6) (2023-09-14)
### 🐛 Bug Fixes
* **deps:** update kubernetes packages to v0.28.2 ([#911](https://github.com/open-feature/flagd/issues/911)) ([2eda6ab](https://github.com/open-feature/flagd/commit/2eda6ab5e528f12a9ce6b6818e08abb0d783b23d))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.16.2 ([#907](https://github.com/open-feature/flagd/issues/907)) ([9976851](https://github.com/open-feature/flagd/commit/9976851d792ff3eb5fde18f19e397738eb7cacaf))
* **deps:** update opentelemetry-go monorepo ([#906](https://github.com/open-feature/flagd/issues/906)) ([5a41226](https://github.com/open-feature/flagd/commit/5a4122658039aafcf080fcc6655c2a679622ed69))
* use 32bit murmur calculation (64 is not stable) ([#913](https://github.com/open-feature/flagd/issues/913)) ([db8dca4](https://github.com/open-feature/flagd/commit/db8dca421cb0dba2968d47e5cc162d81401298db))
## [0.6.5](https://github.com/open-feature/flagd/compare/core/v0.6.4...core/v0.6.5) (2023-09-08)
### 🐛 Bug Fixes
* **deps:** update module github.com/rs/cors to v1.10.0 ([#893](https://github.com/open-feature/flagd/issues/893)) ([fe61fbe](https://github.com/open-feature/flagd/commit/fe61fbe47a4e58562cbcb1c5201281fae1adafaf))
* **deps:** update module golang.org/x/crypto to v0.13.0 ([#888](https://github.com/open-feature/flagd/issues/888)) ([1a9037a](https://github.com/open-feature/flagd/commit/1a9037a5b058e44fa844392d0110696b032eff6e))
* **deps:** update module golang.org/x/net to v0.15.0 ([#889](https://github.com/open-feature/flagd/issues/889)) ([233d976](https://github.com/open-feature/flagd/commit/233d97694826d0e018be19a78259188802aba37f))
* **deps:** update module google.golang.org/grpc to v1.58.0 ([#896](https://github.com/open-feature/flagd/issues/896)) ([853b76d](https://github.com/open-feature/flagd/commit/853b76dfa3babfebd8bdbcd3e0913380f077b8ab))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.16.1 ([#882](https://github.com/open-feature/flagd/issues/882)) ([ca3d85a](https://github.com/open-feature/flagd/commit/ca3d85a51c0ed1c1def54d7304d4b9fe69622662))
* **deps:** update opentelemetry-go monorepo ([#868](https://github.com/open-feature/flagd/issues/868)) ([d48317f](https://github.com/open-feature/flagd/commit/d48317f61d7db7ba0398dc9ab7cdd174a0b87555))
### 🧹 Chore
* upgrade to go 1.20 ([#891](https://github.com/open-feature/flagd/issues/891)) ([977167f](https://github.com/open-feature/flagd/commit/977167fb8db330b62726097616dcd691267199ad))
## [0.6.4](https://github.com/open-feature/flagd/compare/core/v0.6.3...core/v0.6.4) (2023-08-30)
### 🐛 Bug Fixes
* **deps:** update kubernetes packages to v0.28.0 ([#841](https://github.com/open-feature/flagd/issues/841)) ([cc195e1](https://github.com/open-feature/flagd/commit/cc195e1dde052d583656d5e5b49caec50f832365))
* **deps:** update kubernetes packages to v0.28.1 ([#860](https://github.com/open-feature/flagd/issues/860)) ([f3237c2](https://github.com/open-feature/flagd/commit/f3237c2d324fbb15fd5f7fe337a0601af3b537bb))
* **deps:** update module github.com/open-feature/open-feature-operator to v0.2.36 ([#799](https://github.com/open-feature/flagd/issues/799)) ([fa4da4b](https://github.com/open-feature/flagd/commit/fa4da4b0115e9fb40ab038b996e1e32b9f6a47ab))
* **deps:** update module golang.org/x/crypto to v0.12.0 ([#797](https://github.com/open-feature/flagd/issues/797)) ([edae3fd](https://github.com/open-feature/flagd/commit/edae3fd466c0be62a0256c268e85cb337c9536f2))
* **deps:** update module golang.org/x/net to v0.14.0 ([#798](https://github.com/open-feature/flagd/issues/798)) ([92c2f26](https://github.com/open-feature/flagd/commit/92c2f2676163688130737b34a115374cb5631247))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.15.1 ([#795](https://github.com/open-feature/flagd/issues/795)) ([13d62fd](https://github.com/open-feature/flagd/commit/13d62fd0fc4749f19dba0a18e1fda46a723380c5))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.16.0 ([#856](https://github.com/open-feature/flagd/issues/856)) ([88d832a](https://github.com/open-feature/flagd/commit/88d832a9d49a4bc1d6156849a59227ecab07f96e))
### ✨ New Features
* add flag key to hash in fractional evaluation ([#847](https://github.com/open-feature/flagd/issues/847)) ([ca6a35f](https://github.com/open-feature/flagd/commit/ca6a35fd72462177f45a116e9009fc30b3588b83))
* add gRPC healthchecks ([#863](https://github.com/open-feature/flagd/issues/863)) ([da30b7b](https://github.com/open-feature/flagd/commit/da30b7babffd8487c992fa41519787c8d78ebdba))
* support nested props in fractional evaluator ([#869](https://github.com/open-feature/flagd/issues/869)) ([50ff739](https://github.com/open-feature/flagd/commit/50ff739178fb732e38a220bb6a071260af1f2469))
### 🧹 Chore
* deprecate fractionalEvaluation for fractional ([#873](https://github.com/open-feature/flagd/issues/873)) ([243fef9](https://github.com/open-feature/flagd/commit/243fef9e1f0ed00ccf5d9a389e10d9ad6a197fb1))
* replace xxh3 with murmur3 in bucket algorithm ([#846](https://github.com/open-feature/flagd/issues/846)) ([c3c9e4e](https://github.com/open-feature/flagd/commit/c3c9e4e40aeae7e75b1b9ab13bb9a40264be84e5))
## [0.6.3](https://github.com/open-feature/flagd/compare/core/v0.6.2...core/v0.6.3) (2023-08-04)
### 🐛 Bug Fixes
* **deps:** update module github.com/diegoholiveira/jsonlogic/v3 to v3.3.0 ([#785](https://github.com/open-feature/flagd/issues/785)) ([ee9c54b](https://github.com/open-feature/flagd/commit/ee9c54b6b5cd51b947aae1ff6309ffae07ce89eb))
* **deps:** update module github.com/open-feature/open-feature-operator to v0.2.35 ([#783](https://github.com/open-feature/flagd/issues/783)) ([9ff0b5b](https://github.com/open-feature/flagd/commit/9ff0b5b1bd3bb95581eab83f944aa60e179b207a))
* **deps:** update module go.uber.org/zap to v1.25.0 ([#786](https://github.com/open-feature/flagd/issues/786)) ([40d0aa6](https://github.com/open-feature/flagd/commit/40d0aa66cf422db6811206d777b55396a96f330f))
* **deps:** update module golang.org/x/net to v0.13.0 ([#784](https://github.com/open-feature/flagd/issues/784)) ([f57d023](https://github.com/open-feature/flagd/commit/f57d023174d9cc74b7d8260055f82b84a2bdcc52))
* metric descriptions match the otel spec ([#789](https://github.com/open-feature/flagd/issues/789)) ([34befcd](https://github.com/open-feature/flagd/commit/34befcdfedc5f0479cb0ae77fe148849c341d33e))
### ✨ New Features
* add new configuration "sync-interval" which controls the HTTP polling interval ([#404](https://github.com/open-feature/flagd/issues/404)) ([ace62c7](https://github.com/open-feature/flagd/commit/ace62c7a6ab2b5b5d26642286deb6db406391d8f))
* include falsy json fields ([#792](https://github.com/open-feature/flagd/issues/792)) ([37d91a0](https://github.com/open-feature/flagd/commit/37d91a09836f07e07b12acd13850ea5c7c9252cd))
## [0.6.2](https://github.com/open-feature/flagd/compare/core/v0.6.1...core/v0.6.2) (2023-07-28)
### 🐛 Bug Fixes
* **deps:** update module buf.build/gen/go/open-feature/flagd/grpc/go to v1.3.0-20230720212818-3675556880a1.1 ([#747](https://github.com/open-feature/flagd/issues/747)) ([fb17bc6](https://github.com/open-feature/flagd/commit/fb17bc6a5c715f507b2838c150dc8a2f139a38fb))
* **deps:** update module golang.org/x/net to v0.12.0 ([#734](https://github.com/open-feature/flagd/issues/734)) ([777b28b](https://github.com/open-feature/flagd/commit/777b28b1d512245b0046d11197f6dfa341b317d2))
### ✨ New Features
* grpc selector as scope ([#761](https://github.com/open-feature/flagd/issues/761)) ([7246e6d](https://github.com/open-feature/flagd/commit/7246e6dce648c6445f90d71fc172bbab209d9928))
## [0.6.1](https://github.com/open-feature/flagd/compare/core/v0.6.0...core/v0.6.1) (2023-07-27)
### 🐛 Bug Fixes
* **deps:** update kubernetes packages to v0.27.4 ([#756](https://github.com/open-feature/flagd/issues/756)) ([dcc10f3](https://github.com/open-feature/flagd/commit/dcc10f33f5fd9a8936241725ea811b90b4f136be))
* **deps:** update module github.com/bufbuild/connect-go to v1.10.0 ([#771](https://github.com/open-feature/flagd/issues/771)) ([c74103f](https://github.com/open-feature/flagd/commit/c74103faec068f14c87ad3ec227f5b802dbfac43))
* **deps:** update module google.golang.org/grpc to v1.57.0 ([#773](https://github.com/open-feature/flagd/issues/773)) ([be8bf04](https://github.com/open-feature/flagd/commit/be8bf045093d89099eead2cccb86a5a7275e25d5))
### ✨ New Features
* **flagd-proxy:** introduce zero-downtime ([#752](https://github.com/open-feature/flagd/issues/752)) ([ed5e6e5](https://github.com/open-feature/flagd/commit/ed5e6e5f3ee0a923c33dbf1a8bf20f80adec71bd))
* **flagd:** custom error handling for OTel errors ([#769](https://github.com/open-feature/flagd/issues/769)) ([bda1a92](https://github.com/open-feature/flagd/commit/bda1a92785c4348fe306a1d259b7bea91bd01c41))
## [0.6.0](https://github.com/open-feature/flagd/compare/core/v0.5.4...core/v0.6.0) (2023-07-13)
### ⚠ BREAKING CHANGES
* rename metrics and service ([#730](https://github.com/open-feature/flagd/issues/730))
### 🔄 Refactoring
* remove protobuf dependency from eval package ([#701](https://github.com/open-feature/flagd/issues/701)) ([34ffafd](https://github.com/open-feature/flagd/commit/34ffafd9a777da3f11bd3bfa81565e774cc63214))
### 🐛 Bug Fixes
* **deps:** update kubernetes packages to v0.27.3 ([#708](https://github.com/open-feature/flagd/issues/708)) ([5bf3a69](https://github.com/open-feature/flagd/commit/5bf3a69aa4bf95ce77ad08491bcce420620525d3))
* **deps:** update module github.com/bufbuild/connect-go to v1.9.0 ([#722](https://github.com/open-feature/flagd/issues/722)) ([75223e2](https://github.com/open-feature/flagd/commit/75223e2fc01c4dcd0291b46a0d50b8815b31654c))
* **deps:** update module github.com/bufbuild/connect-opentelemetry-go to v0.4.0 ([#739](https://github.com/open-feature/flagd/issues/739)) ([713e2a9](https://github.com/open-feature/flagd/commit/713e2a9834546963615046de1b6125e7fa6bf20d))
* **deps:** update module github.com/prometheus/client_golang to v1.16.0 ([#709](https://github.com/open-feature/flagd/issues/709)) ([b8bedd2](https://github.com/open-feature/flagd/commit/b8bedd2b895026eace8204ae4ffcff771f7e8e97))
* **deps:** update module golang.org/x/crypto to v0.10.0 ([#647](https://github.com/open-feature/flagd/issues/647)) ([7f1d7e6](https://github.com/open-feature/flagd/commit/7f1d7e66669b88b2c56b32f9cdd9be354ebcfc8e))
* **deps:** update module golang.org/x/mod to v0.11.0 ([#705](https://github.com/open-feature/flagd/issues/705)) ([42813be](https://github.com/open-feature/flagd/commit/42813bef092ba7fffed0dd94166bfd01ea8a7582))
* **deps:** update module golang.org/x/mod to v0.12.0 ([#729](https://github.com/open-feature/flagd/issues/729)) ([7b109c7](https://github.com/open-feature/flagd/commit/7b109c705aceb652ac2675bd0ffe82420983798b))
* **deps:** update module golang.org/x/net to v0.11.0 ([#706](https://github.com/open-feature/flagd/issues/706)) ([27d893f](https://github.com/open-feature/flagd/commit/27d893fe78417f7b8418003edc401ab5a6c21fb9))
* **deps:** update module golang.org/x/sync to v0.3.0 ([#707](https://github.com/open-feature/flagd/issues/707)) ([7852efb](https://github.com/open-feature/flagd/commit/7852efb84e9f071b2b482b1968d799888b6882dc))
* **deps:** update module google.golang.org/grpc to v1.56.1 ([#710](https://github.com/open-feature/flagd/issues/710)) ([8f16573](https://github.com/open-feature/flagd/commit/8f165739aee8f28800e200b357203e88a3fd5938))
* **deps:** update module google.golang.org/grpc to v1.56.2 ([#738](https://github.com/open-feature/flagd/issues/738)) ([521cc30](https://github.com/open-feature/flagd/commit/521cc30cde1971be000ec10d93f6d70b9b2260ee))
* **deps:** update module google.golang.org/protobuf to v1.31.0 ([#720](https://github.com/open-feature/flagd/issues/720)) ([247239e](https://github.com/open-feature/flagd/commit/247239e76b9de1a619aad9e957ed8b44ae534b77))
* **deps:** update opentelemetry-go monorepo ([#648](https://github.com/open-feature/flagd/issues/648)) ([c12dad8](https://github.com/open-feature/flagd/commit/c12dad89a8e761154f57739ded594b2783a14f8a))
### ✨ New Features
* **flagD:** support zero downtime during upgrades ([#731](https://github.com/open-feature/flagd/issues/731)) ([7df8d39](https://github.com/open-feature/flagd/commit/7df8d3994b75991b5e49a65728ef5e4b24a85dde))
* rename metrics and service ([#730](https://github.com/open-feature/flagd/issues/730)) ([09c0198](https://github.com/open-feature/flagd/commit/09c0198f76a200b1b6a1f48e9c94ec0547283ca2))
## [0.5.4](https://github.com/open-feature/flagd/compare/core/v0.5.3...core/v0.5.4) (2023-06-07)
### ✨ New Features
* add `sem_ver` jsonLogic evaluator ([#675](https://github.com/open-feature/flagd/issues/675)) ([a8d8ab6](https://github.com/open-feature/flagd/commit/a8d8ab6b4495457a40a2c32b8bd5be48b1fd6941))
* add `starts_with` and `ends_with` json evaluators ([#658](https://github.com/open-feature/flagd/issues/658)) ([f932b8f](https://github.com/open-feature/flagd/commit/f932b8f4c834a5ebe27ebb860c26fdea8da20598))
* telemetry improvements ([#653](https://github.com/open-feature/flagd/issues/653)) ([ea02cba](https://github.com/open-feature/flagd/commit/ea02cba24bde982d55956fe54de1e8f27226bfc6))
### 🐛 Bug Fixes
* **deps:** update module github.com/bufbuild/connect-go to v1.8.0 ([#683](https://github.com/open-feature/flagd/issues/683)) ([13bb13d](https://github.com/open-feature/flagd/commit/13bb13daa11068481ba97f3432ae08de78392a91))
* **deps:** update module github.com/bufbuild/connect-opentelemetry-go to v0.3.0 ([#669](https://github.com/open-feature/flagd/issues/669)) ([e899435](https://github.com/open-feature/flagd/commit/e899435c29c32264ea2477436e69ce92c7775ee9))
* **deps:** update module github.com/prometheus/client_golang to v1.15.1 ([#636](https://github.com/open-feature/flagd/issues/636)) ([b22279d](https://github.com/open-feature/flagd/commit/b22279df469dc78f9d3e5bc4a59ab6baf539a8ae))
* **deps:** update module github.com/stretchr/testify to v1.8.3 ([#662](https://github.com/open-feature/flagd/issues/662)) ([2e06d58](https://github.com/open-feature/flagd/commit/2e06d582ee9c8abfd57f8945d91261eab6cf9854))
* **deps:** update module github.com/stretchr/testify to v1.8.4 ([#678](https://github.com/open-feature/flagd/issues/678)) ([ca8c9d6](https://github.com/open-feature/flagd/commit/ca8c9d66a0c6b21129c4c36a3c10dcf3be869ee7))
* **deps:** update module golang.org/x/mod to v0.10.0 ([#682](https://github.com/open-feature/flagd/issues/682)) ([16199ce](https://github.com/open-feature/flagd/commit/16199ceac9ebbae68dafbd6c21239f64f8c32511))
* **deps:** update module golang.org/x/net to v0.10.0 ([#644](https://github.com/open-feature/flagd/issues/644)) ([ccd9d35](https://github.com/open-feature/flagd/commit/ccd9d351df153039a124064f30e5829610773f27))
* **deps:** update module golang.org/x/sync to v0.2.0 ([#638](https://github.com/open-feature/flagd/issues/638)) ([7f4a7db](https://github.com/open-feature/flagd/commit/7f4a7db8139294a21b3415710c143f182d93264a))
* **deps:** update module google.golang.org/grpc to v1.55.0 ([#640](https://github.com/open-feature/flagd/issues/640)) ([c0d7328](https://github.com/open-feature/flagd/commit/c0d732866262240e340fe10f8ac0f6ff2a5c4f8c))
* **deps:** update module sigs.k8s.io/controller-runtime to v0.15.0 ([#665](https://github.com/open-feature/flagd/issues/665)) ([9490ed6](https://github.com/open-feature/flagd/commit/9490ed62e2fc589af8ae7ee26bfd559797a1f83c))
* fix connect error code handling for disabled flags ([#670](https://github.com/open-feature/flagd/issues/670)) ([86a8012](https://github.com/open-feature/flagd/commit/86a8012efcfeb3e967657f6143c143b457d64ca2))
* remove disabled flags from bulk evaluation ([#672](https://github.com/open-feature/flagd/issues/672)) ([d2ce988](https://github.com/open-feature/flagd/commit/d2ce98838edf63b88ee9fb5ae6f8d534e1112e7e))
### 🔄 Refactoring
* introduce additional linting rules + fix discrepancies ([#616](https://github.com/open-feature/flagd/issues/616)) ([aef0b90](https://github.com/open-feature/flagd/commit/aef0b9042dcbe5b3f9a7e97960b27366fe50adfe))
* introduce isyncstore interface ([#660](https://github.com/open-feature/flagd/issues/660)) ([c0e2fa0](https://github.com/open-feature/flagd/commit/c0e2fa00736d46db98f72114a449b2e2bf998e3d))
### 🧹 Chore
* refactor json logic evaluator to pass custom operators as options ([#691](https://github.com/open-feature/flagd/issues/691)) ([1c9bff9](https://github.com/open-feature/flagd/commit/1c9bff9a523037c3654b592dc08c193aa3295e9e))
* update otel dependencies ([#649](https://github.com/open-feature/flagd/issues/649)) ([2114e41](https://github.com/open-feature/flagd/commit/2114e41c38951247866c0b408e5f933282902e70))
## [0.5.3](https://github.com/open-feature/flagd/compare/core/v0.5.2...core/v0.5.3) (2023-05-04)
### 🐛 Bug Fixes
* **deps:** update module github.com/bufbuild/connect-go to v1.6.0 ([#585](https://github.com/open-feature/flagd/issues/585)) ([8f2f467](https://github.com/open-feature/flagd/commit/8f2f467af52a3686196a821eec61954d89d3f71d))
* **deps:** update module github.com/bufbuild/connect-go to v1.7.0 ([#625](https://github.com/open-feature/flagd/issues/625)) ([1b24fc9](https://github.com/open-feature/flagd/commit/1b24fc923a405b337634009831ef0b9792953ce5))
* **deps:** update module github.com/open-feature/open-feature-operator to v0.2.34 ([#604](https://github.com/open-feature/flagd/issues/604)) ([3e6a84b](https://github.com/open-feature/flagd/commit/3e6a84b455a330f541784b346d3b6199f8b423f7))
* **deps:** update module github.com/prometheus/client_golang to v1.15.0 ([#608](https://github.com/open-feature/flagd/issues/608)) ([0597a8f](https://github.com/open-feature/flagd/commit/0597a8f23d0914b26f06b1335b49fe7c18ecb4f9))
* **deps:** update module github.com/rs/cors to v1.9.0 ([#609](https://github.com/open-feature/flagd/issues/609)) ([97066c1](https://github.com/open-feature/flagd/commit/97066c107d14777eaad8a05b3bb051639af3179c))
* **deps:** update module github.com/rs/xid to v1.5.0 ([#614](https://github.com/open-feature/flagd/issues/614)) ([e3dfbc6](https://github.com/open-feature/flagd/commit/e3dfbc6753bddc9e2f5c4a2633a7010123cf2f97))
* **deps:** update module golang.org/x/crypto to v0.8.0 ([#595](https://github.com/open-feature/flagd/issues/595)) ([36016d7](https://github.com/open-feature/flagd/commit/36016d7940fa772c01dd61b071b2c9ec753cfb75))
### ✨ New Features
* Introduce connect traces ([#624](https://github.com/open-feature/flagd/issues/624)) ([28bac6a](https://github.com/open-feature/flagd/commit/28bac6a54aed79cb8d84a147ffea296c36f5bd51))
### 🧹 Chore
* add instructions for windows and fix failing unit tests ([#632](https://github.com/open-feature/flagd/issues/632)) ([6999d67](https://github.com/open-feature/flagd/commit/6999d6722581ab8e2e14bfd4b2d0341fe5216684))
## [0.5.2](https://github.com/open-feature/flagd/compare/core/v0.5.1...core/v0.5.2) (2023-04-13)
### 🐛 Bug Fixes
* **deps:** update module github.com/open-feature/open-feature-operator to v0.2.32 [security] ([#606](https://github.com/open-feature/flagd/issues/606)) ([6f721af](https://github.com/open-feature/flagd/commit/6f721af379fcb0f1a74410637a313477148ef863))
* eventing configuration setup ([#605](https://github.com/open-feature/flagd/issues/605)) ([edfbe51](https://github.com/open-feature/flagd/commit/edfbe5191651f25da991b507a3feedcbbe3c66f1))
### ✨ New Features
* introduce metrics for failed evaluations ([#584](https://github.com/open-feature/flagd/issues/584)) ([77664cd](https://github.com/open-feature/flagd/commit/77664cdf53a868f56ca040bdfe3f4930cd9a8fb4))
* otel traces for flag evaluation ([#598](https://github.com/open-feature/flagd/issues/598)) ([1757035](https://github.com/open-feature/flagd/commit/175703548f88469f25d749e320ee48030c9f9074))
## [0.5.1](https://github.com/open-feature/flagd/compare/core/v0.5.0...core/v0.5.1) (2023-04-12)
### 🧹 Chore
* move startServer functions into errGroups ([#566](https://github.com/open-feature/flagd/issues/566)) ([0223c23](https://github.com/open-feature/flagd/commit/0223c23fbd72322cf6ecbe6736968b3e6c6132bb))
### ✨ New Features
* flagd OTEL collector ([#586](https://github.com/open-feature/flagd/issues/586)) ([494bec3](https://github.com/open-feature/flagd/commit/494bec33dcc1ddf0fa5cd0866f06265618408f5e))
### 🔄 Refactoring
* remove connect-go from flagd-proxy and replace with grpc ([#589](https://github.com/open-feature/flagd/issues/589)) ([425de9a](https://github.com/open-feature/flagd/commit/425de9a1c2d1574779b905ac6debb9edfc156b15))
### 🐛 Bug Fixes
* flagd-proxy locking bug fix ([#592](https://github.com/open-feature/flagd/issues/592)) ([b166122](https://github.com/open-feature/flagd/commit/b1661225c912ee11ba4749f7ef157a0335e8781f))
## [0.5.0](https://github.com/open-feature/flagd/compare/core/v0.4.5...core/v0.5.0) (2023-03-30)

View File

@ -1,100 +1,167 @@
module github.com/open-feature/flagd/core
go 1.19
go 1.24.0
toolchain go1.24.4
require (
buf.build/gen/go/open-feature/flagd/bufbuild/connect-go v1.5.2-20230222100723-491ee098dd92.1
buf.build/gen/go/open-feature/flagd/grpc/go v1.3.0-20230317150644-afd1cc2ef580.1
buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.29.1-20230317150644-afd1cc2ef580.1
github.com/bufbuild/connect-go v1.5.2
github.com/diegoholiveira/jsonlogic/v3 v3.2.7
github.com/fsnotify/fsnotify v1.6.0
github.com/golang/mock v1.6.0
github.com/open-feature/open-feature-operator v0.2.31
github.com/open-feature/schemas v0.2.8
github.com/prometheus/client_golang v1.14.0
buf.build/gen/go/open-feature/flagd/grpc/go v1.5.1-20250529171031-ebdc14163473.2
buf.build/gen/go/open-feature/flagd/protocolbuffers/go v1.36.6-20250529171031-ebdc14163473.1
connectrpc.com/connect v1.18.1
connectrpc.com/otelconnect v0.7.2
github.com/diegoholiveira/jsonlogic/v3 v3.8.4
github.com/fsnotify/fsnotify v1.9.0
github.com/google/go-cmp v0.7.0
github.com/open-feature/flagd-schemas v0.2.9-0.20250707123415-08b4c52d3b86
github.com/open-feature/open-feature-operator/apis v0.2.45
github.com/prometheus/client_golang v1.22.0
github.com/robfig/cron v1.2.0
github.com/rs/cors v1.8.3
github.com/rs/xid v1.4.0
github.com/stretchr/testify v1.8.2
github.com/stretchr/testify v1.10.0
github.com/twmb/murmur3 v1.1.8
github.com/xeipuuv/gojsonschema v1.2.0
github.com/zeebo/xxh3 v1.0.2
go.opentelemetry.io/otel v1.14.0
go.opentelemetry.io/otel/exporters/prometheus v0.36.0
go.opentelemetry.io/otel/metric v0.36.0
go.opentelemetry.io/otel/sdk v1.13.0
go.opentelemetry.io/otel/sdk/metric v0.36.0
go.uber.org/zap v1.24.0
golang.org/x/crypto v0.7.0
golang.org/x/net v0.8.0
golang.org/x/sync v0.1.0
google.golang.org/grpc v1.54.0
google.golang.org/protobuf v1.30.0
go.opentelemetry.io/otel v1.37.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.37.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0
go.opentelemetry.io/otel/exporters/prometheus v0.59.0
go.opentelemetry.io/otel/metric v1.37.0
go.opentelemetry.io/otel/sdk v1.37.0
go.opentelemetry.io/otel/sdk/metric v1.37.0
go.opentelemetry.io/otel/trace v1.37.0
go.uber.org/mock v0.5.2
go.uber.org/zap v1.27.0
gocloud.dev v0.42.0
golang.org/x/crypto v0.39.0
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac
golang.org/x/mod v0.25.0
golang.org/x/sync v0.15.0
google.golang.org/grpc v1.73.0
google.golang.org/protobuf v1.36.6
gopkg.in/yaml.v3 v3.0.1
k8s.io/apimachinery v0.26.3
k8s.io/client-go v0.26.3
sigs.k8s.io/controller-runtime v0.14.6
k8s.io/apimachinery v0.33.2
k8s.io/client-go v0.33.2
)
require (
cel.dev/expr v0.23.0 // indirect
cloud.google.com/go v0.121.1 // indirect
cloud.google.com/go/auth v0.16.1 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
cloud.google.com/go/compute/metadata v0.7.0 // indirect
cloud.google.com/go/iam v1.5.2 // indirect
cloud.google.com/go/monitoring v1.24.2 // indirect
cloud.google.com/go/storage v1.55.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.1 // indirect
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.8.2 // indirect
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.6.0 // indirect
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
github.com/Azure/go-autorest/autorest/to v0.4.1 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.27.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.51.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.51.0 // indirect
github.com/aws/aws-sdk-go v1.55.6 // indirect
github.com/aws/aws-sdk-go-v2 v1.36.3 // indirect
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect
github.com/aws/aws-sdk-go-v2/config v1.29.12 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.65 // indirect
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.69 // indirect
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect
github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.25.2 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.0 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.33.17 // indirect
github.com/aws/smithy-go v1.22.3 // indirect
github.com/barkimedes/go-deepcopy v0.0.0-20220514131651-17c30cfc62df // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/emicklei/go-restful/v3 v3.10.1 // indirect
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
github.com/go-logr/logr v1.2.3 // indirect
github.com/cenkalti/backoff/v5 v5.0.2 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cncf/xds/go v0.0.0-20250326154945-ae57f3c0d45f // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/emicklei/go-restful/v3 v3.12.0 // indirect
github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
github.com/evanphx/json-patch/v5 v5.9.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-jose/go-jose/v4 v4.0.5 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
github.com/go-openapi/swag v0.22.3 // indirect
github.com/go-openapi/jsonpointer v0.21.0 // indirect
github.com/go-openapi/jsonreference v0.21.0 // indirect
github.com/go-openapi/swag v0.23.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/google/gnostic v0.6.9 // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/imdario/mergo v0.3.13 // indirect
github.com/golang-jwt/jwt/v5 v5.2.2 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/google/gnostic-models v0.6.9 // indirect
github.com/google/s2a-go v0.1.9 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/google/wire v0.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
github.com/googleapis/gax-go/v2 v2.14.2 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/kr/pretty v0.3.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_model v0.3.0 // indirect
github.com/prometheus/common v0.40.0 // indirect
github.com/prometheus/procfs v0.9.0 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_model v0.6.2 // indirect
github.com/prometheus/common v0.65.0 // indirect
github.com/prometheus/procfs v0.16.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
go.opentelemetry.io/otel/trace v1.14.0 // indirect
go.uber.org/atomic v1.10.0 // indirect
go.uber.org/multierr v1.9.0 // indirect
golang.org/x/oauth2 v0.5.0 // indirect
golang.org/x/sys v0.6.0 // indirect
golang.org/x/term v0.6.0 // indirect
golang.org/x/text v0.8.0 // indirect
golang.org/x/time v0.3.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230221151758-ace64dc21148 // indirect
github.com/zeebo/errs v1.4.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/contrib/detectors/gcp v1.36.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 // indirect
go.opentelemetry.io/proto/otlp v1.7.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/net v0.41.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/term v0.32.0 // indirect
golang.org/x/text v0.26.0 // indirect
golang.org/x/time v0.11.0 // indirect
golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/api v0.235.0 // indirect
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
k8s.io/api v0.26.3 // indirect
k8s.io/apiextensions-apiserver v0.26.1 // indirect
k8s.io/component-base v0.26.1 // indirect
k8s.io/klog/v2 v2.90.0 // indirect
k8s.io/kube-openapi v0.0.0-20230217203603-ff9a8e8fa21d // indirect
k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
k8s.io/api v0.33.2 // indirect
k8s.io/apiextensions-apiserver v0.31.1 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
sigs.k8s.io/controller-runtime v0.19.3 // indirect
sigs.k8s.io/gateway-api v1.2.1 // indirect
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
sigs.k8s.io/randfill v1.0.0 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,69 @@
package certreloader
import (
"crypto/tls"
"fmt"
"sync"
"time"
)
type Config struct {
KeyPath string
CertPath string
ReloadInterval time.Duration
}
type CertReloader struct {
cert *tls.Certificate
mu sync.RWMutex
nextReload time.Time
Config
}
func NewCertReloader(config Config) (*CertReloader, error) {
reloader := CertReloader{
Config: config,
}
reloader.mu.Lock()
defer reloader.mu.Unlock()
cert, err := reloader.loadCertificate()
if err != nil {
return nil, fmt.Errorf("failed to load initial certificate: %w", err)
}
reloader.cert = &cert
return &reloader, nil
}
func (r *CertReloader) GetCertificate() (*tls.Certificate, error) {
now := time.Now()
// Read locking here before we do the time comparison
// If a reload is in progress this will block and we will skip reloading in the current
// call once we can continue
r.mu.RLock()
shouldReload := r.ReloadInterval != 0 && r.nextReload.Before(now)
r.mu.RUnlock()
if shouldReload {
// Need to release the read lock, otherwise we deadlock
r.mu.Lock()
defer r.mu.Unlock()
cert, err := r.loadCertificate()
if err != nil {
return nil, fmt.Errorf("failed to load TLS cert and key: %w", err)
}
r.cert = &cert
r.nextReload = now.Add(r.ReloadInterval)
return r.cert, nil
}
return r.cert, nil
}
func (r *CertReloader) loadCertificate() (tls.Certificate, error) {
newCert, err := tls.LoadX509KeyPair(r.CertPath, r.KeyPath)
if err != nil {
return tls.Certificate{}, fmt.Errorf("failed to load key pair: %w", err)
}
return newCert, nil
}

View File

@ -0,0 +1,306 @@
package certreloader
import (
"bytes"
"crypto/rand"
"crypto/rsa"
"crypto/tls"
"crypto/x509"
"crypto/x509/pkix"
"encoding/pem"
"fmt"
"io"
"math/big"
"net"
"os"
"testing"
"time"
)
func TestNewCertReloader(t *testing.T) {
cert1, key1, cleanup := generateValidCertificateFiles(t)
defer cleanup()
_, key2, cleanup := generateValidCertificateFiles(t)
defer cleanup()
tcs := []struct {
name string
config Config
err error
}{
{
name: "no config set",
config: Config{},
err: fmt.Errorf("failed to load initial certificate: failed to load key pair: open : no such file or directory"),
},
{
name: "invalid certs",
config: Config{CertPath: cert1, KeyPath: key2},
err: fmt.Errorf("failed to load initial certificate: failed to load key pair: tls: private key does not match public key"),
},
{
name: "valid certs",
config: Config{CertPath: cert1, KeyPath: key1},
err: nil,
},
}
for _, tc := range tcs {
t.Run(tc.name, func(t *testing.T) {
reloader, err := NewCertReloader(tc.config)
if err != nil {
if tc.err == nil {
t.Fatalf("NewCertReloader returned error when no error was expected: %s", err)
} else if tc.err.Error() != err.Error() {
t.Fatalf("expected error did not matched received error. expected: %v, received: %v", tc.err, err)
}
} else {
if reloader == nil {
t.Fatal("expected reloader to not be nil")
}
}
})
}
}
func TestCertificateReload(t *testing.T) {
newCert, newKey, cleanup := generateValidCertificateFiles(t)
defer cleanup()
tcs := []struct {
name string
waitInterval time.Duration
reloadInterval time.Duration
newCert string
newKey string
shouldRotate bool
err error
}{
{
name: "reloads after interval",
waitInterval: time.Microsecond * 200,
reloadInterval: time.Microsecond * 100,
newCert: newCert,
newKey: newKey,
shouldRotate: true,
err: nil,
},
{
name: "doesnt reload before interval",
waitInterval: time.Microsecond * 50,
reloadInterval: time.Microsecond * 100,
newCert: newCert,
newKey: newKey,
shouldRotate: false,
err: nil,
},
}
for _, tc := range tcs {
t.Run(tc.name, func(t *testing.T) {
cert, key, cleanup := generateValidCertificateFiles(t)
defer cleanup()
reloader, err := NewCertReloader(Config{
CertPath: cert,
KeyPath: key,
ReloadInterval: tc.reloadInterval,
})
if err != nil {
t.Fatal(err)
}
if err := copyFile(tc.newCert, cert); err != nil {
t.Fatalf("failed to move %s -> %s: %s", newCert, cert, err)
}
if err := copyFile(tc.newKey, key); err != nil {
t.Fatalf("failed to move %s -> %s: %s", newKey, key, err)
}
time.Sleep(tc.waitInterval)
actualCert, err := reloader.GetCertificate()
if err != nil {
t.Fatal(err)
}
actualCertParsed, err := x509.ParseCertificate(actualCert.Certificate[0])
if err != nil {
t.Fatal(err)
}
var expectedCert tls.Certificate
if tc.shouldRotate {
expectedCert, err = tls.LoadX509KeyPair(tc.newCert, tc.newKey)
if err != nil {
t.Fatal(err)
}
} else {
expectedCert, err = tls.LoadX509KeyPair(cert, key)
if err != nil {
t.Fatal(err)
}
}
expectedCertParsed, err := x509.ParseCertificate(expectedCert.Certificate[0])
if err != nil {
t.Fatal(err)
}
if expectedCertParsed.DNSNames[0] != actualCertParsed.DNSNames[0] {
t.Fatalf("expected certificate was not returned by GetCertificate. expectedCert: %v, actualCert: %v", expectedCertParsed.DNSNames[0], actualCertParsed.DNSNames[0])
}
})
}
}
func generateValidCertificate(t *testing.T) (*bytes.Buffer, *bytes.Buffer) {
t.Helper()
// set up our CA certificate
ca := &x509.Certificate{
SerialNumber: big.NewInt(2019),
Subject: pkix.Name{
Organization: []string{"Company, INC."},
Country: []string{"US"},
Province: []string{""},
Locality: []string{"San Francisco"},
StreetAddress: []string{"Golden Gate Bridge"},
PostalCode: []string{"94016"},
},
NotBefore: time.Now(),
NotAfter: time.Now().AddDate(10, 0, 0),
IsCA: true,
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth},
KeyUsage: x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
BasicConstraintsValid: true,
}
// create our private and public key
caPrivKey, err := rsa.GenerateKey(rand.Reader, 4096)
if err != nil {
t.Fatal(err)
}
// create the CA
caBytes, err := x509.CreateCertificate(rand.Reader, ca, ca, &caPrivKey.PublicKey, caPrivKey)
if err != nil {
t.Fatal(err)
}
// pem encode
caPEM := new(bytes.Buffer)
err = pem.Encode(caPEM, &pem.Block{
Type: "CERTIFICATE",
Bytes: caBytes,
})
if err != nil {
t.Fatal(err)
}
caPrivKeyPEM := new(bytes.Buffer)
err = pem.Encode(caPrivKeyPEM, &pem.Block{
Type: "RSA PRIVATE KEY",
Bytes: x509.MarshalPKCS1PrivateKey(caPrivKey),
})
if err != nil {
t.Fatal(err)
}
// set up our server certificate
cert := &x509.Certificate{
SerialNumber: big.NewInt(2019),
Subject: pkix.Name{
Organization: []string{"Company, INC."},
Country: []string{"US"},
Province: []string{""},
Locality: []string{"San Francisco"},
StreetAddress: []string{"Golden Gate Bridge"},
PostalCode: []string{"94016"},
},
DNSNames: []string{randString(8)},
IPAddresses: []net.IP{net.IPv4(127, 0, 0, 1), net.IPv6loopback},
NotBefore: time.Now(),
NotAfter: time.Now().AddDate(10, 0, 0),
SubjectKeyId: []byte{1, 2, 3, 4, 6},
ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageClientAuth, x509.ExtKeyUsageServerAuth},
KeyUsage: x509.KeyUsageDigitalSignature,
}
certPrivKey, err := rsa.GenerateKey(rand.Reader, 4096)
if err != nil {
t.Fatalf("failed to create private key: %s", err)
}
certBytes, err := x509.CreateCertificate(rand.Reader, cert, ca, &certPrivKey.PublicKey, caPrivKey)
if err != nil {
t.Fatalf("failed to create certificate: %s", err)
}
certPEM := new(bytes.Buffer)
err = pem.Encode(certPEM, &pem.Block{
Type: "CERTIFICATE",
Bytes: certBytes,
})
if err != nil {
t.Fatal(err)
}
certPrivKeyPEM := new(bytes.Buffer)
err = pem.Encode(certPrivKeyPEM, &pem.Block{
Type: "RSA PRIVATE KEY",
Bytes: x509.MarshalPKCS1PrivateKey(certPrivKey),
})
if err != nil {
t.Fatal(err)
}
return certPEM, certPrivKeyPEM
}
func generateValidCertificateFiles(t *testing.T) (string, string, func()) {
t.Helper()
certFile, err := os.CreateTemp("", "certreloader_cert")
if err != nil {
t.Fatalf("failed to create certFile: %s", err)
}
defer certFile.Close()
keyFile, err := os.CreateTemp("", "certreloader_key")
if err != nil {
t.Fatalf("failed to create keyFile: %s", err)
}
defer keyFile.Close()
certBytes, keyBytes := generateValidCertificate(t)
if _, err := io.Copy(certFile, certBytes); err != nil {
t.Fatalf("failed to copy certBytes into %s: %s", certFile.Name(), err)
}
if _, err := io.Copy(keyFile, keyBytes); err != nil {
t.Fatalf("failed to copy keyBytes into %s: %s", keyFile.Name(), err)
}
return certFile.Name(), keyFile.Name(), func() {
os.Remove(certFile.Name())
os.Remove(keyFile.Name())
}
}
func copyFile(src, dst string) error {
data, err := os.ReadFile(src)
if err != nil {
return fmt.Errorf("failed to load key pair: %w", err)
}
err = os.WriteFile(dst, data, 0o0600)
if err != nil {
return fmt.Errorf("failed to load key pair: %w", err)
}
return nil
}
func randString(n int) string {
const alphanum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
bytes := make([]byte, n)
//nolint:errcheck
rand.Read(bytes)
for i, b := range bytes {
bytes[i] = alphanum[b%byte(len(alphanum))]
}
return string(bytes)
}

View File

@ -1,117 +0,0 @@
package eval
import (
"errors"
"fmt"
"math"
"github.com/zeebo/xxh3"
)
type fractionalEvaluationDistribution struct {
variant string
percentage int
}
func (je *JSONEvaluator) fractionalEvaluation(values, data interface{}) interface{} {
valueToDistribute, feDistributions, err := parseFractionalEvaluationData(values, data)
if err != nil {
je.Logger.Error(fmt.Sprintf("parse fractional evaluation data: %v", err))
return nil
}
return distributeValue(valueToDistribute, feDistributions)
}
func parseFractionalEvaluationData(values, data interface{}) (string, []fractionalEvaluationDistribution, error) {
valuesArray, ok := values.([]interface{})
if !ok {
return "", nil, errors.New("fractional evaluation data is not an array")
}
if len(valuesArray) < 2 {
return "", nil, errors.New("fractional evaluation data has length under 2")
}
bucketBy, ok := valuesArray[0].(string)
if !ok {
return "", nil, errors.New("first element of fractional evaluation data isn't of type string")
}
dataMap, ok := data.(map[string]interface{})
if !ok {
return "", nil, errors.New("data isn't of type map[string]interface{}")
}
v, ok := dataMap[bucketBy]
if !ok {
return "", nil, nil
}
valueToDistribute, ok := v.(string)
if !ok {
return "", nil, fmt.Errorf("var: %s isn't of type string", bucketBy)
}
feDistributions, err := parseFractionalEvaluationDistributions(valuesArray)
if err != nil {
return "", nil, err
}
return valueToDistribute, feDistributions, nil
}
func parseFractionalEvaluationDistributions(values []interface{}) ([]fractionalEvaluationDistribution, error) {
sumOfPercentages := 0
var feDistributions []fractionalEvaluationDistribution
for i := 1; i < len(values); i++ {
distributionArray, ok := values[i].([]interface{})
if !ok {
return nil, errors.New("distribution elements aren't of type []interface{}")
}
if len(distributionArray) != 2 {
return nil, errors.New("distribution element isn't length 2")
}
variant, ok := distributionArray[0].(string)
if !ok {
return nil, errors.New("first element of distribution element isn't string")
}
percentage, ok := distributionArray[1].(float64)
if !ok {
return nil, errors.New("second element of distribution element isn't float")
}
sumOfPercentages += int(percentage)
feDistributions = append(feDistributions, fractionalEvaluationDistribution{
variant: variant,
percentage: int(percentage),
})
}
if sumOfPercentages != 100 {
return nil, fmt.Errorf("percentages must sum to 100, got: %d", sumOfPercentages)
}
return feDistributions, nil
}
func distributeValue(value string, feDistribution []fractionalEvaluationDistribution) string {
hashValue := xxh3.HashString(value)
hashRatio := float64(hashValue) / math.Pow(2, 64) // divide the hash value by the largest possible value, integer 2^64
bucket := int(hashRatio * 100) // integer in range [0, 99]
rangeEnd := 0
for _, dist := range feDistribution {
rangeEnd += dist.percentage
if bucket < rangeEnd {
return dist.variant
}
}
return ""
}

View File

@ -1,442 +0,0 @@
package eval
import (
"testing"
"github.com/open-feature/flagd/core/pkg/store"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"google.golang.org/protobuf/types/known/structpb"
)
func TestFractionalEvaluation(t *testing.T) {
flags := Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"in": ["@faas.com", {
"var": ["email"]
}]
},
{
"fractionalEvaluation": [
"email",
[
"red",
25
],
[
"blue",
25
],
[
"green",
25
],
[
"yellow",
25
]
]
}, null
]
}`),
},
},
}
tests := map[string]struct {
flags Flags
flagKey string
context *structpb.Struct
expectedValue string
expectedVariant string
expectedReason string
expectedError error
}{
"test@faas.com": {
flags: flags,
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test@faas.com",
}},
}},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"test2@faas.com": {
flags: flags,
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test2@faas.com",
}},
}},
expectedVariant: "yellow",
expectedValue: "#FFFF00",
expectedReason: model.TargetingMatchReason,
},
"test3@faas.com": {
flags: flags,
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test3@faas.com",
}},
}},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"test4@faas.com": {
flags: flags,
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test4@faas.com",
}},
}},
expectedVariant: "blue",
expectedValue: "#0000FF",
expectedReason: model.TargetingMatchReason,
},
"non even split": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"in": ["@faas.com", {
"var": ["email"]
}]
},
{
"fractionalEvaluation": [
"email",
[
"red",
50
],
[
"blue",
25
],
[
"green",
25
]
]
}, null
]
}`),
},
},
},
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test4@faas.com",
}},
}},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"fallback to default variant if no email provided": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"fractionalEvaluation": [
"email",
[
"red",
25
],
[
"blue",
25
],
[
"green",
25
],
[
"yellow",
25
]
]
}`),
},
},
},
flagKey: "headerColor",
context: &structpb.Struct{},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.DefaultReason,
},
"fallback to default variant if invalid variant as result of fractional evaluation": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"fractionalEvaluation": [
"email",
[
"black",
100
]
]
}`),
},
},
},
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "foo@foo.com",
}},
}},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.DefaultReason,
},
"fallback to default variant if percentages don't sum to 100": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"fractionalEvaluation": [
"email",
[
"red",
25
],
[
"blue",
25
]
]
}`),
},
},
},
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "foo@foo.com",
}},
}},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.DefaultReason,
},
}
const reqID = "default"
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
je := NewJSONEvaluator(logger.NewLogger(nil, false), store.NewFlags())
je.store.Flags = tt.flags.Flags
value, variant, reason, err := resolve[string](
reqID, tt.flagKey, tt.context, je.evaluateVariant, je.store.Flags[tt.flagKey].Variants,
)
if value != tt.expectedValue {
t.Errorf("expected value '%s', got '%s'", tt.expectedValue, value)
}
if variant != tt.expectedVariant {
t.Errorf("expected variant '%s', got '%s'", tt.expectedVariant, variant)
}
if reason != tt.expectedReason {
t.Errorf("expected reason '%s', got '%s'", tt.expectedReason, reason)
}
if err != tt.expectedError {
t.Errorf("expected err '%v', got '%v'", tt.expectedError, err)
}
})
}
}
func BenchmarkFractionalEvaluation(b *testing.B) {
flags := Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"in": ["@faas.com", {
"var": ["email"]
}]
},
{
"fractionalEvaluation": [
"email",
[
"red",
25
],
[
"blue",
25
],
[
"green",
25
],
[
"yellow",
25
]
]
}, null
]
}`),
},
},
}
tests := map[string]struct {
flags Flags
flagKey string
context *structpb.Struct
expectedValue string
expectedVariant string
expectedReason string
expectedError error
}{
"test@faas.com": {
flags: flags,
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test@faas.com",
}},
}},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"test2@faas.com": {
flags: flags,
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test2@faas.com",
}},
}},
expectedVariant: "yellow",
expectedValue: "#FFFF00",
expectedReason: model.TargetingMatchReason,
},
"test3@faas.com": {
flags: flags,
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test3@faas.com",
}},
}},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"test4@faas.com": {
flags: flags,
flagKey: "headerColor",
context: &structpb.Struct{Fields: map[string]*structpb.Value{
"email": {Kind: &structpb.Value_StringValue{
StringValue: "test4@faas.com",
}},
}},
expectedVariant: "blue",
expectedValue: "#0000FF",
expectedReason: model.TargetingMatchReason,
},
}
reqID := "test"
for name, tt := range tests {
b.Run(name, func(b *testing.B) {
je := JSONEvaluator{store: &store.Flags{Flags: tt.flags.Flags}}
for i := 0; i < b.N; i++ {
value, variant, reason, err := resolve[string](
reqID, tt.flagKey, tt.context, je.evaluateVariant, je.store.Flags[tt.flagKey].Variants,
)
if value != tt.expectedValue {
b.Errorf("expected value '%s', got '%s'", tt.expectedValue, value)
}
if variant != tt.expectedVariant {
b.Errorf("expected variant '%s', got '%s'", tt.expectedVariant, variant)
}
if reason != tt.expectedReason {
b.Errorf("expected reason '%s', got '%s'", tt.expectedReason, reason)
}
if err != tt.expectedError {
b.Errorf("expected err '%v', got '%v'", tt.expectedError, err)
}
}
})
}
}

View File

@ -1,55 +0,0 @@
package eval
import (
"github.com/open-feature/flagd/core/pkg/sync"
"google.golang.org/protobuf/types/known/structpb"
)
type AnyValue struct {
Value interface{}
Variant string
Reason string
FlagKey string
}
func NewAnyValue(value interface{}, variant string, reason string, flagKey string) AnyValue {
return AnyValue{
Value: value,
Variant: variant,
Reason: reason,
FlagKey: flagKey,
}
}
/*
IEvaluator implementations store the state of the flags,
do parsing and validation of the flag state and evaluate flags in response to handlers.
*/
type IEvaluator interface {
GetState() (string, error)
SetState(payload sync.DataSync) (map[string]interface{}, bool, error)
ResolveBooleanValue(
reqID string,
flagKey string,
context *structpb.Struct) (value bool, variant string, reason string, err error)
ResolveStringValue(
reqID string,
flagKey string,
context *structpb.Struct) (value string, variant string, reason string, err error)
ResolveIntValue(
reqID string,
flagKey string,
context *structpb.Struct) (value int64, variant string, reason string, err error)
ResolveFloatValue(
reqID string,
flagKey string,
context *structpb.Struct) (value float64, variant string, reason string, err error)
ResolveObjectValue(
reqID string,
flagKey string,
context *structpb.Struct) (value map[string]any, variant string, reason string, err error)
ResolveAllValues(
reqID string,
context *structpb.Struct) (values []AnyValue)
}

View File

@ -1,354 +0,0 @@
package eval
import (
"bytes"
"encoding/json"
"errors"
"fmt"
"regexp"
"strconv"
"strings"
"github.com/open-feature/flagd/core/pkg/store"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/diegoholiveira/jsonlogic/v3"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
schema "github.com/open-feature/schemas/json"
"github.com/xeipuuv/gojsonschema"
"go.uber.org/zap"
"google.golang.org/protobuf/types/known/structpb"
)
var regBrace *regexp.Regexp
func init() {
regBrace = regexp.MustCompile("^[^{]*{|}[^}]*$")
}
type JSONEvaluator struct {
store *store.Flags
Logger *logger.Logger
}
type constraints interface {
bool | string | map[string]any | float64
}
const (
Disabled = "DISABLED"
)
func NewJSONEvaluator(logger *logger.Logger, s *store.Flags) *JSONEvaluator {
ev := JSONEvaluator{
Logger: logger.WithFields(
zap.String("component", "evaluator"),
zap.String("evaluator", "json"),
),
store: s,
}
jsonlogic.AddOperator("fractionalEvaluation", ev.fractionalEvaluation)
return &ev
}
func (je *JSONEvaluator) GetState() (string, error) {
return je.store.String()
}
func (je *JSONEvaluator) SetState(payload sync.DataSync) (map[string]interface{}, bool, error) {
var newFlags Flags
err := je.configToFlags(payload.FlagData, &newFlags)
if err != nil {
return nil, false, err
}
switch payload.Type {
case sync.ALL:
n, resync := je.store.Merge(je.Logger, payload.Source, newFlags.Flags)
return n, resync, nil
case sync.ADD:
return je.store.Add(je.Logger, payload.Source, newFlags.Flags), false, nil
case sync.UPDATE:
return je.store.Update(je.Logger, payload.Source, newFlags.Flags), false, nil
case sync.DELETE:
return je.store.DeleteFlags(je.Logger, payload.Source, newFlags.Flags), true, nil
default:
return nil, false, fmt.Errorf("unsupported sync type: %d", payload.Type)
}
}
func resolve[T constraints](reqID string, key string, context *structpb.Struct,
variantEval func(string, string, *structpb.Struct) (string, string, error),
variants map[string]any) (
value T,
variant string,
reason string,
err error,
) {
variant, reason, err = variantEval(reqID, key, context)
if err != nil {
return value, variant, reason, err
}
var ok bool
value, ok = variants[variant].(T)
if !ok {
return value, variant, model.ErrorReason, errors.New(model.TypeMismatchErrorCode)
}
return value, variant, reason, nil
}
func (je *JSONEvaluator) ResolveAllValues(reqID string, context *structpb.Struct) []AnyValue {
values := []AnyValue{}
var value interface{}
var variant string
var reason string
var err error
allFlags := je.store.GetAll()
for flagKey, flag := range allFlags {
defaultValue := flag.Variants[flag.DefaultVariant]
switch defaultValue.(type) {
case bool:
value, variant, reason, err = resolve[bool](
reqID,
flagKey,
context,
je.evaluateVariant,
allFlags[flagKey].Variants,
)
case string:
value, variant, reason, err = resolve[string](
reqID,
flagKey,
context,
je.evaluateVariant,
allFlags[flagKey].Variants,
)
case float64:
value, variant, reason, err = resolve[float64](
reqID,
flagKey,
context,
je.evaluateVariant,
allFlags[flagKey].Variants,
)
case map[string]any:
value, variant, reason, err = resolve[map[string]any](
reqID,
flagKey,
context,
je.evaluateVariant,
allFlags[flagKey].Variants,
)
}
if err != nil {
je.Logger.ErrorWithID(reqID, fmt.Sprintf("bulk evaluation: key: %s returned error: %s", flagKey, err.Error()))
continue
}
values = append(values, NewAnyValue(value, variant, reason, flagKey))
}
return values
}
func (je *JSONEvaluator) ResolveBooleanValue(reqID string, flagKey string, context *structpb.Struct) (
value bool,
variant string,
reason string,
err error,
) {
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating boolean flag: %s", flagKey))
flag, _ := je.store.Get(flagKey)
return resolve[bool](reqID, flagKey, context, je.evaluateVariant, flag.Variants)
}
func (je *JSONEvaluator) ResolveStringValue(reqID string, flagKey string, context *structpb.Struct) (
value string,
variant string,
reason string,
err error,
) {
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating string flag: %s", flagKey))
flag, _ := je.store.Get(flagKey)
return resolve[string](reqID, flagKey, context, je.evaluateVariant, flag.Variants)
}
func (je *JSONEvaluator) ResolveFloatValue(reqID string, flagKey string, context *structpb.Struct) (
value float64,
variant string,
reason string,
err error,
) {
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating float flag: %s", flagKey))
flag, _ := je.store.Get(flagKey)
value, variant, reason, err = resolve[float64](
reqID, flagKey, context, je.evaluateVariant, flag.Variants)
return
}
func (je *JSONEvaluator) ResolveIntValue(reqID string, flagKey string, context *structpb.Struct) (
value int64,
variant string,
reason string,
err error,
) {
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating int flag: %s", flagKey))
flag, _ := je.store.Get(flagKey)
var val float64
val, variant, reason, err = resolve[float64](
reqID, flagKey, context, je.evaluateVariant, flag.Variants)
value = int64(val)
return
}
func (je *JSONEvaluator) ResolveObjectValue(reqID string, flagKey string, context *structpb.Struct) (
value map[string]any,
variant string,
reason string,
err error,
) {
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating object flag: %s", flagKey))
flag, _ := je.store.Get(flagKey)
return resolve[map[string]any](reqID, flagKey, context, je.evaluateVariant, flag.Variants)
}
// runs the rules (if defined) to determine the variant, otherwise falling through to the default
func (je *JSONEvaluator) evaluateVariant(
reqID string,
flagKey string,
context *structpb.Struct,
) (variant string, reason string, err error) {
flag, ok := je.store.Get(flagKey)
if !ok {
// flag not found
je.Logger.DebugWithID(reqID, fmt.Sprintf("requested flag could not be found: %s", flagKey))
return "", model.ErrorReason, errors.New(model.FlagNotFoundErrorCode)
}
if flag.State == Disabled {
je.Logger.DebugWithID(reqID, fmt.Sprintf("requested flag is disabled: %s", flagKey))
return "", model.ErrorReason, errors.New(model.FlagDisabledErrorCode)
}
// get the targeting logic, if any
targeting := flag.Targeting
if targeting != nil && string(targeting) != "{}" {
targetingBytes, err := targeting.MarshalJSON()
if err != nil {
je.Logger.ErrorWithID(reqID, fmt.Sprintf("Error parsing rules for flag: %s, %s", flagKey, err))
return "", model.ErrorReason, err
}
b, err := json.Marshal(context)
if err != nil {
je.Logger.ErrorWithID(reqID, fmt.Sprintf("error parsing context for flag: %s, %s, %v", flagKey, err, context))
return "", model.ErrorReason, errors.New(model.ErrorReason)
}
var result bytes.Buffer
// evaluate json-logic rules to determine the variant
err = jsonlogic.Apply(bytes.NewReader(targetingBytes), bytes.NewReader(b), &result)
if err != nil {
je.Logger.ErrorWithID(reqID, fmt.Sprintf("error applying rules: %s", err))
return "", model.ErrorReason, err
}
// strip whitespace and quotes from the variant
variant = strings.ReplaceAll(strings.TrimSpace(result.String()), "\"", "")
// if this is a valid variant, return it
if _, ok := flag.Variants[variant]; ok {
return variant, model.TargetingMatchReason, nil
}
je.Logger.DebugWithID(reqID, fmt.Sprintf("returning default variant for flagKey: %s, variant is not valid", flagKey))
reason = model.DefaultReason
} else {
reason = model.StaticReason
}
return flag.DefaultVariant, reason, nil
}
// configToFlags convert string configurations to flags and store them to pointer newFlags
func (je *JSONEvaluator) configToFlags(config string, newFlags *Flags) error {
schemaLoader := gojsonschema.NewStringLoader(schema.FlagdDefinitions)
flagStringLoader := gojsonschema.NewStringLoader(config)
result, err := gojsonschema.Validate(schemaLoader, flagStringLoader)
if err != nil {
return err
} else if !result.Valid() {
return fmt.Errorf("JSON schema validation failed: %s", buildErrorString(result.Errors()))
}
transposedConfig, err := je.transposeEvaluators(config)
if err != nil {
return fmt.Errorf("transposing evaluators: %w", err)
}
err = json.Unmarshal([]byte(transposedConfig), &newFlags)
if err != nil {
return fmt.Errorf("unmarshalling provided configurations: %w", err)
}
return validateDefaultVariants(newFlags)
}
// validateDefaultVariants returns an error if any of the default variants aren't valid
func validateDefaultVariants(flags *Flags) error {
for name, flag := range flags.Flags {
if _, ok := flag.Variants[flag.DefaultVariant]; !ok {
return fmt.Errorf(
"default variant: '%s' isn't a valid variant of flag: '%s'", flag.DefaultVariant, name,
)
}
}
return nil
}
func (je *JSONEvaluator) transposeEvaluators(state string) (string, error) {
var evaluators Evaluators
if err := json.Unmarshal([]byte(state), &evaluators); err != nil {
return "", fmt.Errorf("unmarshal: %w", err)
}
for evalName, evalRaw := range evaluators.Evaluators {
// replace any occurrences of "evaluator": "evalName"
regex, err := regexp.Compile(fmt.Sprintf(`"\$ref":(\s)*"%s"`, evalName))
if err != nil {
return "", fmt.Errorf("compile regex: %w", err)
}
marshalledEval, err := evalRaw.MarshalJSON()
if err != nil {
return "", fmt.Errorf("marshal evaluator: %w", err)
}
evalValue := string(marshalledEval)
if len(evalValue) < 3 {
return "", errors.New("evaluator object is empty")
}
evalValue = regBrace.ReplaceAllString(evalValue, "")
state = regex.ReplaceAllString(state, evalValue)
}
return state, nil
}
// buildErrorString efficiently converts json schema errors to a formatted string, usable for logging
func buildErrorString(errors []gojsonschema.ResultError) string {
var builder strings.Builder
for i, err := range errors {
builder.WriteByte(' ')
builder.WriteString(strconv.Itoa(i + 1))
builder.WriteByte(':')
builder.WriteString(err.String())
builder.WriteByte(' ')
}
return builder.String()
}

View File

@ -1,167 +0,0 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: pkg/eval/ievaluator.go
// Package evalmock is a generated GoMock package.
package evalmock
import (
reflect "reflect"
gomock "github.com/golang/mock/gomock"
eval "github.com/open-feature/flagd/core/pkg/eval"
sync "github.com/open-feature/flagd/core/pkg/sync"
structpb "google.golang.org/protobuf/types/known/structpb"
)
// MockIEvaluator is a mock of IEvaluator interface.
type MockIEvaluator struct {
ctrl *gomock.Controller
recorder *MockIEvaluatorMockRecorder
}
// MockIEvaluatorMockRecorder is the mock recorder for MockIEvaluator.
type MockIEvaluatorMockRecorder struct {
mock *MockIEvaluator
}
// NewMockIEvaluator creates a new mock instance.
func NewMockIEvaluator(ctrl *gomock.Controller) *MockIEvaluator {
mock := &MockIEvaluator{ctrl: ctrl}
mock.recorder = &MockIEvaluatorMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockIEvaluator) EXPECT() *MockIEvaluatorMockRecorder {
return m.recorder
}
// GetState mocks base method.
func (m *MockIEvaluator) GetState() (string, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "GetState")
ret0, _ := ret[0].(string)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetState indicates an expected call of GetState.
func (mr *MockIEvaluatorMockRecorder) GetState() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetState", reflect.TypeOf((*MockIEvaluator)(nil).GetState))
}
// ResolveAllValues mocks base method.
func (m *MockIEvaluator) ResolveAllValues(reqID string, context *structpb.Struct) []eval.AnyValue {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveAllValues", reqID, context)
ret0, _ := ret[0].([]eval.AnyValue)
return ret0
}
// ResolveAllValues indicates an expected call of ResolveAllValues.
func (mr *MockIEvaluatorMockRecorder) ResolveAllValues(reqID, context interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveAllValues", reflect.TypeOf((*MockIEvaluator)(nil).ResolveAllValues), reqID, context)
}
// ResolveBooleanValue mocks base method.
func (m *MockIEvaluator) ResolveBooleanValue(reqID, flagKey string, context *structpb.Struct) (bool, string, string, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveBooleanValue", reqID, flagKey, context)
ret0, _ := ret[0].(bool)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(error)
return ret0, ret1, ret2, ret3
}
// ResolveBooleanValue indicates an expected call of ResolveBooleanValue.
func (mr *MockIEvaluatorMockRecorder) ResolveBooleanValue(reqID, flagKey, context interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveBooleanValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveBooleanValue), reqID, flagKey, context)
}
// ResolveFloatValue mocks base method.
func (m *MockIEvaluator) ResolveFloatValue(reqID, flagKey string, context *structpb.Struct) (float64, string, string, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveFloatValue", reqID, flagKey, context)
ret0, _ := ret[0].(float64)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(error)
return ret0, ret1, ret2, ret3
}
// ResolveFloatValue indicates an expected call of ResolveFloatValue.
func (mr *MockIEvaluatorMockRecorder) ResolveFloatValue(reqID, flagKey, context interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveFloatValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveFloatValue), reqID, flagKey, context)
}
// ResolveIntValue mocks base method.
func (m *MockIEvaluator) ResolveIntValue(reqID, flagKey string, context *structpb.Struct) (int64, string, string, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveIntValue", reqID, flagKey, context)
ret0, _ := ret[0].(int64)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(error)
return ret0, ret1, ret2, ret3
}
// ResolveIntValue indicates an expected call of ResolveIntValue.
func (mr *MockIEvaluatorMockRecorder) ResolveIntValue(reqID, flagKey, context interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveIntValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveIntValue), reqID, flagKey, context)
}
// ResolveObjectValue mocks base method.
func (m *MockIEvaluator) ResolveObjectValue(reqID, flagKey string, context *structpb.Struct) (map[string]any, string, string, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveObjectValue", reqID, flagKey, context)
ret0, _ := ret[0].(map[string]any)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(error)
return ret0, ret1, ret2, ret3
}
// ResolveObjectValue indicates an expected call of ResolveObjectValue.
func (mr *MockIEvaluatorMockRecorder) ResolveObjectValue(reqID, flagKey, context interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveObjectValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveObjectValue), reqID, flagKey, context)
}
// ResolveStringValue mocks base method.
func (m *MockIEvaluator) ResolveStringValue(reqID, flagKey string, context *structpb.Struct) (string, string, string, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveStringValue", reqID, flagKey, context)
ret0, _ := ret[0].(string)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(error)
return ret0, ret1, ret2, ret3
}
// ResolveStringValue indicates an expected call of ResolveStringValue.
func (mr *MockIEvaluatorMockRecorder) ResolveStringValue(reqID, flagKey, context interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveStringValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveStringValue), reqID, flagKey, context)
}
// SetState mocks base method.
func (m *MockIEvaluator) SetState(payload sync.DataSync) (map[string]interface{}, bool, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SetState", payload)
ret0, _ := ret[0].(map[string]interface{})
ret1, _ := ret[1].(bool)
ret2, _ := ret[2].(error)
return ret0, ret1, ret2
}
// SetState indicates an expected call of SetState.
func (mr *MockIEvaluatorMockRecorder) SetState(payload interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetState", reflect.TypeOf((*MockIEvaluator)(nil).SetState), payload)
}

View File

@ -0,0 +1,148 @@
package evaluator
import (
"errors"
"fmt"
"math"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/twmb/murmur3"
)
const FractionEvaluationName = "fractional"
type Fractional struct {
Logger *logger.Logger
}
type fractionalEvaluationDistribution struct {
totalWeight int
weightedVariants []fractionalEvaluationVariant
}
type fractionalEvaluationVariant struct {
variant string
weight int
}
func (v fractionalEvaluationVariant) getPercentage(totalWeight int) float64 {
if totalWeight == 0 {
return 0
}
return 100 * float64(v.weight) / float64(totalWeight)
}
func NewFractional(logger *logger.Logger) *Fractional {
return &Fractional{Logger: logger}
}
func (fe *Fractional) Evaluate(values, data any) any {
valueToDistribute, feDistributions, err := parseFractionalEvaluationData(values, data)
if err != nil {
fe.Logger.Warn(fmt.Sprintf("parse fractional evaluation data: %v", err))
return nil
}
return distributeValue(valueToDistribute, feDistributions)
}
func parseFractionalEvaluationData(values, data any) (string, *fractionalEvaluationDistribution, error) {
valuesArray, ok := values.([]any)
if !ok {
return "", nil, errors.New("fractional evaluation data is not an array")
}
if len(valuesArray) < 2 {
return "", nil, errors.New("fractional evaluation data has length under 2")
}
dataMap, ok := data.(map[string]any)
if !ok {
return "", nil, errors.New("data isn't of type map[string]any")
}
// Ignore the error as we can't really do anything if the properties are
// somehow missing.
properties, _ := getFlagdProperties(dataMap)
bucketBy, ok := valuesArray[0].(string)
if ok {
valuesArray = valuesArray[1:]
} else {
// check for nil here as custom property could be nil/missing
if valuesArray[0] == nil {
valuesArray = valuesArray[1:]
}
targetingKey, ok := dataMap[targetingKeyKey].(string)
if !ok {
return "", nil, errors.New("bucketing value not supplied and no targetingKey in context")
}
bucketBy = fmt.Sprintf("%s%s", properties.FlagKey, targetingKey)
}
feDistributions, err := parseFractionalEvaluationDistributions(valuesArray)
if err != nil {
return "", nil, err
}
return bucketBy, feDistributions, nil
}
func parseFractionalEvaluationDistributions(values []any) (*fractionalEvaluationDistribution, error) {
feDistributions := &fractionalEvaluationDistribution{
totalWeight: 0,
weightedVariants: make([]fractionalEvaluationVariant, len(values)),
}
for i := 0; i < len(values); i++ {
distributionArray, ok := values[i].([]any)
if !ok {
return nil, errors.New("distribution elements aren't of type []any. " +
"please check your rule in flag definition")
}
if len(distributionArray) == 0 {
return nil, errors.New("distribution element needs at least one element")
}
variant, ok := distributionArray[0].(string)
if !ok {
return nil, errors.New("first element of distribution element isn't string")
}
weight := 1.0
if len(distributionArray) >= 2 {
distributionWeight, ok := distributionArray[1].(float64)
if ok {
// default the weight to 1 if not specified explicitly
weight = distributionWeight
}
}
feDistributions.totalWeight += int(weight)
feDistributions.weightedVariants[i] = fractionalEvaluationVariant{
variant: variant,
weight: int(weight),
}
}
return feDistributions, nil
}
// distributeValue calculate hash for given hash key and find the bucket distributions belongs to
func distributeValue(value string, feDistribution *fractionalEvaluationDistribution) string {
hashValue := int32(murmur3.StringSum32(value))
hashRatio := math.Abs(float64(hashValue)) / math.MaxInt32
bucket := hashRatio * 100 // in range [0, 100]
rangeEnd := float64(0)
for _, weightedVariant := range feDistribution.weightedVariants {
rangeEnd += weightedVariant.getPercentage(feDistribution.totalWeight)
if bucket < rangeEnd {
return weightedVariant.variant
}
}
return ""
}

View File

@ -0,0 +1,677 @@
package evaluator
import (
"context"
"testing"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/store"
"github.com/stretchr/testify/assert"
)
func TestFractionalEvaluation(t *testing.T) {
const source = "testSource"
var sources = []string{source}
ctx := context.Background()
commonFlags := Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"in": ["@faas.com", {
"var": ["email"]
}]
},
{
"fractional": [
{"cat": [{"var": "$flagd.flagKey"}, {"var": "email"}]},
[
"red",
25
],
[
"blue",
25
],
[
"green",
25
],
[
"yellow",
25
]
]
}, null
]
}`),
},
"customSeededHeaderColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"in": ["@faas.com", {
"var": ["email"]
}]
},
{
"fractional": [
{"cat": ["my-seed", {"var": "email"}]},
["red",25],
["blue",25],
["green",25],
["yellow",25]
]
}, null
]
}`),
},
},
}
tests := map[string]struct {
flags Flags
flagKey string
context map[string]any
expectedValue string
expectedVariant string
expectedReason string
expectedErrorCode string
}{
"rachel@faas.com": {
flags: commonFlags,
flagKey: "headerColor",
context: map[string]any{
"email": "rachel@faas.com",
},
expectedVariant: "yellow",
expectedValue: "#FFFF00",
expectedReason: model.TargetingMatchReason,
},
"monica@faas.com": {
flags: commonFlags,
flagKey: "headerColor",
context: map[string]any{
"email": "monica@faas.com",
},
expectedVariant: "blue",
expectedValue: "#0000FF",
expectedReason: model.TargetingMatchReason,
},
"joey@faas.com": {
flags: commonFlags,
flagKey: "headerColor",
context: map[string]any{
"email": "joey@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"ross@faas.com": {
flags: commonFlags,
flagKey: "headerColor",
context: map[string]any{
"email": "ross@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"rachel@faas.com with custom seed": {
flags: commonFlags,
flagKey: "customSeededHeaderColor",
context: map[string]any{
"email": "rachel@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"monica@faas.com with custom seed": {
flags: commonFlags,
flagKey: "customSeededHeaderColor",
context: map[string]any{
"email": "monica@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"joey@faas.com with custom seed": {
flags: commonFlags,
flagKey: "customSeededHeaderColor",
context: map[string]any{
"email": "joey@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"ross@faas.com with custom seed": {
flags: commonFlags,
flagKey: "customSeededHeaderColor",
context: map[string]any{
"email": "ross@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"ross@faas.com with different flag key": {
flags: Flags{
Flags: map[string]model.Flag{
"footerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"in": ["@faas.com", {
"var": ["email"]
}]
},
{
"fractional": [
{"var": "email"},
[
"red",
25
],
[
"blue",
25
],
[
"green",
25
],
[
"yellow",
25
]
]
}, null
]
}`),
},
},
},
flagKey: "footerColor",
context: map[string]any{
"email": "ross@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"non even split": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"in": ["@faas.com", {
"var": ["email"]
}]
},
{
"fractional": [
"email",
[
"red",
50
],
[
"blue",
25
],
[
"green",
25
]
]
}, null
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "test4@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"fallback to default variant if no email provided": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"fractional": [
{"var": "email"},
[
"red",
25
],
[
"blue",
25
],
[
"green",
25
],
[
"yellow",
25
]
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.DefaultReason,
},
"get variant for non-percentage weight values": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"fractional": [
{"var": "email"},
[
"red",
25
],
[
"blue",
25
]
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "foo@foo.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"get variant for non-specified weight values": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"fractional": [
{"var": "email"},
[
"red"
],
[
"blue"
]
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "foo@foo.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"default to targetingKey if no bucket key provided": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"fractional": [
[
"blue",
50
],
[
"green",
50
]
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"targetingKey": "foo@foo.com",
},
expectedVariant: "blue",
expectedValue: "#0000FF",
expectedReason: model.TargetingMatchReason,
},
"missing email - parser should ignore nil/missing custom variables and continue": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
},
Targeting: []byte(
`{
"fractional": [
{"var": "email"},
["red",50],
["blue",50]
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"targetingKey": "foo@foo.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
}
const reqID = "default"
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
log := logger.NewLogger(nil, false)
s, err := store.NewStore(log, sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
je := NewJSON(log, s)
je.store.Update(source, tt.flags.Flags, model.Metadata{})
value, variant, reason, _, err := resolve[string](ctx, reqID, tt.flagKey, tt.context, je.evaluateVariant)
if value != tt.expectedValue {
t.Errorf("expected value '%s', got '%s'", tt.expectedValue, value)
}
if variant != tt.expectedVariant {
t.Errorf("expected variant '%s', got '%s'", tt.expectedVariant, variant)
}
if reason != tt.expectedReason {
t.Errorf("expected reason '%s', got '%s'", tt.expectedReason, reason)
}
if err != nil {
errorCode := err.Error()
if errorCode != tt.expectedErrorCode {
t.Errorf("expected err '%v', got '%v'", tt.expectedErrorCode, err)
}
}
})
}
}
func BenchmarkFractionalEvaluation(b *testing.B) {
const source = "testSource"
var sources = []string{source}
ctx := context.Background()
flags := Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"in": ["@faas.com", {
"var": ["email"]
}]
},
{
"fractional": [
{"var": "email"},
[
"red",
25
],
[
"blue",
25
],
[
"green",
25
],
[
"yellow",
25
]
]
}, null
]
}`),
},
},
}
tests := map[string]struct {
flags Flags
flagKey string
context map[string]any
expectedValue string
expectedVariant string
expectedReason string
expectedErrorCode string
}{
"test_a@faas.com": {
flags: flags,
flagKey: "headerColor",
context: map[string]any{
"email": "test_a@faas.com",
},
expectedVariant: "blue",
expectedValue: "#0000FF",
expectedReason: model.TargetingMatchReason,
},
"test_b@faas.com": {
flags: flags,
flagKey: "headerColor",
context: map[string]any{
"email": "test_b@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"test_c@faas.com": {
flags: flags,
flagKey: "headerColor",
context: map[string]any{
"email": "test_c@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"test_d@faas.com": {
flags: flags,
flagKey: "headerColor",
context: map[string]any{
"email": "test_d@faas.com",
},
expectedVariant: "blue",
expectedValue: "#0000FF",
expectedReason: model.TargetingMatchReason,
},
}
reqID := "test"
for name, tt := range tests {
b.Run(name, func(b *testing.B) {
log := logger.NewLogger(nil, false)
s, err := store.NewStore(log, sources)
if err != nil {
b.Fatalf("NewStore failed: %v", err)
}
je := NewJSON(log, s)
je.store.Update(source, tt.flags.Flags, model.Metadata{})
for i := 0; i < b.N; i++ {
value, variant, reason, _, err := resolve[string](
ctx, reqID, tt.flagKey, tt.context, je.evaluateVariant)
if value != tt.expectedValue {
b.Errorf("expected value '%s', got '%s'", tt.expectedValue, value)
}
if variant != tt.expectedVariant {
b.Errorf("expected variant '%s', got '%s'", tt.expectedVariant, variant)
}
if reason != tt.expectedReason {
b.Errorf("expected reason '%s', got '%s'", tt.expectedReason, reason)
}
if err != nil {
errorCode := err.Error()
if errorCode != tt.expectedErrorCode {
b.Errorf("expected err '%v', got '%v'", tt.expectedErrorCode, err)
}
}
}
})
}
}
func Test_fractionalEvaluationVariant_getPercentage(t *testing.T) {
type fields struct {
variant string
weight int
}
type args struct {
totalWeight int
}
tests := []struct {
name string
fields fields
args args
want float64
}{
{
name: "get percentage",
fields: fields{
weight: 10,
},
args: args{
totalWeight: 20,
},
want: 50,
},
{
name: "total weight 0",
fields: fields{
weight: 10,
},
args: args{
totalWeight: 0,
},
want: 0,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
v := fractionalEvaluationVariant{
variant: tt.fields.variant,
weight: tt.fields.weight,
}
assert.Equalf(t, tt.want, v.getPercentage(tt.args.totalWeight), "getPercentage(%v)", tt.args.totalWeight)
})
}
}

View File

@ -0,0 +1,82 @@
package evaluator
import (
"context"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/sync"
)
type AnyValue struct {
Value interface{}
Variant string
Reason string
FlagKey string
Metadata model.Metadata
Error error
}
func NewAnyValue(
value interface{}, variant string, reason string, flagKey string, metadata model.Metadata,
err error,
) AnyValue {
return AnyValue{
Value: value,
Variant: variant,
Reason: reason,
FlagKey: flagKey,
Metadata: metadata,
Error: err,
}
}
/*
IEvaluator is an extension of IResolver, allowing storage updates and retrievals
*/
type IEvaluator interface {
GetState() (string, error)
SetState(payload sync.DataSync) (map[string]interface{}, bool, error)
IResolver
}
// IResolver focuses on resolving of the known flags
type IResolver interface {
ResolveBooleanValue(
ctx context.Context,
reqID string,
flagKey string,
context map[string]any) (value bool, variant string, reason string, metadata model.Metadata, err error)
ResolveStringValue(
ctx context.Context,
reqID string,
flagKey string,
context map[string]any) (
value string, variant string, reason string, metadata model.Metadata, err error)
ResolveIntValue(
ctx context.Context,
reqID string,
flagKey string,
context map[string]any) (
value int64, variant string, reason string, metadata model.Metadata, err error)
ResolveFloatValue(
ctx context.Context,
reqID string,
flagKey string,
context map[string]any) (
value float64, variant string, reason string, metadata model.Metadata, err error)
ResolveObjectValue(
ctx context.Context,
reqID string,
flagKey string,
context map[string]any) (
value map[string]any, variant string, reason string, metadata model.Metadata, err error)
ResolveAsAnyValue(
ctx context.Context,
reqID string,
flagKey string,
context map[string]any) AnyValue
ResolveAllValues(
ctx context.Context,
reqID string,
context map[string]any) (resolutions []AnyValue, metadata model.Metadata, err error)
}

View File

@ -0,0 +1,21 @@
package evaluator
import (
"fmt"
"testing"
"github.com/stretchr/testify/require"
)
func TestAnyValue(t *testing.T) {
obj := AnyValue{
Value: "val",
Variant: "variant",
Reason: "reason",
FlagKey: "key",
Metadata: map[string]interface{}{},
Error: fmt.Errorf("err"),
}
require.Equal(t, obj, NewAnyValue("val", "variant", "reason", "key", map[string]interface{}{}, fmt.Errorf("err")))
}

539
core/pkg/evaluator/json.go Normal file
View File

@ -0,0 +1,539 @@
package evaluator
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"regexp"
"strconv"
"strings"
"time"
"github.com/diegoholiveira/jsonlogic/v3"
schema "github.com/open-feature/flagd-schemas/json"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/store"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/xeipuuv/gojsonschema"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/codes"
"go.opentelemetry.io/otel/trace"
"go.uber.org/zap"
"golang.org/x/exp/maps"
)
const (
SelectorMetadataKey = "scope"
flagdPropertiesKey = "$flagd"
// targetingKeyKey is used to extract the targetingKey to bucket on in fractional
// evaluation if the user did not supply the optional bucketing property.
targetingKeyKey = "targetingKey"
Disabled = "DISABLED"
)
var regBrace *regexp.Regexp
func init() {
regBrace = regexp.MustCompile("^[^{]*{|}[^}]*$")
}
type constraints interface {
bool | string | map[string]any | float64 | interface{}
}
type JSONEvaluatorOption func(je *JSON)
type flagdProperties struct {
FlagKey string `json:"flagKey"`
Timestamp int64 `json:"timestamp"`
}
type variantEvaluator func(context.Context, string, string, map[string]any) (
variant string, variants map[string]interface{}, reason string, metadata map[string]interface{}, error error)
// Deprecated - this will be remove in the next release
func WithEvaluator(name string, evalFunc func(interface{}, interface{}) interface{}) JSONEvaluatorOption {
return func(_ *JSON) {
jsonlogic.AddOperator(name, evalFunc)
}
}
// JSON evaluator
type JSON struct {
store *store.Store
Logger *logger.Logger
jsonEvalTracer trace.Tracer
Resolver
}
func NewJSON(logger *logger.Logger, s *store.Store, opts ...JSONEvaluatorOption) *JSON {
logger = logger.WithFields(
zap.String("component", "evaluator"),
zap.String("evaluator", "json"),
)
tracer := otel.Tracer("jsonEvaluator")
ev := JSON{
store: s,
Logger: logger,
jsonEvalTracer: tracer,
Resolver: NewResolver(s, logger, tracer),
}
for _, o := range opts {
o(&ev)
}
return &ev
}
func (je *JSON) GetState() (string, error) {
s, err := je.store.String()
if err != nil {
return "", fmt.Errorf("unable to fetch evaluator state: %w", err)
}
return s, nil
}
func (je *JSON) SetState(payload sync.DataSync) (map[string]interface{}, bool, error) {
_, span := je.jsonEvalTracer.Start(
context.Background(),
"flagSync",
trace.WithAttributes(attribute.String("feature_flag.source", payload.Source)))
defer span.End()
var definition Definition
err := configToFlagDefinition(je.Logger, payload.FlagData, &definition)
if err != nil {
span.SetStatus(codes.Error, "flagSync error")
span.RecordError(err)
return nil, false, err
}
var events map[string]interface{}
var reSync bool
events, reSync = je.store.Update(payload.Source, definition.Flags, definition.Metadata)
// Number of events correlates to the number of flags changed through this sync, record it
span.SetAttributes(attribute.Int("feature_flag.change_count", len(events)))
return events, reSync, nil
}
// Resolver implementation for flagd flags. This resolver should be kept reusable, hence must interact with interfaces.
type Resolver struct {
store store.IStore
Logger *logger.Logger
tracer trace.Tracer
}
func NewResolver(store store.IStore, logger *logger.Logger, jsonEvalTracer trace.Tracer) Resolver {
// register supported json logic custom operator implementations
jsonlogic.AddOperator(FractionEvaluationName, NewFractional(logger).Evaluate)
jsonlogic.AddOperator(StartsWithEvaluationName, NewStringComparisonEvaluator(logger).StartsWithEvaluation)
jsonlogic.AddOperator(EndsWithEvaluationName, NewStringComparisonEvaluator(logger).EndsWithEvaluation)
jsonlogic.AddOperator(SemVerEvaluationName, NewSemVerComparison(logger).SemVerEvaluation)
return Resolver{store: store, Logger: logger, tracer: jsonEvalTracer}
}
func (je *Resolver) ResolveAllValues(ctx context.Context, reqID string, context map[string]any) ([]AnyValue,
model.Metadata, error,
) {
_, span := je.tracer.Start(ctx, "resolveAll")
defer span.End()
var selector store.Selector
s := ctx.Value(store.SelectorContextKey{})
if s != nil {
selector = s.(store.Selector)
}
allFlags, flagSetMetadata, err := je.store.GetAll(ctx, &selector)
if err != nil {
return nil, flagSetMetadata, fmt.Errorf("error retreiving flags from the store: %w", err)
}
values := []AnyValue{}
var value interface{}
var variant string
var reason string
var metadata map[string]interface{}
for flagKey, flag := range allFlags {
if flag.State == Disabled {
// ignore evaluation of disabled flag
continue
}
defaultValue := flag.Variants[flag.DefaultVariant]
switch defaultValue.(type) {
case bool:
value, variant, reason, metadata, err = resolve[bool](ctx, reqID, flagKey, context, je.evaluateVariant)
case string:
value, variant, reason, metadata, err = resolve[string](ctx, reqID, flagKey, context, je.evaluateVariant)
case float64:
value, variant, reason, metadata, err = resolve[float64](ctx, reqID, flagKey, context, je.evaluateVariant)
case map[string]any:
value, variant, reason, metadata, err = resolve[map[string]any](ctx, reqID, flagKey, context, je.evaluateVariant)
}
if err != nil {
je.Logger.ErrorWithID(reqID, fmt.Sprintf("bulk evaluation: key: %s returned error: %s", flagKey, err.Error()))
}
values = append(values, NewAnyValue(value, variant, reason, flagKey, metadata, err))
}
return values, flagSetMetadata, nil
}
func (je *Resolver) ResolveBooleanValue(
ctx context.Context, reqID string, flagKey string, context map[string]any) (
value bool,
variant string,
reason string,
metadata map[string]interface{},
err error,
) {
_, span := je.tracer.Start(ctx, "resolveBoolean")
defer span.End()
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating boolean flag: %s", flagKey))
return resolve[bool](ctx, reqID, flagKey, context, je.evaluateVariant)
}
func (je *Resolver) ResolveStringValue(
ctx context.Context, reqID string, flagKey string, context map[string]any) (
value string,
variant string,
reason string,
metadata map[string]interface{},
err error,
) {
_, span := je.tracer.Start(ctx, "resolveString")
defer span.End()
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating string flag: %s", flagKey))
return resolve[string](ctx, reqID, flagKey, context, je.evaluateVariant)
}
func (je *Resolver) ResolveFloatValue(
ctx context.Context, reqID string, flagKey string, context map[string]any) (
value float64,
variant string,
reason string,
metadata map[string]interface{},
err error,
) {
_, span := je.tracer.Start(ctx, "resolveFloat")
defer span.End()
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating float flag: %s", flagKey))
value, variant, reason, metadata, err = resolve[float64](ctx, reqID, flagKey, context, je.evaluateVariant)
return
}
func (je *Resolver) ResolveIntValue(ctx context.Context, reqID string, flagKey string, context map[string]any) (
value int64,
variant string,
reason string,
metadata map[string]interface{},
err error,
) {
_, span := je.tracer.Start(ctx, "resolveInt")
defer span.End()
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating int flag: %s", flagKey))
var val float64
val, variant, reason, metadata, err = resolve[float64](ctx, reqID, flagKey, context, je.evaluateVariant)
value = int64(val)
return
}
func (je *Resolver) ResolveObjectValue(
ctx context.Context, reqID string, flagKey string, context map[string]any) (
value map[string]any,
variant string,
reason string,
metadata map[string]interface{},
err error,
) {
_, span := je.tracer.Start(ctx, "resolveObject")
defer span.End()
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating object flag: %s", flagKey))
return resolve[map[string]any](ctx, reqID, flagKey, context, je.evaluateVariant)
}
func (je *Resolver) ResolveAsAnyValue(
ctx context.Context,
reqID string,
flagKey string,
context map[string]any,
) AnyValue {
_, span := je.tracer.Start(ctx, "resolveAnyValue")
defer span.End()
je.Logger.DebugWithID(reqID, fmt.Sprintf("evaluating flag `%s` as a generic flag", flagKey))
value, variant, reason, meta, err := resolve[interface{}](ctx, reqID, flagKey, context, je.evaluateVariant)
return NewAnyValue(value, variant, reason, flagKey, meta, err)
}
// resolve is a helper for generic flag resolving
func resolve[T constraints](ctx context.Context, reqID string, key string, context map[string]any,
variantEval variantEvaluator) (value T, variant string, reason string, metadata map[string]interface{}, err error,
) {
variant, variants, reason, metadata, err := variantEval(ctx, reqID, key, context)
if err != nil {
return value, variant, reason, metadata, err
}
var ok bool
value, ok = variants[variant].(T)
if !ok {
return value, variant, model.ErrorReason, metadata, errors.New(model.TypeMismatchErrorCode)
}
return value, variant, reason, metadata, nil
}
// nolint: funlen
func (je *Resolver) evaluateVariant(ctx context.Context, reqID string, flagKey string, evalCtx map[string]any) (
variant string, variants map[string]interface{}, reason string, metadata map[string]interface{}, err error,
) {
var selector store.Selector
s := ctx.Value(store.SelectorContextKey{})
if s != nil {
selector = s.(store.Selector)
}
flag, metadata, err := je.store.Get(ctx, flagKey, &selector)
if err != nil {
// flag not found
je.Logger.DebugWithID(reqID, fmt.Sprintf("requested flag could not be found: %s", flagKey))
return "", map[string]interface{}{}, model.ErrorReason, metadata, errors.New(model.FlagNotFoundErrorCode)
}
for key, value := range flag.Metadata {
// If value is not nil or empty, copy to metadata
if value != nil {
metadata[key] = value
}
}
if flag.State == Disabled {
je.Logger.DebugWithID(reqID, fmt.Sprintf("requested flag is disabled: %s", flagKey))
return "", flag.Variants, model.ErrorReason, metadata, errors.New(model.FlagDisabledErrorCode)
}
// get the targeting logic, if any
targeting := flag.Targeting
if targeting != nil && string(targeting) != "{}" {
targetingBytes, err := targeting.MarshalJSON()
if err != nil {
je.Logger.ErrorWithID(reqID, fmt.Sprintf("Error parsing rules for flag: %s, %s", flagKey, err))
return "", flag.Variants, model.ErrorReason, metadata, errors.New(model.ParseErrorCode)
}
evalCtx = setFlagdProperties(je.Logger, evalCtx, flagdProperties{
FlagKey: flagKey,
Timestamp: time.Now().Unix(),
})
b, err := json.Marshal(evalCtx)
if err != nil {
je.Logger.ErrorWithID(reqID, fmt.Sprintf("error parsing context for flag: %s, %s, %v", flagKey, err, evalCtx))
return "", flag.Variants, model.ErrorReason, metadata, errors.New(model.ErrorReason)
}
var result bytes.Buffer
// evaluate JsonLogic rules to determine the variant
err = jsonlogic.Apply(bytes.NewReader(targetingBytes), bytes.NewReader(b), &result)
if err != nil {
je.Logger.ErrorWithID(reqID, fmt.Sprintf("error applying targeting rules: %s", err))
return "", flag.Variants, model.ErrorReason, metadata, errors.New(model.ParseErrorCode)
}
// check if string is "null" before we strip quotes, so we can differentiate between JSON null and "null"
trimmed := strings.TrimSpace(result.String())
if trimmed == "null" {
if flag.DefaultVariant == "" {
return "", flag.Variants, model.ErrorReason, metadata, errors.New(model.FlagNotFoundErrorCode)
}
return flag.DefaultVariant, flag.Variants, model.DefaultReason, metadata, nil
}
// strip whitespace and quotes from the variant
variant = strings.ReplaceAll(trimmed, "\"", "")
// if this is a valid variant, return it
if _, ok := flag.Variants[variant]; ok {
return variant, flag.Variants, model.TargetingMatchReason, metadata, nil
}
je.Logger.ErrorWithID(reqID,
fmt.Sprintf("invalid or missing variant: %s for flagKey: %s, variant is not valid", variant, flagKey))
return "", flag.Variants, model.ErrorReason, metadata, errors.New(model.GeneralErrorCode)
}
if flag.DefaultVariant == "" {
return "", flag.Variants, model.ErrorReason, metadata, errors.New(model.FlagNotFoundErrorCode)
}
return flag.DefaultVariant, flag.Variants, model.StaticReason, metadata, nil
}
func setFlagdProperties(
log *logger.Logger,
context map[string]any,
properties flagdProperties,
) map[string]any {
if context == nil {
context = map[string]any{}
}
newContext := maps.Clone(context)
if _, ok := newContext[flagdPropertiesKey]; ok {
log.Warn("overwriting $flagd properties in the context")
}
newContext[flagdPropertiesKey] = properties
return newContext
}
func getFlagdProperties(context map[string]any) (flagdProperties, bool) {
properties, ok := context[flagdPropertiesKey]
if !ok {
return flagdProperties{}, false
}
b, err := json.Marshal(properties)
if err != nil {
return flagdProperties{}, false
}
var p flagdProperties
if err := json.Unmarshal(b, &p); err != nil {
return flagdProperties{}, false
}
return p, true
}
func loadAndCompileSchema(log *logger.Logger) *gojsonschema.Schema {
schemaLoader := gojsonschema.NewSchemaLoader()
// compile dependency schema
targetingSchemaLoader := gojsonschema.NewStringLoader(schema.TargetingSchema)
if err := schemaLoader.AddSchemas(targetingSchemaLoader); err != nil {
log.Warn(fmt.Sprintf("error adding Targeting schema: %s", err))
}
// compile root schema
flagdDefinitionsLoader := gojsonschema.NewStringLoader(schema.FlagSchema)
compiledSchema, err := schemaLoader.Compile(flagdDefinitionsLoader)
if err != nil {
log.Warn(fmt.Sprintf("error compiling FlagdDefinitions schema: %s", err))
}
return compiledSchema
}
// configToFlagDefinition convert string configurations to flags and store them to pointer newFlags
func configToFlagDefinition(log *logger.Logger, config string, definition *Definition) error {
compiledSchema := loadAndCompileSchema(log)
flagStringLoader := gojsonschema.NewStringLoader(config)
result, err := compiledSchema.Validate(flagStringLoader)
if err != nil {
log.Logger.Warn(fmt.Sprintf("failed to execute JSON schema validation: %s", err))
} else if !result.Valid() {
log.Logger.Warn(fmt.Sprintf(
"flag definition does not conform to the schema; validation errors: %s", buildErrorString(result.Errors()),
))
}
transposedConfig, err := transposeEvaluators(config)
if err != nil {
return fmt.Errorf("transposing evaluators: %w", err)
}
err = json.Unmarshal([]byte(transposedConfig), &definition)
if err != nil {
return fmt.Errorf("unmarshalling provided configurations: %w", err)
}
return validateDefaultVariants(definition)
}
// validateDefaultVariants returns an error if any of the default variants aren't valid
func validateDefaultVariants(flags *Definition) error {
for name, flag := range flags.Flags {
// Default Variant is not provided in the config
if flag.DefaultVariant == "" {
continue
}
if _, ok := flag.Variants[flag.DefaultVariant]; !ok {
return fmt.Errorf(
"default variant: '%s' isn't a valid variant of flag: '%s'", flag.DefaultVariant, name,
)
}
}
return nil
}
func transposeEvaluators(state string) (string, error) {
var evaluators Evaluators
if err := json.Unmarshal([]byte(state), &evaluators); err != nil {
return "", fmt.Errorf("unmarshal: %w", err)
}
for evalName, evalRaw := range evaluators.Evaluators {
// replace any occurrences of "evaluator": "evalName"
regex, err := regexp.Compile(fmt.Sprintf(`"\$ref":(\s)*"%s"`, evalName))
if err != nil {
return "", fmt.Errorf("compile regex: %w", err)
}
marshalledEval, err := evalRaw.MarshalJSON()
if err != nil {
return "", fmt.Errorf("marshal evaluator: %w", err)
}
evalValue := string(marshalledEval)
if len(evalValue) < 3 {
return "", errors.New("evaluator object is empty")
}
evalValue = regBrace.ReplaceAllString(evalValue, "")
state = regex.ReplaceAllString(state, evalValue)
}
return state, nil
}
// buildErrorString efficiently converts json schema errors to a formatted string, usable for logging
func buildErrorString(errors []gojsonschema.ResultError) string {
var builder strings.Builder
for i, err := range errors {
builder.WriteByte(' ')
builder.WriteString(strconv.Itoa(i + 1))
builder.WriteByte(':')
builder.WriteString(err.String())
builder.WriteByte(' ')
}
return builder.String()
}

View File

@ -1,4 +1,4 @@
package eval
package evaluator
import (
"encoding/json"
@ -10,6 +10,11 @@ type Evaluators struct {
Evaluators map[string]json.RawMessage `json:"$evaluators"`
}
type Definition struct {
Flags map[string]model.Flag `json:"flags"`
Metadata map[string]interface{} `json:"metadata"`
}
type Flags struct {
Flags map[string]model.Flag `json:"flags"`
}

View File

@ -0,0 +1,339 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: pkg/evaluator/ievaluator.go
//
// Generated by this command:
//
// mockgen -source=pkg/evaluator/ievaluator.go -destination=pkg/evaluator/mock/ievaluator.go -package=evalmock
//
// Package evalmock is a generated GoMock package.
package evalmock
import (
context "context"
reflect "reflect"
evaluator "github.com/open-feature/flagd/core/pkg/evaluator"
model "github.com/open-feature/flagd/core/pkg/model"
sync "github.com/open-feature/flagd/core/pkg/sync"
gomock "go.uber.org/mock/gomock"
)
// MockIEvaluator is a mock of IEvaluator interface.
type MockIEvaluator struct {
ctrl *gomock.Controller
recorder *MockIEvaluatorMockRecorder
isgomock struct{}
}
// MockIEvaluatorMockRecorder is the mock recorder for MockIEvaluator.
type MockIEvaluatorMockRecorder struct {
mock *MockIEvaluator
}
// NewMockIEvaluator creates a new mock instance.
func NewMockIEvaluator(ctrl *gomock.Controller) *MockIEvaluator {
mock := &MockIEvaluator{ctrl: ctrl}
mock.recorder = &MockIEvaluatorMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockIEvaluator) EXPECT() *MockIEvaluatorMockRecorder {
return m.recorder
}
// GetState mocks base method.
func (m *MockIEvaluator) GetState() (string, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "GetState")
ret0, _ := ret[0].(string)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetState indicates an expected call of GetState.
func (mr *MockIEvaluatorMockRecorder) GetState() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetState", reflect.TypeOf((*MockIEvaluator)(nil).GetState))
}
// ResolveAllValues mocks base method.
func (m *MockIEvaluator) ResolveAllValues(ctx context.Context, reqID string, context map[string]any) ([]evaluator.AnyValue, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveAllValues", ctx, reqID, context)
ret0, _ := ret[0].([]evaluator.AnyValue)
ret1, _ := ret[1].(model.Metadata)
ret2, _ := ret[2].(error)
return ret0, ret1, ret2
}
// ResolveAllValues indicates an expected call of ResolveAllValues.
func (mr *MockIEvaluatorMockRecorder) ResolveAllValues(ctx, reqID, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveAllValues", reflect.TypeOf((*MockIEvaluator)(nil).ResolveAllValues), ctx, reqID, context)
}
// ResolveAsAnyValue mocks base method.
func (m *MockIEvaluator) ResolveAsAnyValue(ctx context.Context, reqID, flagKey string, context map[string]any) evaluator.AnyValue {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveAsAnyValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(evaluator.AnyValue)
return ret0
}
// ResolveAsAnyValue indicates an expected call of ResolveAsAnyValue.
func (mr *MockIEvaluatorMockRecorder) ResolveAsAnyValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveAsAnyValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveAsAnyValue), ctx, reqID, flagKey, context)
}
// ResolveBooleanValue mocks base method.
func (m *MockIEvaluator) ResolveBooleanValue(ctx context.Context, reqID, flagKey string, context map[string]any) (bool, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveBooleanValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(bool)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveBooleanValue indicates an expected call of ResolveBooleanValue.
func (mr *MockIEvaluatorMockRecorder) ResolveBooleanValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveBooleanValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveBooleanValue), ctx, reqID, flagKey, context)
}
// ResolveFloatValue mocks base method.
func (m *MockIEvaluator) ResolveFloatValue(ctx context.Context, reqID, flagKey string, context map[string]any) (float64, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveFloatValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(float64)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveFloatValue indicates an expected call of ResolveFloatValue.
func (mr *MockIEvaluatorMockRecorder) ResolveFloatValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveFloatValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveFloatValue), ctx, reqID, flagKey, context)
}
// ResolveIntValue mocks base method.
func (m *MockIEvaluator) ResolveIntValue(ctx context.Context, reqID, flagKey string, context map[string]any) (int64, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveIntValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(int64)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveIntValue indicates an expected call of ResolveIntValue.
func (mr *MockIEvaluatorMockRecorder) ResolveIntValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveIntValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveIntValue), ctx, reqID, flagKey, context)
}
// ResolveObjectValue mocks base method.
func (m *MockIEvaluator) ResolveObjectValue(ctx context.Context, reqID, flagKey string, context map[string]any) (map[string]any, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveObjectValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(map[string]any)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveObjectValue indicates an expected call of ResolveObjectValue.
func (mr *MockIEvaluatorMockRecorder) ResolveObjectValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveObjectValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveObjectValue), ctx, reqID, flagKey, context)
}
// ResolveStringValue mocks base method.
func (m *MockIEvaluator) ResolveStringValue(ctx context.Context, reqID, flagKey string, context map[string]any) (string, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveStringValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(string)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveStringValue indicates an expected call of ResolveStringValue.
func (mr *MockIEvaluatorMockRecorder) ResolveStringValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveStringValue", reflect.TypeOf((*MockIEvaluator)(nil).ResolveStringValue), ctx, reqID, flagKey, context)
}
// SetState mocks base method.
func (m *MockIEvaluator) SetState(payload sync.DataSync) (model.Metadata, bool, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SetState", payload)
ret0, _ := ret[0].(model.Metadata)
ret1, _ := ret[1].(bool)
ret2, _ := ret[2].(error)
return ret0, ret1, ret2
}
// SetState indicates an expected call of SetState.
func (mr *MockIEvaluatorMockRecorder) SetState(payload any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetState", reflect.TypeOf((*MockIEvaluator)(nil).SetState), payload)
}
// MockIResolver is a mock of IResolver interface.
type MockIResolver struct {
ctrl *gomock.Controller
recorder *MockIResolverMockRecorder
isgomock struct{}
}
// MockIResolverMockRecorder is the mock recorder for MockIResolver.
type MockIResolverMockRecorder struct {
mock *MockIResolver
}
// NewMockIResolver creates a new mock instance.
func NewMockIResolver(ctrl *gomock.Controller) *MockIResolver {
mock := &MockIResolver{ctrl: ctrl}
mock.recorder = &MockIResolverMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockIResolver) EXPECT() *MockIResolverMockRecorder {
return m.recorder
}
// ResolveAllValues mocks base method.
func (m *MockIResolver) ResolveAllValues(ctx context.Context, reqID string, context map[string]any) ([]evaluator.AnyValue, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveAllValues", ctx, reqID, context)
ret0, _ := ret[0].([]evaluator.AnyValue)
ret1, _ := ret[1].(model.Metadata)
ret2, _ := ret[2].(error)
return ret0, ret1, ret2
}
// ResolveAllValues indicates an expected call of ResolveAllValues.
func (mr *MockIResolverMockRecorder) ResolveAllValues(ctx, reqID, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveAllValues", reflect.TypeOf((*MockIResolver)(nil).ResolveAllValues), ctx, reqID, context)
}
// ResolveAsAnyValue mocks base method.
func (m *MockIResolver) ResolveAsAnyValue(ctx context.Context, reqID, flagKey string, context map[string]any) evaluator.AnyValue {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveAsAnyValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(evaluator.AnyValue)
return ret0
}
// ResolveAsAnyValue indicates an expected call of ResolveAsAnyValue.
func (mr *MockIResolverMockRecorder) ResolveAsAnyValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveAsAnyValue", reflect.TypeOf((*MockIResolver)(nil).ResolveAsAnyValue), ctx, reqID, flagKey, context)
}
// ResolveBooleanValue mocks base method.
func (m *MockIResolver) ResolveBooleanValue(ctx context.Context, reqID, flagKey string, context map[string]any) (bool, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveBooleanValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(bool)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveBooleanValue indicates an expected call of ResolveBooleanValue.
func (mr *MockIResolverMockRecorder) ResolveBooleanValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveBooleanValue", reflect.TypeOf((*MockIResolver)(nil).ResolveBooleanValue), ctx, reqID, flagKey, context)
}
// ResolveFloatValue mocks base method.
func (m *MockIResolver) ResolveFloatValue(ctx context.Context, reqID, flagKey string, context map[string]any) (float64, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveFloatValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(float64)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveFloatValue indicates an expected call of ResolveFloatValue.
func (mr *MockIResolverMockRecorder) ResolveFloatValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveFloatValue", reflect.TypeOf((*MockIResolver)(nil).ResolveFloatValue), ctx, reqID, flagKey, context)
}
// ResolveIntValue mocks base method.
func (m *MockIResolver) ResolveIntValue(ctx context.Context, reqID, flagKey string, context map[string]any) (int64, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveIntValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(int64)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveIntValue indicates an expected call of ResolveIntValue.
func (mr *MockIResolverMockRecorder) ResolveIntValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveIntValue", reflect.TypeOf((*MockIResolver)(nil).ResolveIntValue), ctx, reqID, flagKey, context)
}
// ResolveObjectValue mocks base method.
func (m *MockIResolver) ResolveObjectValue(ctx context.Context, reqID, flagKey string, context map[string]any) (map[string]any, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveObjectValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(map[string]any)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveObjectValue indicates an expected call of ResolveObjectValue.
func (mr *MockIResolverMockRecorder) ResolveObjectValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveObjectValue", reflect.TypeOf((*MockIResolver)(nil).ResolveObjectValue), ctx, reqID, flagKey, context)
}
// ResolveStringValue mocks base method.
func (m *MockIResolver) ResolveStringValue(ctx context.Context, reqID, flagKey string, context map[string]any) (string, string, string, model.Metadata, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ResolveStringValue", ctx, reqID, flagKey, context)
ret0, _ := ret[0].(string)
ret1, _ := ret[1].(string)
ret2, _ := ret[2].(string)
ret3, _ := ret[3].(model.Metadata)
ret4, _ := ret[4].(error)
return ret0, ret1, ret2, ret3, ret4
}
// ResolveStringValue indicates an expected call of ResolveStringValue.
func (mr *MockIResolverMockRecorder) ResolveStringValue(ctx, reqID, flagKey, context any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResolveStringValue", reflect.TypeOf((*MockIResolver)(nil).ResolveStringValue), ctx, reqID, flagKey, context)
}

View File

@ -0,0 +1,156 @@
package evaluator
import (
"errors"
"fmt"
"strings"
"github.com/open-feature/flagd/core/pkg/logger"
"golang.org/x/mod/semver"
)
const SemVerEvaluationName = "sem_ver"
type SemVerOperator string
const (
Equals SemVerOperator = "="
NotEqual SemVerOperator = "!="
Less SemVerOperator = "<"
LessOrEqual SemVerOperator = "<="
GreaterOrEqual SemVerOperator = ">="
Greater SemVerOperator = ">"
MatchMajor SemVerOperator = "^"
MatchMinor SemVerOperator = "~"
)
func (svo SemVerOperator) compare(v1, v2 string) (bool, error) {
cmpRes := semver.Compare(v1, v2)
switch svo {
case Less:
return cmpRes == -1, nil
case Equals:
return cmpRes == 0, nil
case NotEqual:
return cmpRes != 0, nil
case LessOrEqual:
return cmpRes == -1 || cmpRes == 0, nil
case GreaterOrEqual:
return cmpRes == +1 || cmpRes == 0, nil
case Greater:
return cmpRes == +1, nil
case MatchMinor:
v1MajorMinor := semver.MajorMinor(v1)
v2MajorMinor := semver.MajorMinor(v2)
return semver.Compare(v1MajorMinor, v2MajorMinor) == 0, nil
case MatchMajor:
v1Major := semver.Major(v1)
v2Major := semver.Major(v2)
return semver.Compare(v1Major, v2Major) == 0, nil
default:
return false, errors.New("invalid operator")
}
}
type SemVerComparison struct {
Logger *logger.Logger
}
func NewSemVerComparison(log *logger.Logger) *SemVerComparison {
return &SemVerComparison{Logger: log}
}
// SemVerEvaluation checks if the given property matches a semantic versioning condition.
// It returns 'true', if the value of the given property meets the condition, 'false' if not.
// As an example, it can be used in the following way inside an 'if' evaluation:
//
// {
// "if": [
// {
// "sem_ver": [{"var": "version"}, ">=", "1.0.0"]
// },
// "red", null
// ]
// }
//
// This rule can be applied to the following data object, where the evaluation will resolve to 'true':
//
// { "version": "2.0.0" }
//
// Note that the 'sem_ver' evaluation rule must contain exactly three items:
// 1. Target property: this needs which both resolve to a semantic versioning string
// 2. Operator: One of the following: '=', '!=', '>', '<', '>=', '<=', '~', '^'
// 3. Target value: this needs which both resolve to a semantic versioning string
func (je *SemVerComparison) SemVerEvaluation(values, _ interface{}) interface{} {
actualVersion, targetVersion, operator, err := parseSemverEvaluationData(values)
if err != nil {
je.Logger.Error(fmt.Sprintf("parse sem_ver evaluation data: %v", err))
return false
}
res, err := operator.compare(actualVersion, targetVersion)
if err != nil {
je.Logger.Error(fmt.Sprintf("sem_ver evaluation: %v", err))
return false
}
return res
}
func parseSemverEvaluationData(values interface{}) (string, string, SemVerOperator, error) {
parsed, ok := values.([]interface{})
if !ok {
return "", "", "", errors.New("sem_ver evaluation is not an array")
}
if len(parsed) != 3 {
return "", "", "", errors.New("sem_ver evaluation must contain a value, an operator, and a comparison target")
}
actualVersion, err := parseSemanticVersion(parsed[0])
if err != nil {
return "", "", "", fmt.Errorf("sem_ver evaluation: could not parse target property value: %w", err)
}
operator, err := parseOperator(parsed[1])
if err != nil {
return "", "", "", fmt.Errorf("sem_ver evaluation: could not parse operator: %w", err)
}
targetVersion, err := parseSemanticVersion(parsed[2])
if err != nil {
return "", "", "", fmt.Errorf("sem_ver evaluation: could not parse target value: %w", err)
}
return actualVersion, targetVersion, operator, nil
}
func ensureString(v interface{}) string {
if str, ok := v.(string); ok {
// It's already a string
return str
}
// Convert to string if not already
return fmt.Sprintf("%v", v)
}
func parseSemanticVersion(v interface{}) (string, error) {
version := ensureString(v)
// version strings are only valid in the semver package if they start with a 'v'
// if it's not present in the given value, we prepend it
if !strings.HasPrefix(version, "v") {
version = "v" + version
}
if !semver.IsValid(version) {
return "", fmt.Errorf("'%v' is not a valid semantic version string", version)
}
return version, nil
}
func parseOperator(o interface{}) (SemVerOperator, error) {
operatorString, ok := o.(string)
if !ok {
return "", fmt.Errorf("could not parse operator '%v'", o)
}
return SemVerOperator(operatorString), nil
}

View File

@ -0,0 +1,953 @@
package evaluator
import (
"context"
"errors"
"testing"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/store"
"github.com/stretchr/testify/require"
)
func TestSemVerOperator_Compare(t *testing.T) {
type args struct {
v1 string
v2 string
}
tests := []struct {
name string
svo SemVerOperator
args args
want bool
wantErr bool
}{
{
name: "invalid version",
svo: Greater,
args: args{
v1: "invalid",
v2: "v1.0.0",
},
want: false,
wantErr: true,
},
{
name: "preview version vs non preview version",
svo: Greater,
args: args{
v1: "v1.0.0-preview.1.2",
v2: "v1.0.0",
},
want: false,
wantErr: false,
},
{
name: "preview version vs preview version",
svo: Greater,
args: args{
v1: "v1.0.0-preview.1.3",
v2: "v1.0.0-preview.1.2",
},
want: true,
wantErr: false,
},
{
name: "no prefixed v left greater",
svo: Greater,
args: args{
v1: "0.0.1",
v2: "v0.0.2",
},
want: false,
wantErr: false,
},
{
name: "no prefixed v right greater",
svo: Greater,
args: args{
v1: "v0.0.1",
v2: "0.0.2",
},
want: false,
wantErr: false,
},
{
name: "no prefixed v right equals",
svo: Equals,
args: args{
v1: "v0.0.1",
v2: "0.0.1",
},
want: true,
wantErr: false,
},
{
name: "no prefixed v both",
svo: Greater,
args: args{
v1: "0.0.1",
v2: "0.0.2",
},
want: false,
wantErr: false,
},
{
name: "invalid operator",
svo: "",
args: args{
v1: "v0.0.1",
v2: "v0.0.2",
},
want: false,
wantErr: true,
},
{
name: "less with large number",
svo: Less,
args: args{
v1: "v1234.0.1",
v2: "v1235.0.2",
},
want: true,
wantErr: false,
},
{
name: "less",
svo: Less,
args: args{
v1: "v0.0.1",
v2: "v0.0.2",
},
want: true,
wantErr: false,
},
{
name: "no minor version",
svo: Less,
args: args{
v1: "v1.0",
v2: "v1.2",
},
want: true,
wantErr: false,
},
{
name: "not less",
svo: Less,
args: args{
v1: "v0.0.1",
v2: "v0.0.1",
},
want: false,
wantErr: false,
},
{
name: "less or equal",
svo: LessOrEqual,
args: args{
v1: "v0.0.1",
v2: "v0.0.2",
},
want: true,
wantErr: false,
},
{
name: "less or equal 2",
svo: LessOrEqual,
args: args{
v1: "v0.0.1",
v2: "v0.0.1",
},
want: true,
wantErr: false,
},
{
name: "equal",
svo: Equals,
args: args{
v1: "v0.0.1",
v2: "v0.0.1",
},
want: true,
wantErr: false,
},
{
name: "not equal",
svo: Equals,
args: args{
v1: "v0.0.2",
v2: "v0.0.1",
},
want: false,
wantErr: false,
},
{
name: "unequal",
svo: NotEqual,
args: args{
v1: "v0.0.2",
v2: "v0.0.1",
},
want: true,
wantErr: false,
},
{
name: "not unequal",
svo: NotEqual,
args: args{
v1: "v0.0.1",
v2: "v0.0.1",
},
want: false,
wantErr: false,
},
{
name: "greater or equal 1",
svo: GreaterOrEqual,
args: args{
v1: "v0.0.2",
v2: "v0.0.1",
},
want: true,
wantErr: false,
},
{
name: "greater or equal 2",
svo: GreaterOrEqual,
args: args{
v1: "v0.0.1",
v2: "v0.0.1",
},
want: true,
wantErr: false,
},
{
name: "not greater or equal",
svo: GreaterOrEqual,
args: args{
v1: "v0.0.1",
v2: "v0.0.2",
},
want: false,
wantErr: false,
},
{
name: "greater",
svo: Greater,
args: args{
v1: "v0.0.2",
v2: "v0.0.1",
},
want: true,
wantErr: false,
},
{
name: "not greater",
svo: Greater,
args: args{
v1: "v0.0.1",
v2: "v0.0.1",
},
want: false,
wantErr: false,
},
{
name: "matching major version",
svo: MatchMajor,
args: args{
v1: "v1.3.4",
v2: "v1.5.3",
},
want: true,
wantErr: false,
},
{
name: "not matching major version",
svo: MatchMajor,
args: args{
v1: "v2.1.1",
v2: "v1.1.1",
},
want: false,
wantErr: false,
},
{
name: "matching minor version",
svo: MatchMinor,
args: args{
v1: "v1.3.4",
v2: "v1.3.1",
},
want: true,
wantErr: false,
},
{
name: "not matching minor version",
svo: MatchMinor,
args: args{
v1: "v2.2.1",
v2: "v2.1.1",
},
want: false,
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var operatorInterface interface{} = string(tt.svo)
actualVersion, targetVersion, operator, err := parseSemverEvaluationData([]interface{}{tt.args.v1, operatorInterface, tt.args.v2})
if err != nil {
require.Truef(t, tt.wantErr, "Error parsing semver evaluation data. actualVersion: %s, targetVersion: %s, operator: %s, err: %s", actualVersion, targetVersion, operator, err)
return
}
got, err := operator.compare(actualVersion, targetVersion)
if tt.wantErr {
require.NotNil(t, err)
} else {
require.Nil(t, err)
require.Equalf(t, tt.want, got, "compare(%v, %v) operator: %s", tt.args.v1, tt.args.v2, operator)
}
})
}
}
func TestJSONEvaluator_semVerEvaluation(t *testing.T) {
const source = "testSource"
var sources = []string{source}
ctx := context.Background()
tests := map[string]struct {
flags Flags
flagKey string
context map[string]any
expectedValue string
expectedVariant string
expectedReason string
expectedError error
}{
"versions and operator provided - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["1.0.0", ">", "0.1.0"]
},
"red", null
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"resolve target property using nested operation - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": [{"var": "version"}, ">", "1.0.0"]
},
"red", null
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.1",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"versions and operator provided - no match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["1.0.0", ">", "1.0.0"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"versions and major-version operator provided - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["1.2.3", "^", "1.5.6"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"versions and minor-version operator provided - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["1.2.3", "~", "1.2.6"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"versions given as double - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": [1.2, "=", "1.2"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"versions given as int - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": [1, "=", "v1.0.0"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"versions and minor-version without patch version operator provided - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": [1.2, "=", "1.2"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"versions with prefixed v operator provided - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": [{"var": "version"}, "<", "v1.2"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "v1.0.0",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"versions and major-version operator provided - no match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["2.2.3", "^", "1.2.3"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"versions and minor-version operator provided - no match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["1.3.3", "~", "1.2.6"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "1.0.0",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"resolve target property using nested operation - no match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": [{"var": "version"}, ">", "1.0.0"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"version": "0.0.1",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing (not an array) - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": "not an array"
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing (wrong number of items in array) - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["not", "enough"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing (invalid property value) - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["invalid", ">", "1.0.0"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing (invalid property type) - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": [1.0, ">", "1.0.0"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing (invalid operator) - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["1.0.0", "invalid", "1.0.0"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing (invalid operator type) - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["1.0.0", 1, "1.0.0"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing (invalid target version) - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"sem_ver": ["1.0.0", ">", "invalid"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
}
const reqID = "default"
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
log := logger.NewLogger(nil, false)
s, err := store.NewStore(log, sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
je := NewJSON(log, s)
je.store.Update(source, tt.flags.Flags, model.Metadata{})
value, variant, reason, _, err := resolve[string](ctx, reqID, tt.flagKey, tt.context, je.evaluateVariant)
if value != tt.expectedValue {
t.Errorf("expected value '%s', got '%s'", tt.expectedValue, value)
}
if variant != tt.expectedVariant {
t.Errorf("expected variant '%s', got '%s'", tt.expectedVariant, variant)
}
if reason != tt.expectedReason {
t.Errorf("expected reason '%s', got '%s'", tt.expectedReason, reason)
}
if !errors.Is(err, tt.expectedError) {
t.Errorf("expected err '%v', got '%v'", tt.expectedError, err)
}
})
}
}

View File

@ -0,0 +1,125 @@
package evaluator
import (
"errors"
"fmt"
"strings"
"github.com/open-feature/flagd/core/pkg/logger"
)
const (
StartsWithEvaluationName = "starts_with"
EndsWithEvaluationName = "ends_with"
)
type StringComparisonEvaluator struct {
Logger *logger.Logger
}
func NewStringComparisonEvaluator(log *logger.Logger) *StringComparisonEvaluator {
return &StringComparisonEvaluator{Logger: log}
}
// StartsWithEvaluation checks if the given property starts with a certain prefix.
// It returns 'true', if the value of the given property starts with the prefix, 'false' if not.
// As an example, it can be used in the following way inside an 'if' evaluation:
//
// {
// "if": [
// {
// "starts_with": [{"var": "email"}, "user@faas"]
// },
// "red", null
// ]
// }
//
// This rule can be applied to the following data object, where the evaluation will resolve to 'true':
//
// { "email": "user@faas.com" }
//
// Note that the 'starts_with' evaluation rule must contain exactly two items, which both resolve to a
// string value
func (sce *StringComparisonEvaluator) StartsWithEvaluation(values, _ interface{}) interface{} {
propertyValue, target, err := parseStringComparisonEvaluationData(values)
if err != nil {
sce.Logger.Error(fmt.Sprintf("parse starts_with evaluation data: %v", err))
return nil
}
return strings.HasPrefix(propertyValue, target)
}
// EndsWithEvaluation checks if the given property ends with a certain prefix.
// It returns 'true', if the value of the given property starts with the prefix, 'false' if not.
// As an example, it can be used in the following way inside an 'if' evaluation:
//
// {
// "if": [
// {
// "ends_with": [{"var": "email"}, "faas.com"]
// },
// "red", null
// ]
// }
//
// This rule can be applied to the following data object, where the evaluation will resolve to 'true':
//
// { "email": "user@faas.com" }
//
// Note that the 'ends_with' evaluation rule must contain exactly two items, which both resolve to a
// string value
func (sce *StringComparisonEvaluator) EndsWithEvaluation(values, _ interface{}) interface{} {
propertyValue, target, err := parseStringComparisonEvaluationData(values)
if err != nil {
sce.Logger.Error(fmt.Sprintf("parse ends_with evaluation data: %v", err))
return false
}
return strings.HasSuffix(propertyValue, target)
}
// parseStringComparisonEvaluationData tries to parse the input for the starts_with/ends_with evaluation.
// this evaluator requires an array containing exactly two strings.
// Note that, when used with jsonLogic, those two items can also have been objects in the original 'values' object,
// which have been resolved to string values by jsonLogic before this function is called.
// As an example, the following values object:
//
// {
// "if": [
// {
// "starts_with": [{"var": "email"}, "user@faas"]
// },
// "red", null
// ]
// }
//
// with the following data object:
//
// { "email": "user@faas.com" }
//
// will have been resolved to
//
// ["user@faas.com", "user@faas"]
//
// at the time this function is reached.
func parseStringComparisonEvaluationData(values interface{}) (string, string, error) {
parsed, ok := values.([]interface{})
if !ok {
return "", "", errors.New("[start/end]s_with evaluation is not an array")
}
if len(parsed) != 2 {
return "", "", errors.New("[start/end]s_with evaluation must contain a value and a comparison target")
}
property, ok := parsed[0].(string)
if !ok {
return "", "", errors.New("[start/end]s_with evaluation: property did not resolve to a string value")
}
targetValue, ok := parsed[1].(string)
if !ok {
return "", "", errors.New("[start/end]s_with evaluation: target value did not resolve to a string value")
}
return property, targetValue, nil
}

View File

@ -0,0 +1,503 @@
package evaluator
import (
"context"
"errors"
"fmt"
"testing"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/store"
"github.com/stretchr/testify/assert"
)
func TestJSONEvaluator_startsWithEvaluation(t *testing.T) {
const source = "testSource"
var sources = []string{source}
ctx := context.Background()
tests := map[string]struct {
flags Flags
flagKey string
context map[string]any
expectedValue string
expectedVariant string
expectedReason string
expectedError error
}{
"two strings provided - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"starts_with": ["user@faas.com", "user@faas"]
},
"red", null
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"resolve target property using nested operation - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"starts_with": [{"var": "email"}, "user@faas"]
},
"red", null
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"two strings provided - no match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"starts_with": ["user@faas.com", "nope"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"resolve target property using nested operation - no match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"starts_with": [{"var": "email"}, "nope"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"starts_with": "no-array"
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
}
const reqID = "default"
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
log := logger.NewLogger(nil, false)
s, err := store.NewStore(log, sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
je := NewJSON(log, s)
je.store.Update(source, tt.flags.Flags, model.Metadata{})
value, variant, reason, _, err := resolve[string](ctx, reqID, tt.flagKey, tt.context, je.evaluateVariant)
if value != tt.expectedValue {
t.Errorf("expected value '%s', got '%s'", tt.expectedValue, value)
}
if variant != tt.expectedVariant {
t.Errorf("expected variant '%s', got '%s'", tt.expectedVariant, variant)
}
if reason != tt.expectedReason {
t.Errorf("expected reason '%s', got '%s'", tt.expectedReason, reason)
}
if !errors.Is(err, tt.expectedError) {
t.Errorf("expected err '%v', got '%v'", tt.expectedError, err)
}
})
}
}
func TestJSONEvaluator_endsWithEvaluation(t *testing.T) {
const source = "testSource"
var sources = []string{source}
ctx := context.Background()
tests := map[string]struct {
flags Flags
flagKey string
context map[string]any
expectedValue string
expectedVariant string
expectedReason string
expectedError error
}{
"two strings provided - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"ends_with": ["user@faas.com", "faas.com"]
},
"red", null
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"resolve target property using nested operation - match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"ends_with": [{"var": "email"}, "faas.com"]
},
"red", null
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "red",
expectedValue: "#FF0000",
expectedReason: model.TargetingMatchReason,
},
"two strings provided - no match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"ends_with": ["user@faas.com", "nope"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"resolve target property using nested operation - no match": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"ends_with": [{"var": "email"}, "nope"]
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
"error during parsing - return default": {
flags: Flags{
Flags: map[string]model.Flag{
"headerColor": {
State: "ENABLED",
DefaultVariant: "red",
Variants: map[string]any{
"red": "#FF0000",
"blue": "#0000FF",
"green": "#00FF00",
"yellow": "#FFFF00",
},
Targeting: []byte(`{
"if": [
{
"ends_with": "no-array"
},
"red", "green"
]
}`),
},
},
},
flagKey: "headerColor",
context: map[string]any{
"email": "user@faas.com",
},
expectedVariant: "green",
expectedValue: "#00FF00",
expectedReason: model.TargetingMatchReason,
},
}
const reqID = "default"
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
log := logger.NewLogger(nil, false)
s, err := store.NewStore(log, sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
je := NewJSON(log, s)
je.store.Update(source, tt.flags.Flags, model.Metadata{})
value, variant, reason, _, err := resolve[string](ctx, reqID, tt.flagKey, tt.context, je.evaluateVariant)
if value != tt.expectedValue {
t.Errorf("expected value '%s', got '%s'", tt.expectedValue, value)
}
if variant != tt.expectedVariant {
t.Errorf("expected variant '%s', got '%s'", tt.expectedVariant, variant)
}
if reason != tt.expectedReason {
t.Errorf("expected reason '%s', got '%s'", tt.expectedReason, reason)
}
if err != tt.expectedError {
t.Errorf("expected err '%v', got '%v'", tt.expectedError, err)
}
})
}
}
func Test_parseStringComparisonEvaluationData(t *testing.T) {
type args struct {
values interface{}
}
tests := []struct {
name string
args args
wantProperty string
wantTargetValue string
wantErr assert.ErrorAssertionFunc
}{
{
name: "return two string values",
args: args{
values: []interface{}{"a", "b"},
},
wantProperty: "a",
wantTargetValue: "b",
wantErr: func(t assert.TestingT, err error, i ...interface{}) bool {
assert.Nil(t, err)
return false
},
},
{
name: "provided object is not an array",
args: args{
values: "not-an-array",
},
wantProperty: "",
wantTargetValue: "",
wantErr: func(t assert.TestingT, err error, i ...interface{}) bool {
assert.NotNil(t, err)
return true
},
},
{
name: "provided object does not have two elements",
args: args{
values: []interface{}{"a"},
},
wantProperty: "",
wantTargetValue: "",
wantErr: func(t assert.TestingT, err error, i ...interface{}) bool {
assert.NotNil(t, err)
return true
},
},
{
name: "property is not a string",
args: args{
values: []interface{}{1, "b"},
},
wantProperty: "",
wantTargetValue: "",
wantErr: func(t assert.TestingT, err error, i ...interface{}) bool {
assert.NotNil(t, err)
return true
},
},
{
name: "targetValue is not a string",
args: args{
values: []interface{}{"a", 1},
},
wantProperty: "",
wantTargetValue: "",
wantErr: func(t assert.TestingT, err error, i ...interface{}) bool {
assert.NotNil(t, err)
return true
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, got1, err := parseStringComparisonEvaluationData(tt.args.values)
if !tt.wantErr(t, err, fmt.Sprintf("parseStringComparisonEvaluationData(%v)", tt.args.values)) {
return
}
assert.Equalf(t, tt.wantProperty, got, "parseStringComparisonEvaluationData(%v)", tt.args.values)
assert.Equalf(t, tt.wantTargetValue, got1, "parseStringComparisonEvaluationData(%v)", tt.args.values)
})
}
}

View File

@ -1,6 +1,7 @@
package logger
import (
"fmt"
"sync"
"go.uber.org/zap"
@ -188,7 +189,11 @@ func NewZapLogger(level zapcore.Level, logFormat string) (*zap.Logger, error) {
},
DisableCaller: false,
}
return cfg.Build()
l, err := cfg.Build()
if err != nil {
return nil, fmt.Errorf("unable to build logger from config: %w", err)
}
return l, nil
}
// NewLogger returns the logging wrapper for a given *zap.logger.

View File

@ -1,9 +1,28 @@
package model
import "fmt"
const (
FlagNotFoundErrorCode = "FLAG_NOT_FOUND"
ParseErrorCode = "PARSE_ERROR"
TypeMismatchErrorCode = "TYPE_MISMATCH"
GeneralErrorCode = "GENERAL"
FlagDisabledErrorCode = "FLAG_DISABLED"
InvalidContextCode = "INVALID_CONTEXT"
)
var ReadableErrorMessage = map[string]string{
FlagNotFoundErrorCode: "Flag not found",
ParseErrorCode: "Error parsing input or configuration",
TypeMismatchErrorCode: "Type mismatch error",
GeneralErrorCode: "General error",
FlagDisabledErrorCode: "Flag is disabled",
InvalidContextCode: "Invalid context provided",
}
func GetErrorMessage(code string) string {
if msg, exists := ReadableErrorMessage[code]; exists {
return msg
}
return fmt.Sprintf("Unknown error code: %s", code)
}

View File

@ -2,14 +2,26 @@ package model
import "encoding/json"
const Key = "Key"
const FlagSetId = "FlagSetId"
const Source = "Source"
const Priority = "Priority"
type Flag struct {
Key string `json:"-"` // not serialized, used only for indexing
FlagSetId string `json:"-"` // not serialized, used only for indexing
Priority int `json:"-"` // not serialized, used only for indexing
State string `json:"state"`
DefaultVariant string `json:"defaultVariant"`
Variants map[string]any `json:"variants"`
Targeting json.RawMessage `json:"targeting,omitempty"`
Source string `json:"source"`
Selector string `json:"selector"`
Metadata Metadata `json:"metadata,omitempty"`
}
type Evaluators struct {
Evaluators map[string]json.RawMessage `json:"$evaluators"`
}
type Metadata = map[string]interface{}

View File

@ -0,0 +1,52 @@
package notifications
import (
"reflect"
"github.com/open-feature/flagd/core/pkg/model"
)
const typeField = "type"
// Use to represent change notifications for mode PROVIDER_CONFIGURATION_CHANGE events.
type Notifications map[string]any
// Generate notifications (deltas) from old and new flag sets for use in RPC mode PROVIDER_CONFIGURATION_CHANGE events.
func NewFromFlags(oldFlags, newFlags map[string]model.Flag) Notifications {
notifications := map[string]interface{}{}
// flags removed
for key := range oldFlags {
if _, ok := newFlags[key]; !ok {
notifications[key] = map[string]interface{}{
typeField: string(model.NotificationDelete),
}
}
}
// flags added or modified
for key, newFlag := range newFlags {
oldFlag, exists := oldFlags[key]
if !exists {
notifications[key] = map[string]interface{}{
typeField: string(model.NotificationCreate),
}
} else if !flagsEqual(oldFlag, newFlag) {
notifications[key] = map[string]interface{}{
typeField: string(model.NotificationUpdate),
}
}
}
return notifications
}
func flagsEqual(a, b model.Flag) bool {
return a.State == b.State &&
a.DefaultVariant == b.DefaultVariant &&
reflect.DeepEqual(a.Variants, b.Variants) &&
reflect.DeepEqual(a.Targeting, b.Targeting) &&
a.Source == b.Source &&
a.Selector == b.Selector &&
reflect.DeepEqual(a.Metadata, b.Metadata)
}

View File

@ -0,0 +1,102 @@
package notifications
import (
"testing"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/stretchr/testify/assert"
)
func TestNewFromFlags(t *testing.T) {
flagA := model.Flag{
Key: "flagA",
State: "ENABLED",
DefaultVariant: "on",
Source: "source1",
}
flagAUpdated := model.Flag{
Key: "flagA",
State: "DISABLED",
DefaultVariant: "on",
Source: "source1",
}
flagB := model.Flag{
Key: "flagB",
State: "ENABLED",
DefaultVariant: "off",
Source: "source1",
}
tests := []struct {
name string
oldFlags map[string]model.Flag
newFlags map[string]model.Flag
want Notifications
}{
{
name: "flag added",
oldFlags: map[string]model.Flag{},
newFlags: map[string]model.Flag{"flagA": flagA},
want: Notifications{
"flagA": map[string]interface{}{
"type": string(model.NotificationCreate),
},
},
},
{
name: "flag deleted",
oldFlags: map[string]model.Flag{"flagA": flagA},
newFlags: map[string]model.Flag{},
want: Notifications{
"flagA": map[string]interface{}{
"type": string(model.NotificationDelete),
},
},
},
{
name: "flag changed",
oldFlags: map[string]model.Flag{"flagA": flagA},
newFlags: map[string]model.Flag{"flagA": flagAUpdated},
want: Notifications{
"flagA": map[string]interface{}{
"type": string(model.NotificationUpdate),
},
},
},
{
name: "flag unchanged",
oldFlags: map[string]model.Flag{"flagA": flagA},
newFlags: map[string]model.Flag{"flagA": flagA},
want: Notifications{},
},
{
name: "mixed changes",
oldFlags: map[string]model.Flag{
"flagA": flagA,
"flagB": flagB,
},
newFlags: map[string]model.Flag{
"flagA": flagAUpdated, // updated
"flagC": flagA, // added
},
want: Notifications{
"flagA": map[string]interface{}{
"type": string(model.NotificationUpdate),
},
"flagB": map[string]interface{}{
"type": string(model.NotificationDelete),
},
"flagC": map[string]interface{}{
"type": string(model.NotificationCreate),
},
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := NewFromFlags(tt.oldFlags, tt.newFlags)
assert.Equal(t, tt.want, got)
})
}
}

View File

@ -1,109 +0,0 @@
package otel
import (
"context"
"time"
"github.com/prometheus/client_golang/prometheus"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/metric/instrument"
"go.opentelemetry.io/otel/metric/unit"
"go.opentelemetry.io/otel/sdk/instrumentation"
"go.opentelemetry.io/otel/sdk/metric"
"go.opentelemetry.io/otel/sdk/metric/aggregation"
semconv "go.opentelemetry.io/otel/semconv/v1.18.0"
)
type MetricsRecorder struct {
httpRequestDurHistogram instrument.Float64Histogram
httpResponseSizeHistogram instrument.Float64Histogram
httpRequestsInflight instrument.Int64UpDownCounter
impressions instrument.Int64Counter
}
func (r MetricsRecorder) HTTPAttributes(svcName, url, method, code string) []attribute.KeyValue {
return []attribute.KeyValue{
semconv.ServiceNameKey.String(svcName),
semconv.HTTPURLKey.String(url),
semconv.HTTPMethodKey.String(method),
semconv.HTTPStatusCodeKey.String(code),
}
}
func (r MetricsRecorder) HTTPRequestDuration(ctx context.Context, duration time.Duration, attrs []attribute.KeyValue) {
r.httpRequestDurHistogram.Record(ctx, duration.Seconds(), attrs...)
}
func (r MetricsRecorder) HTTPResponseSize(ctx context.Context, sizeBytes int64, attrs []attribute.KeyValue) {
r.httpResponseSizeHistogram.Record(ctx, float64(sizeBytes), attrs...)
}
func (r MetricsRecorder) InFlightRequestStart(ctx context.Context, attrs []attribute.KeyValue) {
r.httpRequestsInflight.Add(ctx, 1, attrs...)
}
func (r MetricsRecorder) InFlightRequestEnd(ctx context.Context, attrs []attribute.KeyValue) {
r.httpRequestsInflight.Add(ctx, -1, attrs...)
}
func (r MetricsRecorder) Impressions(ctx context.Context, key, variant string) {
r.impressions.Add(ctx, 1, []attribute.KeyValue{
semconv.FeatureFlagKey(key),
semconv.FeatureFlagVariant(variant),
semconv.FeatureFlagProviderName("flagd"),
}...)
}
func getDurationView(svcName, viewName string, bucket []float64) metric.View {
return metric.NewView(
metric.Instrument{
// we change aggregation only for instruments with this name and scope
Name: viewName,
Scope: instrumentation.Scope{
Name: svcName,
},
},
metric.Stream{Aggregation: aggregation.ExplicitBucketHistogram{
Boundaries: bucket,
}},
)
}
func NewOTelRecorder(exporter metric.Reader, serviceName string) *MetricsRecorder {
const requestDurationName = "http_request_duration_seconds"
const responseSizeName = "http_response_size_bytes"
// create a metric provider with custom bucket size for histograms
provider := metric.NewMeterProvider(
metric.WithReader(exporter),
// for the request duration metric we use the default bucket size which are tailored for response time in seconds
metric.WithView(getDurationView(requestDurationName, serviceName, prometheus.DefBuckets)),
// for response size we want 8 exponential bucket starting from 100 Bytes
metric.WithView(getDurationView(responseSizeName, serviceName, prometheus.ExponentialBuckets(100, 10, 8))),
)
meter := provider.Meter(serviceName)
// we can ignore errors from OpenTelemetry since they could occur if we select the wrong aggregator
hduration, _ := meter.Float64Histogram(
requestDurationName,
instrument.WithDescription("The latency of the HTTP requests"),
)
hsize, _ := meter.Float64Histogram(
responseSizeName,
instrument.WithDescription("The size of the HTTP responses"),
instrument.WithUnit(unit.Bytes),
)
reqCounter, _ := meter.Int64UpDownCounter(
"http_requests_inflight",
instrument.WithDescription("The number of inflight requests being handled at the same time"),
)
impressions, _ := meter.Int64Counter(
"impressions",
instrument.WithDescription("The number of evaluation for a given flag"),
)
return &MetricsRecorder{
httpRequestDurHistogram: hduration,
httpResponseSizeHistogram: hsize,
httpRequestsInflight: reqCounter,
impressions: impressions,
}
}

View File

@ -1,154 +0,0 @@
package otel
import (
"context"
"testing"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/sdk/metric"
semconv "go.opentelemetry.io/otel/semconv/v1.13.0"
)
const svcName = "mySvc"
func TestHTTPAttributes(t *testing.T) {
type HTTPReqProperties struct {
Service string
ID string
Method string
Code string
}
tests := []struct {
name string
req HTTPReqProperties
want []attribute.KeyValue
}{
{
name: "empty attributes",
req: HTTPReqProperties{
Service: "",
ID: "",
Method: "",
Code: "",
},
want: []attribute.KeyValue{
semconv.ServiceNameKey.String(""),
semconv.HTTPURLKey.String(""),
semconv.HTTPMethodKey.String(""),
semconv.HTTPStatusCodeKey.String(""),
},
},
{
name: "some values",
req: HTTPReqProperties{
Service: "myService",
ID: "#123",
Method: "POST",
Code: "300",
},
want: []attribute.KeyValue{
semconv.ServiceNameKey.String("myService"),
semconv.HTTPURLKey.String("#123"),
semconv.HTTPMethodKey.String("POST"),
semconv.HTTPStatusCodeKey.String("300"),
},
},
{
name: "special chars",
req: HTTPReqProperties{
Service: "!@#$%^&*()_+|}{[];',./<>",
ID: "",
Method: "",
Code: "",
},
want: []attribute.KeyValue{
semconv.ServiceNameKey.String("!@#$%^&*()_+|}{[];',./<>"),
semconv.HTTPURLKey.String(""),
semconv.HTTPMethodKey.String(""),
semconv.HTTPStatusCodeKey.String(""),
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
rec := MetricsRecorder{}
res := rec.HTTPAttributes(tt.req.Service, tt.req.ID, tt.req.Method, tt.req.Code)
require.Equal(t, tt.want, res)
})
}
}
func TestNewOTelRecorder(t *testing.T) {
exp := metric.NewManualReader()
rec := NewOTelRecorder(exp, svcName)
require.NotNil(t, rec, "Expected object to be created")
require.NotNil(t, rec.httpRequestDurHistogram, "Expected httpRequestDurHistogram to be created")
require.NotNil(t, rec.httpResponseSizeHistogram, "Expected httpResponseSizeHistogram to be created")
require.NotNil(t, rec.httpRequestsInflight, "Expected httpRequestsInflight to be created")
}
func TestMetrics(t *testing.T) {
exp := metric.NewManualReader()
rec := NewOTelRecorder(exp, svcName)
ctx := context.TODO()
attrs := []attribute.KeyValue{
semconv.ServiceNameKey.String(svcName),
}
const n = 5
type MetricF func()
tests := []struct {
name string
metricFunc MetricF
}{
{
name: "HTTPRequestDuration",
metricFunc: func() {
for i := 0; i < n; i++ {
rec.HTTPRequestDuration(ctx, 10, attrs)
}
},
},
{
name: "HTTPResponseSize",
metricFunc: func() {
for i := 0; i < n; i++ {
rec.HTTPResponseSize(ctx, 100, attrs)
}
},
},
{
name: "InFlightRequestStart",
metricFunc: func() {
for i := 0; i < n; i++ {
rec.InFlightRequestStart(ctx, attrs)
rec.InFlightRequestEnd(ctx, attrs)
}
},
},
{
name: "Impressions",
metricFunc: func() {
for i := 0; i < n; i++ {
rec.Impressions(ctx, "key", "variant")
}
},
},
}
i := 0
for _, tt := range tests {
i++
tt.metricFunc()
data, err := exp.Collect(context.TODO())
if err != nil {
t.Errorf("Got %v", err)
}
if len(data.ScopeMetrics) != 1 {
t.Errorf("A single scope is expected, got %d", len(data.ScopeMetrics))
}
scopeMetrics := data.ScopeMetrics[0]
require.Equal(t, svcName, scopeMetrics.Scope.Name)
require.Equal(t, i, len(scopeMetrics.Metrics))
}
}

View File

@ -1,274 +0,0 @@
package runtime
import (
"encoding/json"
"errors"
"fmt"
"net/http"
"regexp"
msync "sync"
"time"
"github.com/open-feature/flagd/core/pkg/sync/grpc/credentials"
"github.com/open-feature/flagd/core/pkg/service"
"go.opentelemetry.io/otel/exporters/prometheus"
"github.com/open-feature/flagd/core/pkg/eval"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/otel"
flageval "github.com/open-feature/flagd/core/pkg/service/flag-evaluation"
"github.com/open-feature/flagd/core/pkg/store"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/open-feature/flagd/core/pkg/sync/file"
"github.com/open-feature/flagd/core/pkg/sync/grpc"
httpSync "github.com/open-feature/flagd/core/pkg/sync/http"
"github.com/open-feature/flagd/core/pkg/sync/kubernetes"
"github.com/robfig/cron"
"go.uber.org/zap"
)
// from_config is a collection of structures and parsers responsible for deriving flagd runtime
const (
syncProviderFile = "file"
syncProviderGrpc = "grpc"
syncProviderKubernetes = "kubernetes"
syncProviderHTTP = "http"
svcName = "openfeature/flagd"
)
var (
regCrd *regexp.Regexp
regURL *regexp.Regexp
regGRPC *regexp.Regexp
regGRPCSecure *regexp.Regexp
regFile *regexp.Regexp
)
// SourceConfig is configuration option for flagd. This maps to startup parameter sources
type SourceConfig struct {
URI string `json:"uri"`
Provider string `json:"provider"`
BearerToken string `json:"bearerToken,omitempty"`
CertPath string `json:"certPath,omitempty"`
TLS bool `json:"tls,omitempty"`
ProviderID string `json:"providerID,omitempty"`
Selector string `json:"selector,omitempty"`
}
// Config is the configuration structure derived from startup arguments.
type Config struct {
ServicePort uint16
MetricsPort uint16
ServiceSocketPath string
ServiceCertPath string
ServiceKeyPath string
SyncProviders []SourceConfig
CORS []string
}
func init() {
regCrd = regexp.MustCompile("^core.openfeature.dev/")
regURL = regexp.MustCompile("^https?://")
regGRPC = regexp.MustCompile("^" + grpc.Prefix)
regGRPCSecure = regexp.MustCompile("^" + grpc.PrefixSecure)
regFile = regexp.MustCompile("^file:")
}
// FromConfig builds a runtime from startup configurations
func FromConfig(logger *logger.Logger, config Config) (*Runtime, error) {
// build connect service
exporter, err := prometheus.New()
if err != nil {
return nil, err
}
connectService := &flageval.ConnectService{
Logger: logger.WithFields(
zap.String("component", "service"),
),
Metrics: otel.NewOTelRecorder(exporter, svcName),
}
// build flag store
s := store.NewFlags()
sources := []string{}
for _, sync := range config.SyncProviders {
sources = append(sources, sync.URI)
}
s.FlagSources = sources
// build sync providers
syncLogger := logger.WithFields(zap.String("component", "sync"))
iSyncs, err := syncProvidersFromConfig(syncLogger, config.SyncProviders)
if err != nil {
return nil, err
}
return &Runtime{
Logger: logger.WithFields(zap.String("component", "runtime")),
Evaluator: eval.NewJSONEvaluator(logger, s),
Service: connectService,
ServiceConfig: service.Configuration{
Port: config.ServicePort,
MetricsPort: config.MetricsPort,
ServiceName: svcName,
KeyPath: config.ServiceKeyPath,
CertPath: config.ServiceCertPath,
SocketPath: config.ServiceSocketPath,
CORS: config.CORS,
},
SyncImpl: iSyncs,
}, nil
}
// syncProvidersFromConfig is a helper to build ISync implementations from SourceConfig
func syncProvidersFromConfig(logger *logger.Logger, sources []SourceConfig) ([]sync.ISync, error) {
syncImpls := []sync.ISync{}
for _, syncProvider := range sources {
switch syncProvider.Provider {
case syncProviderFile:
syncImpls = append(syncImpls, NewFile(syncProvider, logger))
logger.Debug(fmt.Sprintf("using filepath sync-provider for: %q", syncProvider.URI))
case syncProviderKubernetes:
k, err := NewK8s(syncProvider.URI, logger)
if err != nil {
return nil, err
}
syncImpls = append(syncImpls, k)
logger.Debug(fmt.Sprintf("using kubernetes sync-provider for: %s", syncProvider.URI))
case syncProviderHTTP:
syncImpls = append(syncImpls, NewHTTP(syncProvider, logger))
logger.Debug(fmt.Sprintf("using remote sync-provider for: %s", syncProvider.URI))
case syncProviderGrpc:
syncImpls = append(syncImpls, NewGRPC(syncProvider, logger))
logger.Debug(fmt.Sprintf("using grpc sync-provider for: %s", syncProvider.URI))
default:
return nil, fmt.Errorf("invalid sync provider: %s, must be one of with '%s', '%s', '%s' or '%s'",
syncProvider.Provider, syncProviderFile, syncProviderKubernetes, syncProviderHTTP, syncProviderKubernetes)
}
}
return syncImpls, nil
}
func NewGRPC(config SourceConfig, logger *logger.Logger) *grpc.Sync {
return &grpc.Sync{
URI: config.URI,
Logger: logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "grpc"),
),
CredentialBuilder: &credentials.CredentialBuilder{},
CertPath: config.CertPath,
ProviderID: config.ProviderID,
Secure: config.TLS,
Selector: config.Selector,
}
}
func NewHTTP(config SourceConfig, logger *logger.Logger) *httpSync.Sync {
return &httpSync.Sync{
URI: config.URI,
Client: &http.Client{
Timeout: time.Second * 10,
},
Logger: logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "remote"),
),
BearerToken: config.BearerToken,
Cron: cron.New(),
}
}
func NewK8s(uri string, logger *logger.Logger) (*kubernetes.Sync, error) {
reader, dynamic, err := kubernetes.GetClients()
if err != nil {
return nil, err
}
return kubernetes.NewK8sSync(
logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "kubernetes"),
),
regCrd.ReplaceAllString(uri, ""),
reader,
dynamic,
), nil
}
func NewFile(config SourceConfig, logger *logger.Logger) *file.Sync {
return &file.Sync{
URI: config.URI,
Logger: logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "filepath"),
),
Mux: &msync.RWMutex{},
}
}
// ParseSources parse a json formatted SourceConfig array string and performs validations on the content
func ParseSources(sourcesFlag string) ([]SourceConfig, error) {
syncProvidersParsed := []SourceConfig{}
if err := json.Unmarshal([]byte(sourcesFlag), &syncProvidersParsed); err != nil {
return syncProvidersParsed, fmt.Errorf("unable to parse sync providers: %w", err)
}
for _, sp := range syncProvidersParsed {
if sp.URI == "" {
return syncProvidersParsed, errors.New("sync provider argument parse: uri is a required field")
}
if sp.Provider == "" {
return syncProvidersParsed, errors.New("sync provider argument parse: provider is a required field")
}
}
return syncProvidersParsed, nil
}
// ParseSyncProviderURIs uri flag based sync sources to SourceConfig array. Replaces uri prefixes where necessary to
// derive SourceConfig
func ParseSyncProviderURIs(uris []string) ([]SourceConfig, error) {
syncProvidersParsed := []SourceConfig{}
for _, uri := range uris {
switch uriB := []byte(uri); {
case regFile.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, SourceConfig{
URI: regFile.ReplaceAllString(uri, ""),
Provider: syncProviderFile,
})
case regCrd.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, SourceConfig{
URI: regCrd.ReplaceAllString(uri, ""),
Provider: syncProviderKubernetes,
})
case regURL.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, SourceConfig{
URI: uri,
Provider: syncProviderHTTP,
})
case regGRPC.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, SourceConfig{
URI: regGRPC.ReplaceAllString(uri, ""),
Provider: syncProviderGrpc,
})
case regGRPCSecure.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, SourceConfig{
URI: regGRPCSecure.ReplaceAllString(uri, ""),
Provider: syncProviderGrpc,
TLS: true,
})
default:
return syncProvidersParsed, fmt.Errorf("invalid sync uri argument: %s, must start with 'file:', "+
"'http(s)://', 'grpc(s)://', or 'core.openfeature.dev'", uri)
}
}
return syncProvidersParsed, nil
}

View File

@ -1,117 +0,0 @@
package runtime
import (
"context"
"errors"
"os"
"os/signal"
msync "sync"
"syscall"
"github.com/open-feature/flagd/core/pkg/eval"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/service"
"github.com/open-feature/flagd/core/pkg/sync"
"golang.org/x/sync/errgroup"
)
type Runtime struct {
Evaluator eval.IEvaluator
Logger *logger.Logger
Service service.IFlagEvaluationService
ServiceConfig service.Configuration
SyncImpl []sync.ISync
mu msync.Mutex
}
// nolint: funlen
func (r *Runtime) Start() error {
if r.Service == nil {
return errors.New("no service set")
}
if len(r.SyncImpl) == 0 {
return errors.New("no sync implementation set")
}
if r.Evaluator == nil {
return errors.New("no evaluator set")
}
ctx, cancel := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
defer cancel()
g, gCtx := errgroup.WithContext(ctx)
dataSync := make(chan sync.DataSync, len(r.SyncImpl))
// Initialize DataSync channel watcher
g.Go(func() error {
for {
select {
case data := <-dataSync:
// resync events are triggered when a delete occurs during flag merges in the store
// resync events may trigger further resync events, however for a flag to be deleted from the store
// its source must match, preventing the opportunity for resync events to snowball
if resyncRequired := r.updateWithNotify(data); resyncRequired {
for _, s := range r.SyncImpl {
p := s
go func() {
g.Go(func() error {
return p.ReSync(gCtx, dataSync)
})
}()
}
}
case <-gCtx.Done():
return nil
}
}
})
// Init sync providers
for _, s := range r.SyncImpl {
if err := s.Init(gCtx); err != nil {
return err
}
}
// Start sync provider
for _, s := range r.SyncImpl {
p := s
g.Go(func() error {
return p.Sync(gCtx, dataSync)
})
}
g.Go(func() error {
// Readiness probe rely on the runtime
r.ServiceConfig.ReadinessProbe = r.isReady
return r.Service.Serve(gCtx, r.Evaluator, r.ServiceConfig)
})
<-gCtx.Done()
return g.Wait()
}
func (r *Runtime) isReady() bool {
// if all providers can watch for flag changes, we are ready.
for _, p := range r.SyncImpl {
if !p.IsReady() {
return false
}
}
return true
}
// updateWithNotify helps to update state and notify listeners
func (r *Runtime) updateWithNotify(payload sync.DataSync) bool {
r.mu.Lock()
defer r.mu.Unlock()
notifications, resyncRequired, err := r.Evaluator.SetState(payload)
if err != nil {
r.Logger.Error(err.Error())
return false
}
r.Service.Notify(service.Notification{
Type: service.ConfigurationChange,
Data: map[string]interface{}{
"flags": notifications,
},
})
return resyncRequired
}

View File

@ -1,165 +0,0 @@
//nolint:dupl
package service
import (
"context"
"errors"
"fmt"
"net"
"net/http"
"sync"
"time"
"github.com/open-feature/flagd/core/pkg/service/middleware"
schemaConnectV1 "buf.build/gen/go/open-feature/flagd/bufbuild/connect-go/schema/v1/schemav1connect"
"github.com/open-feature/flagd/core/pkg/eval"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/otel"
"github.com/open-feature/flagd/core/pkg/service"
corsmw "github.com/open-feature/flagd/core/pkg/service/middleware/cors"
h2cmw "github.com/open-feature/flagd/core/pkg/service/middleware/h2c"
metricsmw "github.com/open-feature/flagd/core/pkg/service/middleware/metrics"
"github.com/prometheus/client_golang/prometheus/promhttp"
"go.uber.org/zap"
)
const ErrorPrefix = "FlagdError:"
type ConnectService struct {
Logger *logger.Logger
Eval eval.IEvaluator
Metrics *otel.MetricsRecorder
eventingConfiguration *eventingConfiguration
server http.Server
}
func (s *ConnectService) Serve(ctx context.Context, eval eval.IEvaluator, svcConf service.Configuration) error {
s.Eval = eval
s.eventingConfiguration = &eventingConfiguration{
subs: make(map[interface{}]chan service.Notification),
mu: &sync.RWMutex{},
}
lis, err := s.setupServer(svcConf)
if err != nil {
return err
}
errChan := make(chan error, 1)
go func() {
s.Logger.Info(fmt.Sprintf("Flag Evaluation listening at %s", lis.Addr()))
if svcConf.CertPath != "" && svcConf.KeyPath != "" {
if err := s.server.ServeTLS(
lis,
svcConf.CertPath,
svcConf.KeyPath,
); err != nil && !errors.Is(err, http.ErrServerClosed) {
errChan <- err
}
} else {
if err := s.server.Serve(
lis,
); err != nil && !errors.Is(err, http.ErrServerClosed) {
errChan <- err
}
}
close(errChan)
}()
go s.startMetricsServer(svcConf)
select {
case err := <-errChan:
return err
case <-ctx.Done():
return s.server.Shutdown(ctx)
}
}
func (s *ConnectService) setupServer(svcConf service.Configuration) (net.Listener, error) {
var lis net.Listener
var err error
mux := http.NewServeMux()
if svcConf.SocketPath != "" {
lis, err = net.Listen("unix", svcConf.SocketPath)
} else {
address := fmt.Sprintf(":%d", svcConf.Port)
lis, err = net.Listen("tcp", address)
}
if err != nil {
return nil, err
}
fes := NewFlagEvaluationService(
s.Logger.WithFields(zap.String("component", "flagservice")),
s.Eval,
s.Metrics,
)
path, handler := schemaConnectV1.NewServiceHandler(fes)
mux.Handle(path, handler)
s.server = http.Server{
ReadHeaderTimeout: time.Second,
Handler: handler,
}
// Add middlewares
metricsMiddleware := metricsmw.NewHTTPMetric(metricsmw.Config{
Service: svcConf.ServiceName,
MetricRecorder: s.Metrics,
Logger: s.Logger,
HandlerID: "",
})
s.AddMiddleware(metricsMiddleware)
corsMiddleware := corsmw.New(svcConf.CORS)
s.AddMiddleware(corsMiddleware)
if svcConf.CertPath == "" || svcConf.KeyPath == "" {
h2cMiddleware := h2cmw.New()
s.AddMiddleware(h2cMiddleware)
}
return lis, nil
}
func (s *ConnectService) AddMiddleware(mw middleware.IMiddleware) {
s.server.Handler = mw.Handler(s.server.Handler)
}
func (s *ConnectService) Notify(n service.Notification) {
s.eventingConfiguration.mu.RLock()
defer s.eventingConfiguration.mu.RUnlock()
for _, send := range s.eventingConfiguration.subs {
send <- n
}
}
func (s *ConnectService) startMetricsServer(svcConf service.Configuration) {
s.Logger.Info(fmt.Sprintf("metrics and probes listening at %d", svcConf.MetricsPort))
server := &http.Server{
Addr: fmt.Sprintf(":%d", svcConf.MetricsPort),
ReadHeaderTimeout: 3 * time.Second,
}
server.Handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case "/healthz":
w.WriteHeader(http.StatusOK)
case "/readyz":
if svcConf.ReadinessProbe() {
w.WriteHeader(http.StatusOK)
} else {
w.WriteHeader(http.StatusPreconditionFailed)
}
case "/metrics":
promhttp.Handler().ServeHTTP(w, r)
default:
w.WriteHeader(http.StatusNotFound)
}
})
err := server.ListenAndServe()
if err != nil {
panic(err)
}
}

View File

@ -1,172 +0,0 @@
package service
import (
"context"
"errors"
"fmt"
"net/http"
"os"
"testing"
"time"
middlewaremock "github.com/open-feature/flagd/core/pkg/service/middleware/mock"
schemaGrpcV1 "buf.build/gen/go/open-feature/flagd/grpc/go/schema/v1/schemav1grpc"
schemaV1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/schema/v1"
"github.com/golang/mock/gomock"
mock "github.com/open-feature/flagd/core/pkg/eval/mock"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/otel"
iservice "github.com/open-feature/flagd/core/pkg/service"
"github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/sdk/metric"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/protobuf/types/known/structpb"
)
func TestConnectService_UnixConnection(t *testing.T) {
type evalFields struct {
result bool
variant string
reason string
err error
}
tests := []struct {
name string
socketPath string
evalFields evalFields
req *schemaV1.ResolveBooleanRequest
want *schemaV1.ResolveBooleanResponse
wantErr error
}{
{
name: "happy path",
socketPath: "/tmp/flagd.sock",
evalFields: evalFields{
result: true,
variant: "on",
reason: model.DefaultReason,
err: nil,
},
req: &schemaV1.ResolveBooleanRequest{
FlagKey: "myBoolFlag",
Context: &structpb.Struct{},
},
want: &schemaV1.ResolveBooleanResponse{
Value: true,
Reason: model.DefaultReason,
Variant: "on",
},
wantErr: nil,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
// try to ensure the socket file doesn't exist
_ = os.Remove(tt.socketPath)
ctrl := gomock.NewController(t)
eval := mock.NewMockIEvaluator(ctrl)
eval.EXPECT().ResolveBooleanValue(gomock.Any(), tt.req.FlagKey, gomock.Any()).Return(
tt.evalFields.result,
tt.evalFields.variant,
tt.evalFields.reason,
tt.evalFields.err,
).AnyTimes()
// configure OTel Metrics
exp := metric.NewManualReader()
metricRecorder := otel.NewOTelRecorder(exp, tt.name)
svc := ConnectService{
Logger: logger.NewLogger(nil, false),
Metrics: metricRecorder,
}
serveConf := iservice.Configuration{
ReadinessProbe: func() bool {
return true
},
SocketPath: tt.socketPath,
}
ctx := context.Background()
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()
go func() {
err := svc.Serve(ctx, eval, serveConf)
fmt.Println(err)
}()
conn, err := grpc.Dial(
fmt.Sprintf("unix://%s", tt.socketPath),
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithBlock(),
grpc.WithTimeout(2*time.Second),
)
if err != nil {
t.Errorf("grpc - fail to dial: %v", err)
return
}
client := schemaGrpcV1.NewServiceClient(
conn,
)
res, err := client.ResolveBoolean(ctx, tt.req)
if (err != nil) && !errors.Is(err, tt.wantErr) {
t.Errorf("ConnectService.ResolveBoolean() error = %v, wantErr %v", err, tt.wantErr)
}
require.Equal(t, tt.want.Reason, res.Reason)
require.Equal(t, tt.want.Value, res.Value)
require.Equal(t, tt.want.Variant, res.Variant)
})
}
}
func TestAddMiddleware(t *testing.T) {
const port = 12345
ctrl := gomock.NewController(t)
mwMock := middlewaremock.NewMockIMiddleware(ctrl)
mwMock.EXPECT().Handler(gomock.Any()).Return(
http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
writer.WriteHeader(http.StatusOK)
}))
exp := metric.NewManualReader()
metricRecorder := otel.NewOTelRecorder(exp, "my-exporter")
svc := ConnectService{
Logger: logger.NewLogger(nil, false),
Metrics: metricRecorder,
}
serveConf := iservice.Configuration{
ReadinessProbe: func() bool {
return true
},
Port: port,
}
ctx := context.Background()
ctx, cancel := context.WithCancel(ctx)
defer cancel()
go func() {
err := svc.Serve(ctx, nil, serveConf)
fmt.Println(err)
}()
require.Eventually(t, func() bool {
resp, err := http.Get(fmt.Sprintf("http://localhost:%d/schema.v1.Service/ResolveAll", port))
// with the default http handler we should get a method not allowed (405) when attempting a GET request
return err == nil && resp.StatusCode == http.StatusMethodNotAllowed
}, 3*time.Second, 100*time.Millisecond)
svc.AddMiddleware(mwMock)
// with the injected middleware, the GET method should work
resp, err := http.Get(fmt.Sprintf("http://localhost:%d/schema.v1.Service/ResolveAll", port))
require.Nil(t, err)
// verify that the status we return in the mocked middleware
require.Equal(t, http.StatusOK, resp.StatusCode)
}

View File

@ -1,293 +0,0 @@
package service
import (
"context"
"fmt"
"sync"
"time"
schemaV1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/schema/v1"
"github.com/bufbuild/connect-go"
"github.com/open-feature/flagd/core/pkg/eval"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/otel"
"github.com/open-feature/flagd/core/pkg/service"
"github.com/rs/xid"
"go.uber.org/zap"
"google.golang.org/protobuf/types/known/structpb"
)
type FlagEvaluationService struct {
logger *logger.Logger
eval eval.IEvaluator
metrics *otel.MetricsRecorder
eventingConfiguration *eventingConfiguration
}
type eventingConfiguration struct {
mu *sync.RWMutex
subs map[interface{}]chan service.Notification
}
func NewFlagEvaluationService(log *logger.Logger,
eval eval.IEvaluator, metricsRecorder *otel.MetricsRecorder,
) *FlagEvaluationService {
return &FlagEvaluationService{
logger: log,
eval: eval,
metrics: metricsRecorder,
eventingConfiguration: &eventingConfiguration{
subs: make(map[interface{}]chan service.Notification),
mu: &sync.RWMutex{},
},
}
}
func (s *FlagEvaluationService) ResolveAll(
ctx context.Context,
req *connect.Request[schemaV1.ResolveAllRequest],
) (*connect.Response[schemaV1.ResolveAllResponse], error) {
reqID := xid.New().String()
defer s.logger.ClearFields(reqID)
res := &schemaV1.ResolveAllResponse{
Flags: make(map[string]*schemaV1.AnyFlag),
}
values := s.eval.ResolveAllValues(reqID, req.Msg.GetContext())
for _, value := range values {
// register the impression for each flag evaluated
s.metrics.Impressions(ctx, value.FlagKey, value.Variant)
switch v := value.Value.(type) {
case bool:
res.Flags[value.FlagKey] = &schemaV1.AnyFlag{
Reason: value.Reason,
Variant: value.Variant,
Value: &schemaV1.AnyFlag_BoolValue{
BoolValue: v,
},
}
case string:
res.Flags[value.FlagKey] = &schemaV1.AnyFlag{
Reason: value.Reason,
Variant: value.Variant,
Value: &schemaV1.AnyFlag_StringValue{
StringValue: v,
},
}
case float64:
res.Flags[value.FlagKey] = &schemaV1.AnyFlag{
Reason: value.Reason,
Variant: value.Variant,
Value: &schemaV1.AnyFlag_DoubleValue{
DoubleValue: v,
},
}
case map[string]any:
val, err := structpb.NewStruct(v)
if err != nil {
s.logger.ErrorWithID(reqID, fmt.Sprintf("struct response construction: %v", err))
continue
}
res.Flags[value.FlagKey] = &schemaV1.AnyFlag{
Reason: value.Reason,
Variant: value.Variant,
Value: &schemaV1.AnyFlag_ObjectValue{
ObjectValue: val,
},
}
}
}
return connect.NewResponse(res), nil
}
func (s *FlagEvaluationService) EventStream(
ctx context.Context,
req *connect.Request[schemaV1.EventStreamRequest],
stream *connect.ServerStream[schemaV1.EventStreamResponse],
) error {
requestNotificationChan := make(chan service.Notification, 1)
s.eventingConfiguration.mu.Lock()
s.eventingConfiguration.subs[req] = requestNotificationChan
s.eventingConfiguration.mu.Unlock()
defer func() {
s.eventingConfiguration.mu.Lock()
delete(s.eventingConfiguration.subs, req)
s.eventingConfiguration.mu.Unlock()
}()
requestNotificationChan <- service.Notification{
Type: service.ProviderReady,
}
for {
select {
case <-time.After(20 * time.Second):
err := stream.Send(&schemaV1.EventStreamResponse{
Type: string(service.KeepAlive),
})
if err != nil {
s.logger.Error(err.Error())
}
case notification := <-requestNotificationChan:
d, err := structpb.NewStruct(notification.Data)
if err != nil {
s.logger.Error(err.Error())
}
err = stream.Send(&schemaV1.EventStreamResponse{
Type: string(notification.Type),
Data: d,
})
if err != nil {
s.logger.Error(err.Error())
}
case <-ctx.Done():
return nil
}
}
}
func resolve[T constraints](
goCtx context.Context,
logger *logger.Logger,
resolver func(reqID, flagKey string, ctx *structpb.Struct) (T, string, string, error),
flagKey string,
ctx *structpb.Struct,
resp response[T],
metrics *otel.MetricsRecorder,
) error {
reqID := xid.New().String()
defer logger.ClearFields(reqID)
logger.WriteFields(
reqID,
zap.String("flag-key", flagKey),
zap.Strings("context-keys", formatContextKeys(ctx)),
)
result, variant, reason, evalErr := resolver(reqID, flagKey, ctx)
if evalErr != nil {
logger.WarnWithID(reqID, fmt.Sprintf("returning error response, reason: %v", evalErr))
reason = model.ErrorReason
evalErr = errFormat(evalErr)
} else {
metrics.Impressions(goCtx, flagKey, variant)
}
if err := resp.SetResult(result, variant, reason); err != nil && evalErr == nil {
logger.ErrorWithID(reqID, err.Error())
return err
}
return evalErr
}
func (s *FlagEvaluationService) ResolveBoolean(
ctx context.Context,
req *connect.Request[schemaV1.ResolveBooleanRequest],
) (*connect.Response[schemaV1.ResolveBooleanResponse], error) {
res := connect.NewResponse(&schemaV1.ResolveBooleanResponse{})
err := resolve[bool](
ctx,
s.logger,
s.eval.ResolveBooleanValue,
req.Msg.GetFlagKey(),
req.Msg.GetContext(),
&booleanResponse{res},
s.metrics,
)
return res, err
}
func (s *FlagEvaluationService) ResolveString(
ctx context.Context,
req *connect.Request[schemaV1.ResolveStringRequest],
) (*connect.Response[schemaV1.ResolveStringResponse], error) {
res := connect.NewResponse(&schemaV1.ResolveStringResponse{})
err := resolve[string](
ctx,
s.logger,
s.eval.ResolveStringValue,
req.Msg.GetFlagKey(),
req.Msg.GetContext(),
&stringResponse{res},
s.metrics,
)
return res, err
}
func (s *FlagEvaluationService) ResolveInt(
ctx context.Context,
req *connect.Request[schemaV1.ResolveIntRequest],
) (*connect.Response[schemaV1.ResolveIntResponse], error) {
res := connect.NewResponse(&schemaV1.ResolveIntResponse{})
err := resolve[int64](
ctx,
s.logger,
s.eval.ResolveIntValue,
req.Msg.GetFlagKey(),
req.Msg.GetContext(),
&intResponse{res},
s.metrics,
)
return res, err
}
func (s *FlagEvaluationService) ResolveFloat(
ctx context.Context,
req *connect.Request[schemaV1.ResolveFloatRequest],
) (*connect.Response[schemaV1.ResolveFloatResponse], error) {
res := connect.NewResponse(&schemaV1.ResolveFloatResponse{})
err := resolve[float64](
ctx,
s.logger,
s.eval.ResolveFloatValue,
req.Msg.GetFlagKey(),
req.Msg.GetContext(),
&floatResponse{res},
s.metrics,
)
return res, err
}
func (s *FlagEvaluationService) ResolveObject(
ctx context.Context,
req *connect.Request[schemaV1.ResolveObjectRequest],
) (*connect.Response[schemaV1.ResolveObjectResponse], error) {
res := connect.NewResponse(&schemaV1.ResolveObjectResponse{})
err := resolve[map[string]any](
ctx,
s.logger,
s.eval.ResolveObjectValue,
req.Msg.GetFlagKey(),
req.Msg.GetContext(),
&objectResponse{res},
s.metrics,
)
return res, err
}
func formatContextKeys(context *structpb.Struct) []string {
res := []string{}
for k := range context.AsMap() {
res = append(res, k)
}
return res
}
func errFormat(err error) error {
switch err.Error() {
case model.FlagNotFoundErrorCode:
return connect.NewError(connect.CodeNotFound, fmt.Errorf("%s, %s", ErrorPrefix, err.Error()))
case model.TypeMismatchErrorCode:
return connect.NewError(connect.CodeInvalidArgument, fmt.Errorf("%s, %s", ErrorPrefix, err.Error()))
case model.DisabledReason:
return connect.NewError(connect.CodeUnavailable, fmt.Errorf("%s, %s", ErrorPrefix, err.Error()))
case model.ParseErrorCode:
return connect.NewError(connect.CodeDataLoss, fmt.Errorf("%s, %s", ErrorPrefix, err.Error()))
}
return err
}

View File

@ -1,77 +0,0 @@
package service
import (
"fmt"
schemaV1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/schema/v1"
"github.com/bufbuild/connect-go"
"google.golang.org/protobuf/types/known/structpb"
)
type response[T constraints] interface {
SetResult(value T, variant, reason string) error
}
type constraints interface {
bool | string | map[string]any | float64 | int64
}
type booleanResponse struct {
*connect.Response[schemaV1.ResolveBooleanResponse]
}
func (r *booleanResponse) SetResult(value bool, variant, reason string) error {
r.Msg.Value = value
r.Msg.Variant = variant
r.Msg.Reason = reason
return nil
}
type stringResponse struct {
*connect.Response[schemaV1.ResolveStringResponse]
}
func (r *stringResponse) SetResult(value, variant, reason string) error {
r.Msg.Value = value
r.Msg.Variant = variant
r.Msg.Reason = reason
return nil
}
type floatResponse struct {
*connect.Response[schemaV1.ResolveFloatResponse]
}
func (r *floatResponse) SetResult(value float64, variant, reason string) error {
r.Msg.Value = value
r.Msg.Variant = variant
r.Msg.Reason = reason
return nil
}
type intResponse struct {
*connect.Response[schemaV1.ResolveIntResponse]
}
func (r *intResponse) SetResult(value int64, variant, reason string) error {
r.Msg.Value = value
r.Msg.Variant = variant
r.Msg.Reason = reason
return nil
}
type objectResponse struct {
*connect.Response[schemaV1.ResolveObjectResponse]
}
func (r *objectResponse) SetResult(value map[string]any, variant, reason string) error {
r.Msg.Reason = reason
val, err := structpb.NewStruct(value)
if err != nil {
return fmt.Errorf("struct response construction: %w", err)
}
r.Msg.Value = val
r.Msg.Variant = variant
return nil
}

View File

@ -2,14 +2,16 @@ package service
import (
"context"
"time"
"github.com/open-feature/flagd/core/pkg/eval"
"connectrpc.com/connect"
)
type NotificationType string
const (
ConfigurationChange NotificationType = "configuration_change"
Shutdown NotificationType = "provider_shutdown"
ProviderReady NotificationType = "provider_ready"
KeepAlive NotificationType = "keep_alive"
)
@ -22,14 +24,18 @@ type Notification struct {
type ReadinessProbe func() bool
type Configuration struct {
ReadinessProbe ReadinessProbe
Port uint16
MetricsPort uint16
ServiceName string
CertPath string
KeyPath string
SocketPath string
CORS []string
ReadinessProbe ReadinessProbe
Port uint16
ManagementPort uint16
ServiceName string
CertPath string
KeyPath string
SocketPath string
CORS []string
Options []connect.HandlerOption
ContextValues map[string]any
HeaderToContextKeyMappings map[string]string
StreamDeadline time.Duration
}
/*
@ -37,8 +43,9 @@ IFlagEvaluationService implementations define handlers for a particular transpor
which call the IEvaluator implementation.
*/
type IFlagEvaluationService interface {
Serve(ctx context.Context, eval eval.IEvaluator, svcConf Configuration) error
Serve(ctx context.Context, svcConf Configuration) error
Notify(n Notification)
Shutdown()
}
/*

View File

@ -0,0 +1,122 @@
package ofrep
import (
"fmt"
"github.com/open-feature/flagd/core/pkg/evaluator"
"github.com/open-feature/flagd/core/pkg/model"
)
type Request struct {
Context interface{} `json:"context"`
}
type EvaluationSuccess struct {
Value interface{} `json:"value"`
Key string `json:"key"`
Reason string `json:"reason"`
Variant string `json:"variant"`
Metadata model.Metadata `json:"metadata"`
}
type BulkEvaluationResponse struct {
Flags []interface{} `json:"flags"`
Metadata model.Metadata `json:"metadata"`
}
type EvaluationError struct {
Key string `json:"key"`
ErrorCode string `json:"errorCode"`
ErrorDetails string `json:"errorDetails"`
Metadata model.Metadata `json:"metadata"`
}
type BulkEvaluationError struct {
ErrorCode string `json:"errorCode"`
ErrorDetails string `json:"errorDetails"`
Metadata model.Metadata `json:"metadata"`
}
type InternalError struct {
ErrorDetails string `json:"errorDetails"`
}
func BulkEvaluationResponseFrom(resolutions []evaluator.AnyValue, metadata model.Metadata) BulkEvaluationResponse {
evaluations := make([]interface{}, 0)
for _, value := range resolutions {
if value.Error != nil {
_, evaluationError := EvaluationErrorResponseFrom(value)
evaluations = append(evaluations, evaluationError)
} else {
evaluations = append(evaluations, SuccessResponseFrom(value))
}
}
return BulkEvaluationResponse{
evaluations,
metadata,
}
}
func SuccessResponseFrom(result evaluator.AnyValue) EvaluationSuccess {
return EvaluationSuccess{
Value: result.Value,
Key: result.FlagKey,
Reason: result.Reason,
Variant: result.Variant,
Metadata: result.Metadata,
}
}
func ContextErrorResponseFrom(key string) EvaluationError {
return EvaluationError{
Key: key,
ErrorCode: model.InvalidContextCode,
ErrorDetails: "Provider context is not valid",
}
}
func BulkEvaluationContextError() BulkEvaluationError {
return BulkEvaluationError{
ErrorCode: model.InvalidContextCode,
ErrorDetails: "Provider context is not valid",
}
}
func BulkEvaluationContextErrorFrom(code string, details string) BulkEvaluationError {
return BulkEvaluationError{
ErrorCode: code,
ErrorDetails: details,
}
}
func EvaluationErrorResponseFrom(result evaluator.AnyValue) (int, EvaluationError) {
payload := EvaluationError{
Key: result.FlagKey,
Metadata: result.Metadata,
}
status := 400
switch result.Error.Error() {
case model.FlagNotFoundErrorCode:
status = 404
payload.ErrorCode = model.FlagNotFoundErrorCode
payload.ErrorDetails = fmt.Sprintf("flag `%s` does not exist", result.FlagKey)
case model.FlagDisabledErrorCode:
status = 404
payload.ErrorCode = model.FlagNotFoundErrorCode
payload.ErrorDetails = fmt.Sprintf("flag `%s` is disabled", result.FlagKey)
case model.ParseErrorCode:
payload.ErrorCode = model.ParseErrorCode
payload.ErrorDetails = fmt.Sprintf("error parsing the flag `%s`", result.FlagKey)
case model.GeneralErrorCode:
fallthrough
default:
payload.ErrorCode = model.GeneralErrorCode
payload.ErrorDetails = "error processing the flag for evaluation"
}
return status, payload
}

View File

@ -0,0 +1,153 @@
package ofrep
import (
"encoding/json"
"errors"
"reflect"
"testing"
"github.com/open-feature/flagd/core/pkg/evaluator"
"github.com/open-feature/flagd/core/pkg/model"
)
func TestSuccessResult(t *testing.T) {
// given
value := evaluator.AnyValue{
Value: false,
Variant: "false",
Reason: model.StaticReason,
FlagKey: "key",
Metadata: map[string]interface{}{
"key": "value",
},
}
// when
evaluationSuccess := SuccessResponseFrom(value)
if evaluationSuccess.Key != value.FlagKey {
t.Errorf("expected %v, got %v", value.FlagKey, evaluationSuccess.Key)
}
if evaluationSuccess.Value != value.Value {
t.Errorf("expected %v, got %v", value.Value, evaluationSuccess.Value)
}
if evaluationSuccess.Variant != value.Variant {
t.Errorf("expected %v, got %v", value.Variant, evaluationSuccess.Variant)
}
if evaluationSuccess.Reason != value.Reason {
t.Errorf("expected %v, got %v", value.Reason, evaluationSuccess.Reason)
}
if !reflect.DeepEqual(evaluationSuccess.Metadata, value.Metadata) {
t.Errorf("metadata mismatch")
}
}
func TestBulkEvaluationResponse(t *testing.T) {
tests := []struct {
name string
input []evaluator.AnyValue
marshalledOutput string
}{
{
name: "empty input",
input: nil,
marshalledOutput: "{\"flags\":[],\"metadata\":{}}",
},
{
name: "valid values",
input: []evaluator.AnyValue{
{
Value: false,
Variant: "false",
Reason: model.StaticReason,
FlagKey: "key",
Metadata: map[string]interface{}{
"key": "value",
},
},
{
Value: false,
Variant: "false",
Reason: model.ErrorReason,
FlagKey: "errorFlag",
Error: errors.New(model.FlagNotFoundErrorCode),
Metadata: map[string]interface{}{},
},
},
marshalledOutput: "{\"flags\":[{\"value\":false,\"key\":\"key\",\"reason\":\"STATIC\",\"variant\":\"false\",\"metadata\":{\"key\":\"value\"}},{\"key\":\"errorFlag\",\"errorCode\":\"FLAG_NOT_FOUND\",\"errorDetails\":\"flag `errorFlag` does not exist\",\"metadata\":{}}],\"metadata\":{}}",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
response := BulkEvaluationResponseFrom(test.input, model.Metadata{})
marshal, err := json.Marshal(response)
if err != nil {
t.Errorf("error marshalling the response: %v", err)
}
if test.marshalledOutput != string(marshal) {
t.Errorf("expected %s, got %s", test.marshalledOutput, string(marshal))
}
})
}
}
func TestErrorStatus(t *testing.T) {
tests := []struct {
name string
modelError string
expectedStatus int
expectedCode string
}{
{
name: "parsing error",
modelError: model.ParseErrorCode,
expectedStatus: 400,
expectedCode: model.ParseErrorCode,
},
{
name: "flag disabled",
modelError: model.FlagDisabledErrorCode,
expectedStatus: 404,
expectedCode: model.FlagNotFoundErrorCode,
},
{
name: "general error",
modelError: model.GeneralErrorCode,
expectedStatus: 400,
expectedCode: model.GeneralErrorCode,
},
{
name: "flag not found",
modelError: model.FlagNotFoundErrorCode,
expectedStatus: 404,
expectedCode: model.FlagNotFoundErrorCode,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
status, evaluationError := EvaluationErrorResponseFrom(evaluator.AnyValue{
Value: "value",
Variant: "variant",
Reason: model.ErrorReason,
FlagKey: "key",
Error: errors.New(test.modelError),
})
if status != test.expectedStatus {
t.Errorf("expected status %d, but got %d", test.expectedStatus, status)
}
if evaluationError.ErrorCode != test.expectedCode {
t.Errorf("expected error code %s, but got %s", test.expectedCode, evaluationError.ErrorCode)
}
})
}
}

View File

@ -1,59 +0,0 @@
package sync
import (
"context"
syncv1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/sync/v1"
"github.com/bufbuild/connect-go"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
syncStore "github.com/open-feature/flagd/core/pkg/sync-store"
)
type handler struct {
syncStore *syncStore.SyncStore
logger *logger.Logger
}
func (l *handler) FetchAllFlags(ctx context.Context, req *connect.Request[syncv1.FetchAllFlagsRequest]) (
*connect.Response[syncv1.FetchAllFlagsResponse],
error,
) {
data, err := l.syncStore.FetchAllFlags(ctx, req, req.Msg.GetSelector())
if err != nil {
return connect.NewResponse(&syncv1.FetchAllFlagsResponse{}), err
}
return connect.NewResponse(&syncv1.FetchAllFlagsResponse{
FlagConfiguration: data.FlagData,
}), nil
}
func (l *handler) SyncFlags(
ctx context.Context,
req *connect.Request[syncv1.SyncFlagsRequest],
stream *connect.ServerStream[syncv1.SyncFlagsResponse],
) error {
errChan := make(chan error)
dataSync := make(chan sync.DataSync)
l.syncStore.RegisterSubscription(ctx, req.Msg.GetSelector(), req, dataSync, errChan)
for {
select {
case e := <-errChan:
return e
case d := <-dataSync:
if err := stream.Send(&syncv1.SyncFlagsResponse{
FlagConfiguration: d.FlagData,
State: dataSyncToGrpcState(d),
}); err != nil {
return err
}
case <-ctx.Done():
return nil
}
}
}
func dataSyncToGrpcState(s sync.DataSync) syncv1.SyncState {
return syncv1.SyncState(s.Type + 1)
}

View File

@ -1,126 +0,0 @@
package sync
import (
"context"
"errors"
"fmt"
"net"
"net/http"
"time"
rpc "buf.build/gen/go/open-feature/flagd/bufbuild/connect-go/sync/v1/syncv1connect"
"github.com/open-feature/flagd/core/pkg/logger"
iservice "github.com/open-feature/flagd/core/pkg/service"
syncStore "github.com/open-feature/flagd/core/pkg/sync-store"
"github.com/prometheus/client_golang/prometheus/promhttp"
"golang.org/x/net/http2"
"golang.org/x/net/http2/h2c"
"golang.org/x/sync/errgroup"
)
type Server struct {
server *http.Server
metricsServer *http.Server
Logger *logger.Logger
handler handler
config iservice.Configuration
}
func NewServer(ctx context.Context, logger *logger.Logger) *Server {
syncStore := syncStore.NewSyncStore(ctx, logger)
return &Server{
handler: handler{
logger: logger,
syncStore: syncStore,
},
Logger: logger,
}
}
func (s *Server) Serve(ctx context.Context, svcConf iservice.Configuration) error {
s.config = svcConf
g, gCtx := errgroup.WithContext(ctx)
g.Go(s.startServer)
g.Go(s.startMetricsServer)
g.Go(func() error {
<-gCtx.Done()
if s.server != nil {
if err := s.server.Shutdown(gCtx); err != nil {
return err
}
}
return nil
})
g.Go(func() error {
<-gCtx.Done()
if s.metricsServer != nil {
if err := s.metricsServer.Shutdown(gCtx); err != nil {
return err
}
}
return nil
})
g.Go(s.captureMetrics)
err := g.Wait()
if err != nil {
return err
}
return nil
}
func (s *Server) startServer() error {
var lis net.Listener
var err error
mux := http.NewServeMux()
address := fmt.Sprintf(":%d", s.config.Port)
lis, err = net.Listen("tcp", address)
if err != nil {
return err
}
path, handler := rpc.NewFlagSyncServiceHandler(&s.handler)
mux.Handle(path, handler)
s.server = &http.Server{
ReadHeaderTimeout: time.Second,
Handler: h2c.NewHandler(mux, &http2.Server{}),
}
if err := s.server.Serve(
lis,
); err != nil && !errors.Is(err, http.ErrServerClosed) {
return err
}
return nil
}
func (s *Server) startMetricsServer() error {
s.Logger.Info(fmt.Sprintf("binding metrics to %d", s.config.MetricsPort))
s.metricsServer = &http.Server{
ReadHeaderTimeout: 3 * time.Second,
Addr: fmt.Sprintf(":%d", s.config.MetricsPort),
}
s.metricsServer.Handler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path {
case "/healthz":
w.WriteHeader(http.StatusOK)
case "/readyz":
if s.config.ReadinessProbe() {
w.WriteHeader(http.StatusOK)
} else {
w.WriteHeader(http.StatusPreconditionFailed)
}
case "/metrics":
promhttp.Handler().ServeHTTP(w, r)
default:
w.WriteHeader(http.StatusNotFound)
}
})
if err := s.metricsServer.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
return err
}
return nil
}

View File

@ -1,268 +0,0 @@
package store
import (
"encoding/json"
"fmt"
"reflect"
"sync"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
)
type Flags struct {
mx sync.RWMutex
Flags map[string]model.Flag `json:"flags"`
FlagSources []string `json:"flagSources"`
}
func (f *Flags) hasPriority(stored string, new string) bool {
if stored == new {
return true
}
for i := len(f.FlagSources) - 1; i >= 0; i-- {
switch f.FlagSources[i] {
case stored:
return false
case new:
return true
}
}
return true
}
func NewFlags() *Flags {
return &Flags{Flags: map[string]model.Flag{}}
}
func (f *Flags) Set(key string, flag model.Flag) {
f.mx.Lock()
defer f.mx.Unlock()
f.Flags[key] = flag
}
func (f *Flags) Get(key string) (model.Flag, bool) {
f.mx.RLock()
defer f.mx.RUnlock()
flag, ok := f.Flags[key]
return flag, ok
}
func (f *Flags) Delete(key string) {
f.mx.Lock()
defer f.mx.Unlock()
delete(f.Flags, key)
}
func (f *Flags) String() (string, error) {
f.mx.RLock()
defer f.mx.RUnlock()
bytes, err := json.Marshal(f)
if err != nil {
return "", err
}
return string(bytes), nil
}
// GetAll returns a copy of the store's state (copy in order to be concurrency safe)
func (f *Flags) GetAll() map[string]model.Flag {
f.mx.RLock()
defer f.mx.RUnlock()
state := make(map[string]model.Flag, len(f.Flags))
for key, flag := range f.Flags {
state[key] = flag
}
return state
}
// Add new flags from source.
func (f *Flags) Add(logger *logger.Logger, source string, flags map[string]model.Flag) map[string]interface{} {
notifications := map[string]interface{}{}
for k, newFlag := range flags {
storedFlag, ok := f.Get(k)
if ok && !f.hasPriority(storedFlag.Source, source) {
logger.Debug(
fmt.Sprintf(
"not overwriting: flag %s from source %s does not have priority over %s",
k,
source,
storedFlag.Source,
),
)
continue
}
notifications[k] = map[string]interface{}{
"type": string(model.NotificationCreate),
"source": source,
}
// Store the new version of the flag
newFlag.Source = source
f.Set(k, newFlag)
}
return notifications
}
// Update existing flags from source.
func (f *Flags) Update(logger *logger.Logger, source string, flags map[string]model.Flag) map[string]interface{} {
notifications := map[string]interface{}{}
for k, flag := range flags {
storedFlag, ok := f.Get(k)
if !ok {
logger.Warn(
fmt.Sprintf("failed to update the flag, flag with key %s from source %s does not exist.",
k,
source))
continue
}
if !f.hasPriority(storedFlag.Source, source) {
logger.Debug(
fmt.Sprintf(
"not updating: flag %s from source %s does not have priority over %s",
k,
source,
storedFlag.Source,
),
)
continue
}
notifications[k] = map[string]interface{}{
"type": string(model.NotificationUpdate),
"source": source,
}
flag.Source = source
f.Set(k, flag)
}
return notifications
}
// DeleteFlags matching flags from source.
func (f *Flags) DeleteFlags(logger *logger.Logger, source string, flags map[string]model.Flag) map[string]interface{} {
logger.Debug(
fmt.Sprintf(
"store resync triggered: delete event from source %s",
source,
),
)
notifications := map[string]interface{}{}
if len(flags) == 0 {
allFlags := f.GetAll()
for key, flag := range allFlags {
if flag.Source != source {
continue
}
notifications[key] = map[string]interface{}{
"type": string(model.NotificationDelete),
"source": source,
}
f.Delete(key)
}
}
for k := range flags {
flag, ok := f.Get(k)
if ok {
if !f.hasPriority(flag.Source, source) {
logger.Debug(
fmt.Sprintf(
"not deleting: flag %s from source %s cannot be deleted by %s",
k,
flag.Source,
source,
),
)
continue
}
notifications[k] = map[string]interface{}{
"type": string(model.NotificationDelete),
"source": source,
}
f.Delete(k)
} else {
logger.Warn(
fmt.Sprintf("failed to remove flag, flag with key %s from source %s does not exist.",
k,
source))
}
}
return notifications
}
// Merge provided flags from source with currently stored flags.
func (f *Flags) Merge(
logger *logger.Logger,
source string,
flags map[string]model.Flag,
) (map[string]interface{}, bool) {
notifications := map[string]interface{}{}
resyncRequired := false
f.mx.Lock()
for k, v := range f.Flags {
if v.Source == source {
if _, ok := flags[k]; !ok {
// flag has been deleted
delete(f.Flags, k)
notifications[k] = map[string]interface{}{
"type": string(model.NotificationDelete),
"source": source,
}
resyncRequired = true
logger.Debug(
fmt.Sprintf(
"store resync triggered: flag %s has been deleted from source %s",
k, source,
),
)
continue
}
}
}
f.mx.Unlock()
for k, newFlag := range flags {
newFlag.Source = source
storedFlag, ok := f.Get(k)
if ok {
if !f.hasPriority(storedFlag.Source, source) {
logger.Debug(
fmt.Sprintf(
"not merging: flag %s from source %s does not have priority over %s",
k, source, storedFlag.Source,
),
)
continue
}
if reflect.DeepEqual(storedFlag, newFlag) {
continue
}
}
if !ok {
notifications[k] = map[string]interface{}{
"type": string(model.NotificationCreate),
"source": source,
}
} else {
notifications[k] = map[string]interface{}{
"type": string(model.NotificationUpdate),
"source": source,
}
}
// Store the new version of the flag
f.Set(k, newFlag)
}
return notifications, resyncRequired
}

View File

@ -1,552 +0,0 @@
package store
import (
"testing"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/stretchr/testify/require"
)
func TestHasPriority(t *testing.T) {
tests := []struct {
name string
currentState *Flags
storedSource string
newSource string
hasPriority bool
}{
{
name: "same source",
currentState: &Flags{},
storedSource: "A",
newSource: "A",
hasPriority: true,
},
{
name: "no priority",
currentState: &Flags{
FlagSources: []string{
"B",
"A",
},
},
storedSource: "A",
newSource: "B",
hasPriority: false,
},
{
name: "priority",
currentState: &Flags{
FlagSources: []string{
"A",
"B",
},
},
storedSource: "A",
newSource: "B",
hasPriority: true,
},
{
name: "not in sources",
currentState: &Flags{
FlagSources: []string{
"A",
"B",
},
},
storedSource: "C",
newSource: "D",
hasPriority: true,
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
p := tt.currentState.hasPriority(tt.storedSource, tt.newSource)
require.Equal(t, p, tt.hasPriority)
})
}
}
func TestMergeFlags(t *testing.T) {
t.Parallel()
tests := []struct {
name string
current *Flags
new map[string]model.Flag
newSource string
want *Flags
wantNotifs map[string]interface{}
wantResync bool
}{
{
name: "both nil",
current: &Flags{
Flags: nil,
},
new: nil,
want: &Flags{Flags: map[string]model.Flag{}},
wantNotifs: map[string]interface{}{},
},
{
name: "both empty flags",
current: &Flags{
Flags: map[string]model.Flag{},
},
new: map[string]model.Flag{},
want: &Flags{Flags: map[string]model.Flag{}},
wantNotifs: map[string]interface{}{},
},
{
name: "empty current",
current: &Flags{
Flags: nil,
},
new: map[string]model.Flag{},
want: &Flags{Flags: map[string]model.Flag{}},
wantNotifs: map[string]interface{}{},
},
{
name: "empty new",
current: &Flags{
Flags: map[string]model.Flag{},
},
new: nil,
want: &Flags{Flags: map[string]model.Flag{}},
wantNotifs: map[string]interface{}{},
},
{
name: "extra fields on each",
current: &Flags{
Flags: map[string]model.Flag{
"waka": {
DefaultVariant: "off",
Source: "1",
},
},
},
new: map[string]model.Flag{
"paka": {
DefaultVariant: "on",
},
},
newSource: "2",
want: &Flags{Flags: map[string]model.Flag{
"waka": {
DefaultVariant: "off",
Source: "1",
},
"paka": {
DefaultVariant: "on",
Source: "2",
},
}},
wantNotifs: map[string]interface{}{
"paka": map[string]interface{}{"type": "write", "source": "2"},
},
},
{
name: "override",
current: &Flags{
Flags: map[string]model.Flag{"waka": {DefaultVariant: "off"}},
},
new: map[string]model.Flag{
"waka": {DefaultVariant: "on"},
"paka": {DefaultVariant: "on"},
},
want: &Flags{Flags: map[string]model.Flag{
"waka": {DefaultVariant: "on"},
"paka": {DefaultVariant: "on"},
}},
wantNotifs: map[string]interface{}{
"waka": map[string]interface{}{"type": "update", "source": ""},
"paka": map[string]interface{}{"type": "write", "source": ""},
},
},
{
name: "identical",
current: &Flags{
Flags: map[string]model.Flag{"hello": {DefaultVariant: "off"}},
},
new: map[string]model.Flag{
"hello": {DefaultVariant: "off"},
},
want: &Flags{Flags: map[string]model.Flag{
"hello": {DefaultVariant: "off"},
}},
wantNotifs: map[string]interface{}{},
},
{
name: "deleted flag",
current: &Flags{
Flags: map[string]model.Flag{"hello": {DefaultVariant: "off", Source: "A"}},
},
new: map[string]model.Flag{},
newSource: "A",
want: &Flags{Flags: map[string]model.Flag{}},
wantNotifs: map[string]interface{}{
"hello": map[string]interface{}{"type": "delete", "source": "A"},
},
wantResync: true,
},
{
name: "no merge priority",
current: &Flags{
FlagSources: []string{
"B",
"A",
},
Flags: map[string]model.Flag{
"hello": {
DefaultVariant: "off",
Source: "A",
},
},
},
new: map[string]model.Flag{
"hello": {DefaultVariant: "off"},
},
newSource: "B",
want: &Flags{
FlagSources: []string{
"B",
"A",
},
Flags: map[string]model.Flag{
"hello": {
DefaultVariant: "off",
Source: "A",
},
},
},
wantNotifs: map[string]interface{}{},
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
gotNotifs, resyncRequired := tt.current.Merge(logger.NewLogger(nil, false), tt.newSource, tt.new)
require.Equal(t, tt.want, tt.want)
require.Equal(t, tt.wantNotifs, gotNotifs)
require.Equal(t, tt.wantResync, resyncRequired)
})
}
}
func TestFlags_Add(t *testing.T) {
mockLogger := logger.NewLogger(nil, false)
mockSource := "source"
mockOverrideSource := "source-2"
type request struct {
source string
flags map[string]model.Flag
}
tests := []struct {
name string
storedState *Flags
addRequest request
expectedState *Flags
expectedNotificationKeys []string
}{
{
name: "Add success",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
},
},
addRequest: request{
source: mockSource,
flags: map[string]model.Flag{
"B": {Source: mockSource},
},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
"B": {Source: mockSource},
},
},
expectedNotificationKeys: []string{"B"},
},
{
name: "Add multiple success",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
},
},
addRequest: request{
source: mockSource,
flags: map[string]model.Flag{
"B": {Source: mockSource},
"C": {Source: mockSource},
},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
"B": {Source: mockSource},
"C": {Source: mockSource},
},
},
expectedNotificationKeys: []string{"B", "C"},
},
{
name: "Add success - conflict and override",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
},
},
addRequest: request{
source: mockOverrideSource,
flags: map[string]model.Flag{
"A": {Source: mockOverrideSource},
},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockOverrideSource},
},
},
expectedNotificationKeys: []string{"A"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
messages := tt.storedState.Add(mockLogger, tt.addRequest.source, tt.addRequest.flags)
require.Equal(t, tt.storedState, tt.expectedState)
for k := range messages {
require.Containsf(t, tt.expectedNotificationKeys, k,
"Message key %s not present in the expected key list", k)
}
})
}
}
func TestFlags_Update(t *testing.T) {
mockLogger := logger.NewLogger(nil, false)
mockSource := "source"
mockOverrideSource := "source-2"
type request struct {
source string
flags map[string]model.Flag
}
tests := []struct {
name string
storedState *Flags
UpdateRequest request
expectedState *Flags
expectedNotificationKeys []string
}{
{
name: "Update success",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource, DefaultVariant: "True"},
},
},
UpdateRequest: request{
source: mockSource,
flags: map[string]model.Flag{
"A": {Source: mockSource, DefaultVariant: "False"},
},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource, DefaultVariant: "False"},
},
},
expectedNotificationKeys: []string{"A"},
},
{
name: "Update multiple success",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource, DefaultVariant: "True"},
"B": {Source: mockSource, DefaultVariant: "True"},
},
},
UpdateRequest: request{
source: mockSource,
flags: map[string]model.Flag{
"A": {Source: mockSource, DefaultVariant: "False"},
"B": {Source: mockSource, DefaultVariant: "False"},
},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource, DefaultVariant: "False"},
"B": {Source: mockSource, DefaultVariant: "False"},
},
},
expectedNotificationKeys: []string{"A", "B"},
},
{
name: "Update success - conflict and override",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource, DefaultVariant: "True"},
},
},
UpdateRequest: request{
source: mockOverrideSource,
flags: map[string]model.Flag{
"A": {Source: mockOverrideSource, DefaultVariant: "True"},
},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockOverrideSource, DefaultVariant: "True"},
},
},
expectedNotificationKeys: []string{"A"},
},
{
name: "Update fail",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
},
},
UpdateRequest: request{
source: mockSource,
flags: map[string]model.Flag{
"B": {Source: mockSource},
},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
},
},
expectedNotificationKeys: []string{},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
messages := tt.storedState.Update(mockLogger, tt.UpdateRequest.source, tt.UpdateRequest.flags)
require.Equal(t, tt.storedState, tt.expectedState)
for k := range messages {
require.Containsf(t, tt.expectedNotificationKeys, k,
"Message key %s not present in the expected key list", k)
}
})
}
}
func TestFlags_Delete(t *testing.T) {
mockLogger := logger.NewLogger(nil, false)
mockSource := "source"
mockSource2 := "source2"
tests := []struct {
name string
storedState *Flags
deleteRequest map[string]model.Flag
expectedState *Flags
expectedNotificationKeys []string
}{
{
name: "Remove success",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
"B": {Source: mockSource},
"C": {Source: mockSource2},
},
FlagSources: []string{
mockSource,
mockSource2,
},
},
deleteRequest: map[string]model.Flag{
"A": {Source: mockSource},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"B": {Source: mockSource},
"C": {Source: mockSource2},
},
FlagSources: []string{
mockSource,
mockSource2,
},
},
expectedNotificationKeys: []string{"A"},
},
{
name: "Nothing to remove",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
"B": {Source: mockSource},
"C": {Source: mockSource2},
},
FlagSources: []string{
mockSource,
mockSource2,
},
},
deleteRequest: map[string]model.Flag{
"C": {Source: mockSource},
},
expectedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
"B": {Source: mockSource},
"C": {Source: mockSource2},
},
FlagSources: []string{
mockSource,
mockSource2,
},
},
expectedNotificationKeys: []string{},
},
{
name: "Remove all",
storedState: &Flags{
Flags: map[string]model.Flag{
"A": {Source: mockSource},
"B": {Source: mockSource},
"C": {Source: mockSource2},
},
},
deleteRequest: map[string]model.Flag{},
expectedState: &Flags{
Flags: map[string]model.Flag{
"C": {Source: mockSource2},
},
},
expectedNotificationKeys: []string{"A", "B"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
messages := tt.storedState.DeleteFlags(mockLogger, mockSource, tt.deleteRequest)
require.Equal(t, tt.storedState, tt.expectedState)
for k := range messages {
require.Containsf(t, tt.expectedNotificationKeys, k,
"Message key %s not present in the expected key list", k)
}
})
}
}

133
core/pkg/store/query.go Normal file
View File

@ -0,0 +1,133 @@
package store
import (
"maps"
"sort"
"strings"
uuid "github.com/google/uuid"
"github.com/open-feature/flagd/core/pkg/model"
)
// flags table and index constants
const flagsTable = "flags"
const idIndex = "id"
const keyIndex = "key"
const sourceIndex = "source"
const priorityIndex = "priority"
const flagSetIdIndex = "flagSetId"
// compound indices; maintain sub-indexes alphabetically; order matters; these must match what's generated in the SelectorMapToQuery func.
const flagSetIdSourceCompoundIndex = flagSetIdIndex + "+" + sourceIndex
const keySourceCompoundIndex = keyIndex + "+" + sourceIndex
const flagSetIdKeySourceCompoundIndex = flagSetIdIndex + "+" + keyIndex + "+" + sourceIndex
// flagSetId defaults to a UUID generated at startup to make our queries consistent
// any flag without a "flagSetId" is assigned this one; it's never exposed externally
var nilFlagSetId = uuid.New().String()
// A selector represents a set of constraints used to query the store.
type Selector struct {
indexMap map[string]string
}
// NewSelector creates a new Selector from a selector expression string.
// For example, to select flags from source "./mySource" and flagSetId "1234", use the expression:
// "source=./mySource,flagSetId=1234"
func NewSelector(selectorExpression string) Selector {
return Selector{
indexMap: expressionToMap(selectorExpression),
}
}
func expressionToMap(sExp string) map[string]string {
selectorMap := make(map[string]string)
if sExp == "" {
return selectorMap
}
if strings.Index(sExp, "=") == -1 {
// if no '=' is found, treat the whole string as as source (backwards compatibility)
// we may may support interpreting this as a flagSetId in the future as an option
selectorMap[sourceIndex] = sExp
return selectorMap
}
// Split the selector by commas
pairs := strings.Split(sExp, ",")
for _, pair := range pairs {
// Split each pair by the first equal sign
parts := strings.Split(pair, "=")
if len(parts) == 2 {
key := parts[0]
value := parts[1]
selectorMap[key] = value
}
}
return selectorMap
}
func (s Selector) WithIndex(key string, value string) Selector {
m := maps.Clone(s.indexMap)
m[key] = value
return Selector{
indexMap: m,
}
}
func (s *Selector) IsEmpty() bool {
return s == nil || len(s.indexMap) == 0
}
// SelectorMapToQuery converts the selector map to an indexId and constraints for querying the store.
// For a given index, a specific order and number of constraints are required.
// Both the indexId and constraints are generated based on the keys present in the selector's internal map.
func (s Selector) ToQuery() (indexId string, constraints []interface{}) {
if len(s.indexMap) == 2 && s.indexMap[flagSetIdIndex] != "" && s.indexMap[keyIndex] != "" {
// special case for flagSetId and key (this is the "id" index)
return idIndex, []interface{}{s.indexMap[flagSetIdIndex], s.indexMap[keyIndex]}
}
qs := []string{}
keys := make([]string, 0, len(s.indexMap))
for key := range s.indexMap {
keys = append(keys, key)
}
sort.Strings(keys)
for _, key := range keys {
indexId += key + "+"
qs = append(qs, s.indexMap[key])
}
indexId = strings.TrimSuffix(indexId, "+")
// Convert []string to []interface{}
c := make([]interface{}, 0, len(qs))
for _, v := range qs {
c = append(c, v)
}
constraints = c
return indexId, constraints
}
// SelectorToMetadata converts the selector's internal map to metadata for logging or tracing purposes.
// Only includes known indices to avoid leaking sensitive information, and is usually returned as the "top level" metadata
func (s *Selector) ToMetadata() model.Metadata {
meta := model.Metadata{}
if s == nil || s.indexMap == nil {
return meta
}
if s.indexMap[flagSetIdIndex] != "" {
meta[flagSetIdIndex] = s.indexMap[flagSetIdIndex]
}
if s.indexMap[sourceIndex] != "" {
meta[sourceIndex] = s.indexMap[sourceIndex]
}
return meta
}

View File

@ -0,0 +1,193 @@
package store
import (
"reflect"
"testing"
"github.com/open-feature/flagd/core/pkg/model"
)
func TestSelector_IsEmpty(t *testing.T) {
tests := []struct {
name string
selector *Selector
wantEmpty bool
}{
{
name: "nil selector",
selector: nil,
wantEmpty: true,
},
{
name: "nil indexMap",
selector: &Selector{indexMap: nil},
wantEmpty: true,
},
{
name: "empty indexMap",
selector: &Selector{indexMap: map[string]string{}},
wantEmpty: true,
},
{
name: "non-empty indexMap",
selector: &Selector{indexMap: map[string]string{"source": "abc"}},
wantEmpty: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.selector.IsEmpty()
if got != tt.wantEmpty {
t.Errorf("IsEmpty() = %v, want %v", got, tt.wantEmpty)
}
})
}
}
func TestSelector_WithIndex(t *testing.T) {
oldS := Selector{indexMap: map[string]string{"source": "abc"}}
newS := oldS.WithIndex("flagSetId", "1234")
if newS.indexMap["source"] != "abc" {
t.Errorf("WithIndex did not preserve existing keys")
}
if newS.indexMap["flagSetId"] != "1234" {
t.Errorf("WithIndex did not add new key")
}
// Ensure original is unchanged
if _, ok := oldS.indexMap["flagSetId"]; ok {
t.Errorf("WithIndex mutated original selector")
}
}
func TestSelector_ToQuery(t *testing.T) {
tests := []struct {
name string
selector Selector
wantIndex string
wantConstr []interface{}
}{
{
name: "flagSetId and key primary index special case",
selector: Selector{indexMap: map[string]string{"flagSetId": "fsid", "key": "myKey"}},
wantIndex: "id",
wantConstr: []interface{}{"fsid", "myKey"},
},
{
name: "multiple keys sorted",
selector: Selector{indexMap: map[string]string{"source": "src", "flagSetId": "fsid"}},
wantIndex: "flagSetId+source",
wantConstr: []interface{}{"fsid", "src"},
},
{
name: "single key",
selector: Selector{indexMap: map[string]string{"source": "src"}},
wantIndex: "source",
wantConstr: []interface{}{"src"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
gotIndex, gotConstr := tt.selector.ToQuery()
if gotIndex != tt.wantIndex {
t.Errorf("ToQuery() index = %v, want %v", gotIndex, tt.wantIndex)
}
if !reflect.DeepEqual(gotConstr, tt.wantConstr) {
t.Errorf("ToQuery() constraints = %v, want %v", gotConstr, tt.wantConstr)
}
})
}
}
func TestSelector_ToMetadata(t *testing.T) {
tests := []struct {
name string
selector *Selector
want model.Metadata
}{
{
name: "nil selector",
selector: nil,
want: model.Metadata{},
},
{
name: "nil indexMap",
selector: &Selector{indexMap: nil},
want: model.Metadata{},
},
{
name: "empty indexMap",
selector: &Selector{indexMap: map[string]string{}},
want: model.Metadata{},
},
{
name: "flagSetId only",
selector: &Selector{indexMap: map[string]string{"flagSetId": "fsid"}},
want: model.Metadata{"flagSetId": "fsid"},
},
{
name: "source only",
selector: &Selector{indexMap: map[string]string{"source": "src"}},
want: model.Metadata{"source": "src"},
},
{
name: "flagSetId and source",
selector: &Selector{indexMap: map[string]string{"flagSetId": "fsid", "source": "src"}},
want: model.Metadata{"flagSetId": "fsid", "source": "src"},
},
{
name: "flagSetId, source, and key (key should be ignored)",
selector: &Selector{indexMap: map[string]string{"flagSetId": "fsid", "source": "src", "key": "myKey"}},
want: model.Metadata{"flagSetId": "fsid", "source": "src"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.selector.ToMetadata()
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("ToMetadata() = %v, want %v", got, tt.want)
}
})
}
}
func TestNewSelector(t *testing.T) {
tests := []struct {
name string
input string
wantMap map[string]string
}{
{
name: "source and flagSetId",
input: "source=abc,flagSetId=1234",
wantMap: map[string]string{"source": "abc", "flagSetId": "1234"},
},
{
name: "source",
input: "source=abc",
wantMap: map[string]string{"source": "abc"},
},
{
name: "no equals, treat as source",
input: "mysource",
wantMap: map[string]string{"source": "mysource"},
},
{
name: "empty string",
input: "",
wantMap: map[string]string{},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s := NewSelector(tt.input)
if !reflect.DeepEqual(s.indexMap, tt.wantMap) {
t.Errorf("NewSelector(%q) indexMap = %v, want %v", tt.input, s.indexMap, tt.wantMap)
}
})
}
}

396
core/pkg/store/store.go Normal file
View File

@ -0,0 +1,396 @@
package store
import (
"context"
"encoding/json"
"fmt"
"slices"
"sync"
"github.com/hashicorp/go-memdb"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/open-feature/flagd/core/pkg/notifications"
)
var noValidatedSources = []string{}
type SelectorContextKey struct{}
type FlagQueryResult struct {
Flags map[string]model.Flag
}
type IStore interface {
Get(ctx context.Context, key string, selector *Selector) (model.Flag, model.Metadata, error)
GetAll(ctx context.Context, selector *Selector) (map[string]model.Flag, model.Metadata, error)
Watch(ctx context.Context, selector *Selector, watcher chan<- FlagQueryResult)
}
var _ IStore = (*Store)(nil)
type Store struct {
mx sync.RWMutex
db *memdb.MemDB
logger *logger.Logger
sources []string
// deprecated: has no effect and will be removed soon.
FlagSources []string
}
type SourceDetails struct {
Source string
Selector string
}
// NewStore creates a new in-memory store with the given sources.
// The order of sources in the slice determines their priority, when queries result in duplicate flags (queries without source or flagSetId), the higher priority source "wins".
func NewStore(logger *logger.Logger, sources []string) (*Store, error) {
// a unique index must exist for each set of constraints - for example, to look up by key and source, we need a compound index on key+source, etc
// we maybe want to generate these dynamically in the future to support more robust querying, but for now we will hardcode the ones we need
schema := &memdb.DBSchema{
Tables: map[string]*memdb.TableSchema{
flagsTable: {
Name: flagsTable,
Indexes: map[string]*memdb.IndexSchema{
// primary index; must be unique and named "id"
idIndex: {
Name: idIndex,
Unique: true,
Indexer: &memdb.CompoundIndex{
Indexes: []memdb.Indexer{
&memdb.StringFieldIndex{Field: model.FlagSetId, Lowercase: false},
&memdb.StringFieldIndex{Field: model.Key, Lowercase: false},
},
},
},
// for looking up by source
sourceIndex: {
Name: sourceIndex,
Unique: false,
Indexer: &memdb.StringFieldIndex{Field: model.Source, Lowercase: false},
},
// for looking up by priority, used to maintain highest priority flag when there are duplicates and no selector is provided
priorityIndex: {
Name: priorityIndex,
Unique: false,
Indexer: &memdb.IntFieldIndex{Field: model.Priority},
},
// for looking up by flagSetId
flagSetIdIndex: {
Name: flagSetIdIndex,
Unique: false,
Indexer: &memdb.StringFieldIndex{Field: model.FlagSetId, Lowercase: false},
},
keyIndex: {
Name: keyIndex,
Unique: false,
Indexer: &memdb.StringFieldIndex{Field: model.Key, Lowercase: false},
},
flagSetIdSourceCompoundIndex: {
Name: flagSetIdSourceCompoundIndex,
Unique: false,
Indexer: &memdb.CompoundIndex{
Indexes: []memdb.Indexer{
&memdb.StringFieldIndex{Field: model.FlagSetId, Lowercase: false},
&memdb.StringFieldIndex{Field: model.Source, Lowercase: false},
},
},
},
keySourceCompoundIndex: {
Name: keySourceCompoundIndex,
Unique: false, // duplicate from a single source ARE allowed (they just must have different flag sets)
Indexer: &memdb.CompoundIndex{
Indexes: []memdb.Indexer{
&memdb.StringFieldIndex{Field: model.Key, Lowercase: false},
&memdb.StringFieldIndex{Field: model.Source, Lowercase: false},
},
},
},
// used to query all flags from a specific source so we know which flags to delete if a flag is missing from a source
flagSetIdKeySourceCompoundIndex: {
Name: flagSetIdKeySourceCompoundIndex,
Unique: true,
Indexer: &memdb.CompoundIndex{
Indexes: []memdb.Indexer{
&memdb.StringFieldIndex{Field: model.FlagSetId, Lowercase: false},
&memdb.StringFieldIndex{Field: model.Key, Lowercase: false},
&memdb.StringFieldIndex{Field: model.Source, Lowercase: false},
},
},
},
},
},
},
}
// Create a new data base
db, err := memdb.NewMemDB(schema)
if err != nil {
return nil, fmt.Errorf("unable to initialize flag database: %w", err)
}
// clone the sources to avoid modifying the original slice
s := slices.Clone(sources)
return &Store{
sources: s,
db: db,
logger: logger,
}, nil
}
// Deprecated: use NewStore instead - will be removed very soon.
func NewFlags() *Store {
state, err := NewStore(logger.NewLogger(nil, false), noValidatedSources)
if err != nil {
panic(fmt.Sprintf("unable to create flag store: %v", err))
}
return state
}
func (s *Store) Get(_ context.Context, key string, selector *Selector) (model.Flag, model.Metadata, error) {
s.logger.Debug(fmt.Sprintf("getting flag %s", key))
txn := s.db.Txn(false)
queryMeta := selector.ToMetadata()
// if present, use the selector to query the flags
if !selector.IsEmpty() {
selector := selector.WithIndex("key", key)
indexId, constraints := selector.ToQuery()
s.logger.Debug(fmt.Sprintf("getting flag with query: %s, %v", indexId, constraints))
raw, err := txn.First(flagsTable, indexId, constraints...)
flag, ok := raw.(model.Flag)
if err != nil {
return model.Flag{}, queryMeta, fmt.Errorf("flag %s not found: %w", key, err)
}
if !ok {
return model.Flag{}, queryMeta, fmt.Errorf("flag %s is not a valid flag", key)
}
return flag, queryMeta, nil
}
// otherwise, get all flags with the given key, and keep the last one with the highest priority
s.logger.Debug(fmt.Sprintf("getting highest priority flag with key: %s", key))
it, err := txn.Get(flagsTable, keyIndex, key)
if err != nil {
return model.Flag{}, queryMeta, fmt.Errorf("flag %s not found: %w", key, err)
}
flag := model.Flag{}
found := false
for raw := it.Next(); raw != nil; raw = it.Next() {
nextFlag, ok := raw.(model.Flag)
if !ok {
continue
}
found = true
if nextFlag.Priority >= flag.Priority {
flag = nextFlag
} else {
s.logger.Debug(fmt.Sprintf("discarding flag %s from lower priority source %s in favor of flag from source %s", nextFlag.Key, s.sources[nextFlag.Priority], s.sources[flag.Priority]))
}
}
if !found {
return flag, queryMeta, fmt.Errorf("flag %s not found", key)
}
return flag, queryMeta, nil
}
func (f *Store) String() (string, error) {
f.logger.Debug("dumping flags to string")
f.mx.RLock()
defer f.mx.RUnlock()
state, _, err := f.GetAll(context.Background(), nil)
if err != nil {
return "", fmt.Errorf("unable to get all flags: %w", err)
}
bytes, err := json.Marshal(state)
if err != nil {
return "", fmt.Errorf("unable to marshal flags: %w", err)
}
return string(bytes), nil
}
// GetAll returns a copy of the store's state (copy in order to be concurrency safe)
func (s *Store) GetAll(ctx context.Context, selector *Selector) (map[string]model.Flag, model.Metadata, error) {
flags := make(map[string]model.Flag)
queryMeta := selector.ToMetadata()
it, err := s.selectOrAll(selector)
if err != nil {
s.logger.Error(fmt.Sprintf("flag query error: %v", err))
return flags, queryMeta, err
}
flags = s.collect(it)
return flags, queryMeta, nil
}
// Update the flag state with the provided flags.
func (s *Store) Update(
source string,
flags map[string]model.Flag,
metadata model.Metadata,
) (map[string]interface{}, bool) {
resyncRequired := false
if source == "" {
panic("source cannot be empty")
}
priority := slices.Index(s.sources, source)
if priority == -1 {
// this is a hack to allow old constructors that didn't pass sources, remove when we remove "NewFlags" constructor
if !slices.Equal(s.sources, noValidatedSources) {
panic(fmt.Sprintf("source %s is not registered in the store", source))
}
// same as above - remove when we remove "NewFlags" constructor
priority = 0
}
txn := s.db.Txn(true)
defer txn.Abort()
// get all flags for the source we are updating
selector := NewSelector(sourceIndex + "=" + source)
oldFlags, _, _ := s.GetAll(context.Background(), &selector)
s.mx.Lock()
for key := range oldFlags {
if _, ok := flags[key]; !ok {
// flag has been deleted
s.logger.Debug(fmt.Sprintf("flag %s has been deleted from source %s", key, source))
count, err := txn.DeleteAll(flagsTable, keySourceCompoundIndex, key, source)
s.logger.Debug(fmt.Sprintf("deleted %d flags with key %s from source %s", count, key, source))
if err != nil {
s.logger.Error(fmt.Sprintf("error deleting flag: %s, %v", key, err))
}
continue
}
}
s.mx.Unlock()
for key, newFlag := range flags {
s.logger.Debug(fmt.Sprintf("got metadata %v", metadata))
newFlag.Key = key
newFlag.Source = source
newFlag.Priority = priority
newFlag.Metadata = patchMetadata(metadata, newFlag.Metadata)
// flagSetId defaults to a UUID generated at startup to make our queries isomorphic
flagSetId := nilFlagSetId
// flagSetId is inherited from the set, but can be overridden by the flag
setFlagSetId, ok := newFlag.Metadata["flagSetId"].(string)
if ok {
flagSetId = setFlagSetId
}
newFlag.FlagSetId = flagSetId
raw, err := txn.First(flagsTable, keySourceCompoundIndex, key, source)
if err != nil {
s.logger.Error(fmt.Sprintf("unable to get flag %s from source %s: %v", key, source, err))
continue
}
oldFlag, ok := raw.(model.Flag)
// If we already have a flag with the same key and source, we need to check if it has the same flagSetId
if ok {
if oldFlag.FlagSetId != newFlag.FlagSetId {
// If the flagSetId is different, we need to delete the entry, since flagSetId+key represents the primary index, and it's now been changed.
// This is important especially for clients listening to flagSetId changes, as they expect the flag to be removed from the set in this case.
_, err = txn.DeleteAll(flagsTable, idIndex, oldFlag.FlagSetId, key)
if err != nil {
s.logger.Error(fmt.Sprintf("unable to delete flags with key %s and flagSetId %s: %v", key, oldFlag.FlagSetId, err))
continue
}
}
}
// Store the new version of the flag
s.logger.Debug(fmt.Sprintf("storing flag: %v", newFlag))
err = txn.Insert(flagsTable, newFlag)
if err != nil {
s.logger.Error(fmt.Sprintf("unable to insert flag %s: %v", key, err))
continue
}
}
txn.Commit()
return notifications.NewFromFlags(oldFlags, flags), resyncRequired
}
// Watch the result-set of a selector for changes, sending updates to the watcher channel.
func (s *Store) Watch(ctx context.Context, selector *Selector, watcher chan<- FlagQueryResult) {
go func() {
for {
ws := memdb.NewWatchSet()
it, err := s.selectOrAll(selector)
if err != nil {
s.logger.Error(fmt.Sprintf("error watching flags: %v", err))
close(watcher)
return
}
ws.Add(it.WatchCh())
flags := s.collect(it)
watcher <- FlagQueryResult{
Flags: flags,
}
if err = ws.WatchCtx(ctx); err != nil {
s.logger.Error(fmt.Sprintf("error watching flags: %v", err))
close(watcher)
return
}
}
}()
}
// returns an iterator for the given selector, or all flags if the selector is nil or empty
func (s *Store) selectOrAll(selector *Selector) (it memdb.ResultIterator, err error) {
txn := s.db.Txn(false)
if !selector.IsEmpty() {
indexId, constraints := selector.ToQuery()
s.logger.Debug(fmt.Sprintf("getting all flags with query: %s, %v", indexId, constraints))
return txn.Get(flagsTable, indexId, constraints...)
} else {
// no selector, get all flags
return txn.Get(flagsTable, idIndex)
}
}
// collects flags from an iterator, ensuring that only the highest priority flag is kept when there are duplicates
func (s *Store) collect(it memdb.ResultIterator) map[string]model.Flag {
flags := make(map[string]model.Flag)
for raw := it.Next(); raw != nil; raw = it.Next() {
flag := raw.(model.Flag)
if existing, ok := flags[flag.Key]; ok {
if flag.Priority < existing.Priority {
s.logger.Debug(fmt.Sprintf("discarding duplicate flag %s from lower priority source %s in favor of flag from source %s", flag.Key, s.sources[flag.Priority], s.sources[existing.Priority]))
continue // we already have a higher priority flag
}
s.logger.Debug(fmt.Sprintf("overwriting duplicate flag %s from lower priority source %s in favor of flag from source %s", flag.Key, s.sources[existing.Priority], s.sources[flag.Priority]))
}
flags[flag.Key] = flag
}
return flags
}
func patchMetadata(original, patch model.Metadata) model.Metadata {
patched := make(model.Metadata)
if original == nil && patch == nil {
return nil
}
for key, value := range original {
patched[key] = value
}
for key, value := range patch { // patch values overwrite m1 values on key conflict
patched[key] = value
}
return patched
}

View File

@ -0,0 +1,487 @@
package store
import (
"context"
"testing"
"time"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/model"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestUpdateFlags(t *testing.T) {
const source1 = "source1"
const source2 = "source2"
var sources = []string{source1, source2}
t.Parallel()
tests := []struct {
name string
setup func(t *testing.T) *Store
newFlags map[string]model.Flag
source string
wantFlags map[string]model.Flag
setMetadata model.Metadata
wantNotifs map[string]interface{}
wantResync bool
}{
{
name: "both nil",
setup: func(t *testing.T) *Store {
s, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
return s
},
source: source1,
newFlags: nil,
wantFlags: map[string]model.Flag{},
wantNotifs: map[string]interface{}{},
},
{
name: "both empty flags",
setup: func(t *testing.T) *Store {
s, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
return s
},
source: source1,
newFlags: map[string]model.Flag{},
wantFlags: map[string]model.Flag{},
wantNotifs: map[string]interface{}{},
},
{
name: "empty new",
setup: func(t *testing.T) *Store {
s, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
return s
},
source: source1,
newFlags: nil,
wantFlags: map[string]model.Flag{},
wantNotifs: map[string]interface{}{},
},
{
name: "update from source 1 (old flag removed)",
setup: func(t *testing.T) *Store {
s, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
s.Update(source1, map[string]model.Flag{
"waka": {DefaultVariant: "off"},
}, nil)
return s
},
newFlags: map[string]model.Flag{
"paka": {DefaultVariant: "on"},
},
source: source1,
wantFlags: map[string]model.Flag{
"paka": {Key: "paka", DefaultVariant: "on", Source: source1, FlagSetId: nilFlagSetId, Priority: 0},
},
wantNotifs: map[string]interface{}{
"paka": map[string]interface{}{"type": "write"},
"waka": map[string]interface{}{"type": "delete"},
},
},
{
name: "update from source 1 (new flag added)",
setup: func(t *testing.T) *Store {
s, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
s.Update(source1, map[string]model.Flag{
"waka": {DefaultVariant: "off"},
}, nil)
return s
},
newFlags: map[string]model.Flag{
"paka": {DefaultVariant: "on"},
},
source: source2,
wantFlags: map[string]model.Flag{
"waka": {Key: "waka", DefaultVariant: "off", Source: source1, FlagSetId: nilFlagSetId, Priority: 0},
"paka": {Key: "paka", DefaultVariant: "on", Source: source2, FlagSetId: nilFlagSetId, Priority: 1},
},
wantNotifs: map[string]interface{}{"paka": map[string]interface{}{"type": "write"}},
},
{
name: "flag set inheritance",
setup: func(t *testing.T) *Store {
s, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
s.Update(source1, map[string]model.Flag{}, model.Metadata{})
return s
},
setMetadata: model.Metadata{
"flagSetId": "topLevelSet", // top level set metadata, including flagSetId
},
newFlags: map[string]model.Flag{
"waka": {DefaultVariant: "on"},
"paka": {DefaultVariant: "on", Metadata: model.Metadata{"flagSetId": "flagLevelSet"}}, // overrides set level flagSetId
},
source: source1,
wantFlags: map[string]model.Flag{
"waka": {Key: "waka", DefaultVariant: "on", Source: source1, FlagSetId: "topLevelSet", Priority: 0, Metadata: model.Metadata{"flagSetId": "topLevelSet"}},
"paka": {Key: "paka", DefaultVariant: "on", Source: source1, FlagSetId: "flagLevelSet", Priority: 0, Metadata: model.Metadata{"flagSetId": "flagLevelSet"}},
},
wantNotifs: map[string]interface{}{
"paka": map[string]interface{}{"type": "write"},
"waka": map[string]interface{}{"type": "write"},
},
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
store := tt.setup(t)
gotNotifs, resyncRequired := store.Update(tt.source, tt.newFlags, tt.setMetadata)
gotFlags, _, _ := store.GetAll(context.Background(), nil)
require.Equal(t, tt.wantFlags, gotFlags)
require.Equal(t, tt.wantNotifs, gotNotifs)
require.Equal(t, tt.wantResync, resyncRequired)
})
}
}
func TestGet(t *testing.T) {
sourceA := "sourceA"
sourceB := "sourceB"
sourceC := "sourceC"
flagSetIdB := "flagSetIdA"
flagSetIdC := "flagSetIdC"
var sources = []string{sourceA, sourceB, sourceC}
sourceASelector := NewSelector("source=" + sourceA)
flagSetIdCSelector := NewSelector("flagSetId=" + flagSetIdC)
t.Parallel()
tests := []struct {
name string
key string
selector *Selector
wantFlag model.Flag
wantErr bool
}{
{
name: "nil selector",
key: "flagA",
selector: nil,
wantFlag: model.Flag{Key: "flagA", DefaultVariant: "off", Source: sourceA, FlagSetId: nilFlagSetId, Priority: 0},
wantErr: false,
},
{
name: "flagSetId selector",
key: "dupe",
selector: &flagSetIdCSelector,
wantFlag: model.Flag{Key: "dupe", DefaultVariant: "off", Source: sourceC, FlagSetId: flagSetIdC, Priority: 2, Metadata: model.Metadata{"flagSetId": flagSetIdC}},
wantErr: false,
},
{
name: "source selector",
key: "dupe",
selector: &sourceASelector,
wantFlag: model.Flag{Key: "dupe", DefaultVariant: "on", Source: sourceA, FlagSetId: nilFlagSetId, Priority: 0},
wantErr: false,
},
{
name: "flag not found with source selector",
key: "flagB",
selector: &sourceASelector,
wantFlag: model.Flag{Key: "flagB", DefaultVariant: "off", Source: sourceB, FlagSetId: flagSetIdB, Priority: 1, Metadata: model.Metadata{"flagSetId": flagSetIdB}},
wantErr: true,
},
{
name: "flag not found with flagSetId selector",
key: "flagB",
selector: &flagSetIdCSelector,
wantFlag: model.Flag{Key: "flagB", DefaultVariant: "off", Source: sourceB, FlagSetId: flagSetIdB, Priority: 1, Metadata: model.Metadata{"flagSetId": flagSetIdB}},
wantErr: true,
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
sourceAFlags := map[string]model.Flag{
"flagA": {Key: "flagA", DefaultVariant: "off"},
"dupe": {Key: "dupe", DefaultVariant: "on"},
}
sourceBFlags := map[string]model.Flag{
"flagB": {Key: "flagB", DefaultVariant: "off", Metadata: model.Metadata{"flagSetId": flagSetIdB}},
}
sourceCFlags := map[string]model.Flag{
"flagC": {Key: "flagC", DefaultVariant: "off", Metadata: model.Metadata{"flagSetId": flagSetIdC}},
"dupe": {Key: "dupe", DefaultVariant: "off", Metadata: model.Metadata{"flagSetId": flagSetIdC}},
}
store, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
store.Update(sourceA, sourceAFlags, nil)
store.Update(sourceB, sourceBFlags, nil)
store.Update(sourceC, sourceCFlags, nil)
gotFlag, _, err := store.Get(context.Background(), tt.key, tt.selector)
if !tt.wantErr {
require.Equal(t, tt.wantFlag, gotFlag)
} else {
require.Error(t, err, "expected an error for key %s with selector %v", tt.key, tt.selector)
}
})
}
}
func TestGetAllNoWatcher(t *testing.T) {
sourceA := "sourceA"
sourceB := "sourceB"
sourceC := "sourceC"
flagSetIdB := "flagSetIdA"
flagSetIdC := "flagSetIdC"
sources := []string{sourceA, sourceB, sourceC}
sourceASelector := NewSelector("source=" + sourceA)
flagSetIdCSelector := NewSelector("flagSetId=" + flagSetIdC)
t.Parallel()
tests := []struct {
name string
selector *Selector
wantFlags map[string]model.Flag
}{
{
name: "nil selector",
selector: nil,
wantFlags: map[string]model.Flag{
// "dupe" should be overwritten by higher priority flag
"flagA": {Key: "flagA", DefaultVariant: "off", Source: sourceA, FlagSetId: nilFlagSetId, Priority: 0},
"flagB": {Key: "flagB", DefaultVariant: "off", Source: sourceB, FlagSetId: flagSetIdB, Priority: 1, Metadata: model.Metadata{"flagSetId": flagSetIdB}},
"flagC": {Key: "flagC", DefaultVariant: "off", Source: sourceC, FlagSetId: flagSetIdC, Priority: 2, Metadata: model.Metadata{"flagSetId": flagSetIdC}},
"dupe": {Key: "dupe", DefaultVariant: "off", Source: sourceC, FlagSetId: flagSetIdC, Priority: 2, Metadata: model.Metadata{"flagSetId": flagSetIdC}},
},
},
{
name: "source selector",
selector: &sourceASelector,
wantFlags: map[string]model.Flag{
// we should get the "dupe" from sourceA
"flagA": {Key: "flagA", DefaultVariant: "off", Source: sourceA, FlagSetId: nilFlagSetId, Priority: 0},
"dupe": {Key: "dupe", DefaultVariant: "on", Source: sourceA, FlagSetId: nilFlagSetId, Priority: 0},
},
},
{
name: "flagSetId selector",
selector: &flagSetIdCSelector,
wantFlags: map[string]model.Flag{
// we should get the "dupe" from flagSetIdC
"flagC": {Key: "flagC", DefaultVariant: "off", Source: sourceC, FlagSetId: flagSetIdC, Priority: 2, Metadata: model.Metadata{"flagSetId": flagSetIdC}},
"dupe": {Key: "dupe", DefaultVariant: "off", Source: sourceC, FlagSetId: flagSetIdC, Priority: 2, Metadata: model.Metadata{"flagSetId": flagSetIdC}},
},
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
sourceAFlags := map[string]model.Flag{
"flagA": {Key: "flagA", DefaultVariant: "off"},
"dupe": {Key: "dupe", DefaultVariant: "on"},
}
sourceBFlags := map[string]model.Flag{
"flagB": {Key: "flagB", DefaultVariant: "off", Metadata: model.Metadata{"flagSetId": flagSetIdB}},
}
sourceCFlags := map[string]model.Flag{
"flagC": {Key: "flagC", DefaultVariant: "off", Metadata: model.Metadata{"flagSetId": flagSetIdC}},
"dupe": {Key: "dupe", DefaultVariant: "off", Metadata: model.Metadata{"flagSetId": flagSetIdC}},
}
store, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
store.Update(sourceA, sourceAFlags, nil)
store.Update(sourceB, sourceBFlags, nil)
store.Update(sourceC, sourceCFlags, nil)
gotFlags, _, _ := store.GetAll(context.Background(), tt.selector)
require.Equal(t, len(tt.wantFlags), len(gotFlags))
require.Equal(t, tt.wantFlags, gotFlags)
})
}
}
func TestWatch(t *testing.T) {
sourceA := "sourceA"
sourceB := "sourceB"
sourceC := "sourceC"
myFlagSetId := "myFlagSet"
var sources = []string{sourceA, sourceB, sourceC}
pauseTime := 100 * time.Millisecond // time for updates to settle
timeout := 1000 * time.Millisecond // time to make sure we get enough updates, and no extras
sourceASelector := NewSelector("source=" + sourceA)
flagSetIdCSelector := NewSelector("flagSetId=" + myFlagSetId)
emptySelector := NewSelector("")
sourceCSelector := NewSelector("source=" + sourceC)
tests := []struct {
name string
selector *Selector
wantUpdates int
}{
{
name: "flag source selector (initial, plus 1 update)",
selector: &sourceASelector,
wantUpdates: 2,
},
{
name: "flag set selector (initial, plus 3 updates)",
selector: &flagSetIdCSelector,
wantUpdates: 4,
},
{
name: "no selector (all updates)",
selector: &emptySelector,
wantUpdates: 5,
},
{
name: "flag source selector for unchanged source (initial, plus no updates)",
selector: &sourceCSelector,
wantUpdates: 1,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
sourceAFlags := map[string]model.Flag{
"flagA": {Key: "flagA", DefaultVariant: "off"},
}
sourceBFlags := map[string]model.Flag{
"flagB": {Key: "flagB", DefaultVariant: "off", Metadata: model.Metadata{"flagSetId": myFlagSetId}},
}
sourceCFlags := map[string]model.Flag{
"flagC": {Key: "flagC", DefaultVariant: "off"},
}
store, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
// setup initial flags
store.Update(sourceA, sourceAFlags, model.Metadata{})
store.Update(sourceB, sourceBFlags, model.Metadata{})
store.Update(sourceC, sourceCFlags, model.Metadata{})
watcher := make(chan FlagQueryResult, 1)
time.Sleep(pauseTime)
ctx, cancel := context.WithCancel(context.Background())
store.Watch(ctx, tt.selector, watcher)
// perform updates
go func() {
time.Sleep(pauseTime)
// changing a flag default variant should trigger an update
store.Update(sourceA, map[string]model.Flag{
"flagA": {Key: "flagA", DefaultVariant: "on"},
}, model.Metadata{})
time.Sleep(pauseTime)
// changing a flag default variant should trigger an update
store.Update(sourceB, map[string]model.Flag{
"flagB": {Key: "flagB", DefaultVariant: "on", Metadata: model.Metadata{"flagSetId": myFlagSetId}},
}, model.Metadata{})
time.Sleep(pauseTime)
// removing a flag set id should trigger an update (even for flag set id selectors; it should remove the flag from the set)
store.Update(sourceB, map[string]model.Flag{
"flagB": {Key: "flagB", DefaultVariant: "on"},
}, model.Metadata{})
time.Sleep(pauseTime)
// adding a flag set id should trigger an update
store.Update(sourceB, map[string]model.Flag{
"flagB": {Key: "flagB", DefaultVariant: "on", Metadata: model.Metadata{"flagSetId": myFlagSetId}},
}, model.Metadata{})
}()
updates := 0
for {
select {
case <-time.After(timeout):
assert.Equal(t, tt.wantUpdates, updates, "expected %d updates, got %d", tt.wantUpdates, updates)
cancel()
_, open := <-watcher
assert.False(t, open, "watcher channel should be closed after cancel")
return
case q := <-watcher:
if q.Flags != nil {
updates++
}
}
}
})
}
}
func TestQueryMetadata(t *testing.T) {
sourceA := "sourceA"
otherSource := "otherSource"
nonExistingFlagSetId := "nonExistingFlagSetId"
var sources = []string{sourceA}
sourceAFlags := map[string]model.Flag{
"flagA": {Key: "flagA", DefaultVariant: "off"},
"flagB": {Key: "flagB", DefaultVariant: "on"},
}
store, err := NewStore(logger.NewLogger(nil, false), sources)
if err != nil {
t.Fatalf("NewStore failed: %v", err)
}
// setup initial flags
store.Update(sourceA, sourceAFlags, model.Metadata{})
selector := NewSelector("source=" + otherSource + ",flagSetId=" + nonExistingFlagSetId)
_, metadata, _ := store.GetAll(context.Background(), &selector)
assert.Equal(t, metadata, model.Metadata{"source": otherSource, "flagSetId": nonExistingFlagSetId}, "metadata did not match expected")
selector = NewSelector("source=" + otherSource + ",flagSetId=" + nonExistingFlagSetId)
_, metadata, _ = store.Get(context.Background(), "key", &selector)
assert.Equal(t, metadata, model.Metadata{"source": otherSource, "flagSetId": nonExistingFlagSetId}, "metadata did not match expected")
}

View File

@ -0,0 +1,147 @@
package blob
import (
"context"
"errors"
"fmt"
"io"
"path/filepath"
"time"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/open-feature/flagd/core/pkg/utils"
"gocloud.dev/blob"
_ "gocloud.dev/blob/azureblob" // needed to initialize Azure Blob Storage driver
_ "gocloud.dev/blob/gcsblob" // needed to initialize GCS driver
_ "gocloud.dev/blob/s3blob" // needed to initialize s3 driver
)
type Sync struct {
Bucket string
Object string
BlobURLMux *blob.URLMux
Cron Cron
Logger *logger.Logger
Interval uint32
ready bool
lastUpdated time.Time
}
// Cron defines the behaviour required of a cron
type Cron interface {
AddFunc(spec string, cmd func()) error
Start()
Stop()
}
func (hs *Sync) Init(_ context.Context) error {
if hs.Bucket == "" {
return errors.New("no bucket string set")
}
if hs.Object == "" {
return errors.New("no object string set")
}
return nil
}
func (hs *Sync) IsReady() bool {
return hs.ready
}
func (hs *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
hs.Logger.Info(fmt.Sprintf("starting sync from %s/%s with interval %ds", hs.Bucket, hs.Object, hs.Interval))
_ = hs.Cron.AddFunc(fmt.Sprintf("*/%d * * * *", hs.Interval), func() {
err := hs.sync(ctx, dataSync, false)
if err != nil {
hs.Logger.Warn(fmt.Sprintf("sync failed: %v", err))
}
})
// Initial fetch
hs.Logger.Debug(fmt.Sprintf("initial sync of the %s/%s", hs.Bucket, hs.Object))
err := hs.sync(ctx, dataSync, false)
if err != nil {
return err
}
hs.ready = true
hs.Cron.Start()
<-ctx.Done()
hs.Cron.Stop()
return nil
}
func (hs *Sync) ReSync(ctx context.Context, dataSync chan<- sync.DataSync) error {
return hs.sync(ctx, dataSync, true)
}
func (hs *Sync) sync(ctx context.Context, dataSync chan<- sync.DataSync, skipCheckingModTime bool) error {
bucket, err := hs.getBucket(ctx)
if err != nil {
return fmt.Errorf("couldn't get bucket: %v", err)
}
defer bucket.Close()
var updated time.Time
if !skipCheckingModTime {
updated, err = hs.fetchObjectModificationTime(ctx, bucket)
if err != nil {
return fmt.Errorf("couldn't get object attributes: %v", err)
}
if hs.lastUpdated.Equal(updated) {
hs.Logger.Debug("configuration hasn't changed, skipping fetching full object")
return nil
}
if hs.lastUpdated.After(updated) {
hs.Logger.Warn("configuration changed but the modification time decreased instead of increasing")
}
}
msg, err := hs.fetchObject(ctx, bucket)
if err != nil {
return fmt.Errorf("couldn't get object: %v", err)
}
hs.Logger.Debug(fmt.Sprintf("configuration updated: %s", msg))
if !skipCheckingModTime {
hs.lastUpdated = updated
}
dataSync <- sync.DataSync{FlagData: msg, Source: hs.Bucket + hs.Object}
return nil
}
func (hs *Sync) getBucket(ctx context.Context) (*blob.Bucket, error) {
b, err := hs.BlobURLMux.OpenBucket(ctx, hs.Bucket)
if err != nil {
return nil, fmt.Errorf("error opening bucket %s: %v", hs.Bucket, err)
}
return b, nil
}
func (hs *Sync) fetchObjectModificationTime(ctx context.Context, bucket *blob.Bucket) (time.Time, error) {
if hs.Object == "" {
return time.Time{}, errors.New("no object string set")
}
attrs, err := bucket.Attributes(ctx, hs.Object)
if err != nil {
return time.Time{}, fmt.Errorf("error fetching attributes for object %s/%s: %w", hs.Bucket, hs.Object, err)
}
return attrs.ModTime, nil
}
func (hs *Sync) fetchObject(ctx context.Context, bucket *blob.Bucket) (string, error) {
r, err := bucket.NewReader(ctx, hs.Object, nil)
if err != nil {
return "", fmt.Errorf("error opening reader for object %s/%s: %w", hs.Bucket, hs.Object, err)
}
defer r.Close()
data, err := io.ReadAll(r)
if err != nil {
return "", fmt.Errorf("error downloading object %s/%s: %w", hs.Bucket, hs.Object, err)
}
json, err := utils.ConvertToJSON(data, filepath.Ext(hs.Object), r.ContentType())
if err != nil {
return "", fmt.Errorf("error converting blob data to json: %w", err)
}
return json, nil
}

View File

@ -0,0 +1,152 @@
package blob
import (
"context"
"log"
"testing"
"time"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
synctesting "github.com/open-feature/flagd/core/pkg/sync/testing"
"go.uber.org/mock/gomock"
)
func TestBlobSync(t *testing.T) {
tests := map[string]struct {
scheme string
bucket string
object string
content string
convertedContent string
}{
"json file type": {
scheme: "xyz",
bucket: "b",
object: "flags.json",
content: "{\"flags\":{}}",
convertedContent: "{\"flags\":{}}",
},
"yaml file type": {
scheme: "xyz",
bucket: "b",
object: "flags.yaml",
content: "flags: []",
convertedContent: "{\"flags\":[]}",
},
}
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
ctrl := gomock.NewController(t)
mockCron := synctesting.NewMockCron(ctrl)
mockCron.EXPECT().AddFunc(gomock.Any(), gomock.Any()).DoAndReturn(func(spec string, cmd func()) error {
return nil
})
mockCron.EXPECT().Start().Times(1)
blobSync := &Sync{
Bucket: tt.scheme + "://" + tt.bucket,
Object: tt.object,
Cron: mockCron,
Logger: logger.NewLogger(nil, false),
}
blobMock := NewMockBlob(tt.scheme, func() *Sync {
return blobSync
})
blobSync.BlobURLMux = blobMock.URLMux()
ctx := context.Background()
dataSyncChan := make(chan sync.DataSync, 1)
blobMock.AddObject(tt.object, tt.content)
go func() {
err := blobSync.Sync(ctx, dataSyncChan)
if err != nil {
log.Fatalf("Error start sync: %s", err.Error())
return
}
}()
data := <-dataSyncChan // initial sync
if data.FlagData != tt.convertedContent {
t.Errorf("expected content: %s, but received content: %s", tt.convertedContent, data.FlagData)
}
tickWithConfigChange(t, mockCron, dataSyncChan, blobMock, tt.object, tt.convertedContent)
tickWithoutConfigChange(t, mockCron, dataSyncChan)
tickWithConfigChange(t, mockCron, dataSyncChan, blobMock, tt.object, tt.convertedContent)
tickWithoutConfigChange(t, mockCron, dataSyncChan)
tickWithoutConfigChange(t, mockCron, dataSyncChan)
})
}
}
func tickWithConfigChange(t *testing.T, mockCron *synctesting.MockCron, dataSyncChan chan sync.DataSync, blobMock *MockBlob, object string, newConfig string) {
time.Sleep(1 * time.Millisecond) // sleep so the new file has different modification date
blobMock.AddObject(object, newConfig)
mockCron.Tick()
select {
case data, ok := <-dataSyncChan:
if ok {
if data.FlagData != newConfig {
t.Errorf("expected content: %s, but received content: %s", newConfig, data.FlagData)
}
} else {
t.Errorf("data channel unexpectedly closed")
}
default:
t.Errorf("data channel has no expected update")
}
}
func tickWithoutConfigChange(t *testing.T, mockCron *synctesting.MockCron, dataSyncChan chan sync.DataSync) {
mockCron.Tick()
select {
case data, ok := <-dataSyncChan:
if ok {
t.Errorf("unexpected update: %s", data.FlagData)
} else {
t.Errorf("data channel unexpectedly closed")
}
default:
}
}
func TestReSync(t *testing.T) {
const (
scheme = "xyz"
bucket = "b"
object = "flags.json"
)
ctrl := gomock.NewController(t)
mockCron := synctesting.NewMockCron(ctrl)
blobSync := &Sync{
Bucket: scheme + "://" + bucket,
Object: object,
Cron: mockCron,
Logger: logger.NewLogger(nil, false),
}
blobMock := NewMockBlob(scheme, func() *Sync {
return blobSync
})
blobSync.BlobURLMux = blobMock.URLMux()
ctx := context.Background()
dataSyncChan := make(chan sync.DataSync, 1)
config := "my-config"
blobMock.AddObject(object, config)
err := blobSync.ReSync(ctx, dataSyncChan)
if err != nil {
log.Fatalf("Error start sync: %s", err.Error())
return
}
data := <-dataSyncChan
if data.FlagData != config {
t.Errorf("expected content: %s, but received content: %s", config, data.FlagData)
}
}

View File

@ -0,0 +1,72 @@
package blob
import (
"context"
"log"
"net/url"
"gocloud.dev/blob"
"gocloud.dev/blob/memblob"
)
type MockBlob struct {
mux *blob.URLMux
scheme string
opener *fakeOpener
}
type fakeOpener struct {
object string
content string
keepModTime bool
getSync func() *Sync
}
func (f *fakeOpener) OpenBucketURL(ctx context.Context, _ *url.URL) (*blob.Bucket, error) {
bucketURL, err := url.Parse("mem://")
if err != nil {
log.Fatalf("couldn't parse url: %s: %v", "mem://", err)
}
opener := &memblob.URLOpener{}
bucket, err := opener.OpenBucketURL(ctx, bucketURL)
if err != nil {
log.Fatalf("couldn't open in memory bucket: %v", err)
}
if f.object != "" {
err = bucket.WriteAll(ctx, f.object, []byte(f.content), nil)
if err != nil {
log.Fatalf("couldn't write in memory file: %v", err)
}
}
if f.keepModTime && f.object != "" {
attrs, err := bucket.Attributes(ctx, f.object)
if err != nil {
log.Fatalf("couldn't get memory file attributes: %v", err)
}
f.getSync().lastUpdated = attrs.ModTime
} else {
f.keepModTime = true
}
return bucket, nil
}
func NewMockBlob(scheme string, getSync func() *Sync) *MockBlob {
mux := new(blob.URLMux)
opener := &fakeOpener{getSync: getSync}
mux.RegisterBucket(scheme, opener)
return &MockBlob{
mux: mux,
scheme: scheme,
opener: opener,
}
}
func (mb *MockBlob) URLMux() *blob.URLMux {
return mb.mux
}
func (mb *MockBlob) AddObject(object, content string) {
mb.opener.object = object
mb.opener.content = content
mb.opener.keepModTime = false
}

View File

@ -0,0 +1,110 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: pkg/sync/builder/syncbuilder.go
//
// Generated by this command:
//
// mockgen -source=pkg/sync/builder/syncbuilder.go -destination=pkg/sync/builder/mock/syncbuilder.go -package=middlewaremocksyncbuildermock
//
// Package middlewaremocksyncbuildermock is a generated GoMock package.
package middlewaremocksyncbuildermock
import (
reflect "reflect"
logger "github.com/open-feature/flagd/core/pkg/logger"
sync "github.com/open-feature/flagd/core/pkg/sync"
gomock "go.uber.org/mock/gomock"
dynamic "k8s.io/client-go/dynamic"
)
// MockISyncBuilder is a mock of ISyncBuilder interface.
type MockISyncBuilder struct {
ctrl *gomock.Controller
recorder *MockISyncBuilderMockRecorder
}
// MockISyncBuilderMockRecorder is the mock recorder for MockISyncBuilder.
type MockISyncBuilderMockRecorder struct {
mock *MockISyncBuilder
}
// NewMockISyncBuilder creates a new mock instance.
func NewMockISyncBuilder(ctrl *gomock.Controller) *MockISyncBuilder {
mock := &MockISyncBuilder{ctrl: ctrl}
mock.recorder = &MockISyncBuilderMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockISyncBuilder) EXPECT() *MockISyncBuilderMockRecorder {
return m.recorder
}
// SyncFromURI mocks base method.
func (m *MockISyncBuilder) SyncFromURI(uri string, logger *logger.Logger) (sync.ISync, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SyncFromURI", uri, logger)
ret0, _ := ret[0].(sync.ISync)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// SyncFromURI indicates an expected call of SyncFromURI.
func (mr *MockISyncBuilderMockRecorder) SyncFromURI(uri, logger any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncFromURI", reflect.TypeOf((*MockISyncBuilder)(nil).SyncFromURI), uri, logger)
}
// SyncsFromConfig mocks base method.
func (m *MockISyncBuilder) SyncsFromConfig(sourceConfig []sync.SourceConfig, logger *logger.Logger) ([]sync.ISync, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SyncsFromConfig", sourceConfig, logger)
ret0, _ := ret[0].([]sync.ISync)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// SyncsFromConfig indicates an expected call of SyncsFromConfig.
func (mr *MockISyncBuilderMockRecorder) SyncsFromConfig(sourceConfig, logger any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncsFromConfig", reflect.TypeOf((*MockISyncBuilder)(nil).SyncsFromConfig), sourceConfig, logger)
}
// MockIK8sClientBuilder is a mock of IK8sClientBuilder interface.
type MockIK8sClientBuilder struct {
ctrl *gomock.Controller
recorder *MockIK8sClientBuilderMockRecorder
}
// MockIK8sClientBuilderMockRecorder is the mock recorder for MockIK8sClientBuilder.
type MockIK8sClientBuilderMockRecorder struct {
mock *MockIK8sClientBuilder
}
// NewMockIK8sClientBuilder creates a new mock instance.
func NewMockIK8sClientBuilder(ctrl *gomock.Controller) *MockIK8sClientBuilder {
mock := &MockIK8sClientBuilder{ctrl: ctrl}
mock.recorder = &MockIK8sClientBuilderMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockIK8sClientBuilder) EXPECT() *MockIK8sClientBuilderMockRecorder {
return m.recorder
}
// GetK8sClient mocks base method.
func (m *MockIK8sClientBuilder) GetK8sClient() (dynamic.Interface, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "GetK8sClient")
ret0, _ := ret[0].(dynamic.Interface)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetK8sClient indicates an expected call of GetK8sClient.
func (mr *MockIK8sClientBuilderMockRecorder) GetK8sClient() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetK8sClient", reflect.TypeOf((*MockIK8sClientBuilder)(nil).GetK8sClient))
}

View File

@ -0,0 +1,360 @@
package builder
import (
"fmt"
"net/http"
"os"
"regexp"
"time"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
blobSync "github.com/open-feature/flagd/core/pkg/sync/blob"
"github.com/open-feature/flagd/core/pkg/sync/file"
"github.com/open-feature/flagd/core/pkg/sync/grpc"
"github.com/open-feature/flagd/core/pkg/sync/grpc/credentials"
httpSync "github.com/open-feature/flagd/core/pkg/sync/http"
"github.com/open-feature/flagd/core/pkg/sync/kubernetes"
"github.com/robfig/cron"
"go.uber.org/zap"
"gocloud.dev/blob"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)
const (
syncProviderFile = "file"
syncProviderFsNotify = "fsnotify"
syncProviderFileInfo = "fileinfo"
syncProviderGrpc = "grpc"
syncProviderKubernetes = "kubernetes"
syncProviderHTTP = "http"
syncProviderGcs = "gcs"
syncProviderAzblob = "azblob"
syncProviderS3 = "s3"
)
var (
regCrd *regexp.Regexp
regURL *regexp.Regexp
regGRPC *regexp.Regexp
regGRPCSecure *regexp.Regexp
regGRPCCustomResolver *regexp.Regexp
regFile *regexp.Regexp
regGcs *regexp.Regexp
regAzblob *regexp.Regexp
regS3 *regexp.Regexp
)
func init() {
regCrd = regexp.MustCompile("^core.openfeature.dev/")
regURL = regexp.MustCompile("^https?://")
regGRPC = regexp.MustCompile("^" + grpc.Prefix)
regGRPCSecure = regexp.MustCompile("^" + grpc.PrefixSecure)
regGRPCCustomResolver = regexp.MustCompile("^" + grpc.SupportedScheme)
regFile = regexp.MustCompile("^file:")
regGcs = regexp.MustCompile("^gs://.+?/")
regAzblob = regexp.MustCompile("^azblob://.+?/")
regS3 = regexp.MustCompile("^s3://.+?/")
}
type ISyncBuilder interface {
SyncFromURI(uri string, logger *logger.Logger) (sync.ISync, error)
SyncsFromConfig(sourceConfig []sync.SourceConfig, logger *logger.Logger) ([]sync.ISync, error)
}
type SyncBuilder struct {
k8sClientBuilder IK8sClientBuilder
}
func NewSyncBuilder() *SyncBuilder {
return &SyncBuilder{
k8sClientBuilder: &KubernetesClientBuilder{},
}
}
func (sb *SyncBuilder) SyncFromURI(uri string, logger *logger.Logger) (sync.ISync, error) {
switch uriB := []byte(uri); {
// filepath may be used for debugging, not recommended in deployment
case regFile.Match(uriB):
return sb.newFile(uri, logger), nil
case regCrd.Match(uriB):
return sb.newK8s(uri, logger)
}
return nil, fmt.Errorf("unrecognized URI: %s", uri)
}
func (sb *SyncBuilder) SyncsFromConfig(sourceConfigs []sync.SourceConfig, logger *logger.Logger) ([]sync.ISync, error) {
syncImpls := make([]sync.ISync, len(sourceConfigs))
for i, syncProvider := range sourceConfigs {
syncImpl, err := sb.syncFromConfig(syncProvider, logger)
if err != nil {
return nil, fmt.Errorf("could not create sync provider: %w", err)
}
syncImpls[i] = syncImpl
}
return syncImpls, nil
}
func (sb *SyncBuilder) syncFromConfig(sourceConfig sync.SourceConfig, logger *logger.Logger) (sync.ISync, error) {
switch sourceConfig.Provider {
case syncProviderFile:
return sb.newFile(sourceConfig.URI, logger), nil
case syncProviderFsNotify:
logger.Debug(fmt.Sprintf("using fsnotify sync-provider for: %q", sourceConfig.URI))
return sb.newFsNotify(sourceConfig.URI, logger), nil
case syncProviderFileInfo:
logger.Debug(fmt.Sprintf("using fileinfo sync-provider for: %q", sourceConfig.URI))
return sb.newFileInfo(sourceConfig.URI, logger), nil
case syncProviderKubernetes:
logger.Debug(fmt.Sprintf("using kubernetes sync-provider for: %s", sourceConfig.URI))
return sb.newK8s(sourceConfig.URI, logger)
case syncProviderHTTP:
logger.Debug(fmt.Sprintf("using remote sync-provider for: %s", sourceConfig.URI))
return sb.newHTTP(sourceConfig, logger), nil
case syncProviderGrpc:
logger.Debug(fmt.Sprintf("using grpc sync-provider for: %s", sourceConfig.URI))
return sb.newGRPC(sourceConfig, logger), nil
case syncProviderGcs:
logger.Debug(fmt.Sprintf("using blob sync-provider with gcs driver for: %s", sourceConfig.URI))
return sb.newGcs(sourceConfig, logger), nil
case syncProviderAzblob:
logger.Debug(fmt.Sprintf("using blob sync-provider with azblob driver for: %s", sourceConfig.URI))
return sb.newAzblob(sourceConfig, logger)
case syncProviderS3:
logger.Debug(fmt.Sprintf("using blob sync-provider with s3 driver for: %s", sourceConfig.URI))
return sb.newS3(sourceConfig, logger), nil
default:
return nil, fmt.Errorf("invalid sync provider: %s, must be one of with "+
"'%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' or '%s'",
sourceConfig.Provider, syncProviderFile, syncProviderFsNotify, syncProviderFileInfo,
syncProviderKubernetes, syncProviderHTTP, syncProviderGrpc, syncProviderGcs, syncProviderAzblob, syncProviderS3)
}
}
// newFile returns an fsinfo sync if we are in k8s or fileinfo if not
func (sb *SyncBuilder) newFile(uri string, logger *logger.Logger) *file.Sync {
switch os.Getenv("KUBERNETES_SERVICE_HOST") {
case "":
// no k8s service host env; use fileinfo
return sb.newFileInfo(uri, logger)
default:
// default to fsnotify
return sb.newFsNotify(uri, logger)
}
}
// return a new file.Sync that uses fsnotify under the hood
func (sb *SyncBuilder) newFsNotify(uri string, logger *logger.Logger) *file.Sync {
return file.NewFileSync(
regFile.ReplaceAllString(uri, ""),
file.FSNOTIFY,
logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", syncProviderFsNotify),
),
)
}
// return a new file.Sync that uses os.Stat/fs.FileInfo under the hood
func (sb *SyncBuilder) newFileInfo(uri string, logger *logger.Logger) *file.Sync {
return file.NewFileSync(
regFile.ReplaceAllString(uri, ""),
file.FILEINFO,
logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", syncProviderFileInfo),
),
)
}
func (sb *SyncBuilder) newK8s(uri string, logger *logger.Logger) (*kubernetes.Sync, error) {
dynamicClient, err := sb.k8sClientBuilder.GetK8sClient()
if err != nil {
return nil, fmt.Errorf("error creating kubernetes clients: %w", err)
}
return kubernetes.NewK8sSync(
logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "kubernetes"),
),
regCrd.ReplaceAllString(uri, ""),
dynamicClient,
), nil
}
func (sb *SyncBuilder) newHTTP(config sync.SourceConfig, logger *logger.Logger) *httpSync.Sync {
// Default to 5 seconds
var interval uint32 = 5
if config.Interval != 0 {
interval = config.Interval
}
return &httpSync.Sync{
URI: config.URI,
Client: &http.Client{
Timeout: time.Second * 10,
},
Logger: logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "remote"),
),
BearerToken: config.BearerToken,
AuthHeader: config.AuthHeader,
Interval: interval,
Cron: cron.New(),
}
}
func (sb *SyncBuilder) newGRPC(config sync.SourceConfig, logger *logger.Logger) *grpc.Sync {
return &grpc.Sync{
URI: config.URI,
Logger: logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "grpc"),
),
CredentialBuilder: &credentials.CredentialBuilder{},
CertPath: config.CertPath,
ProviderID: config.ProviderID,
Secure: config.TLS,
Selector: config.Selector,
MaxMsgSize: config.MaxMsgSize,
}
}
func (sb *SyncBuilder) newGcs(config sync.SourceConfig, logger *logger.Logger) *blobSync.Sync {
// Extract bucket uri and object name from the full URI:
// gs://bucket/path/to/object results in gs://bucket/ as bucketUri and
// path/to/object as an object name.
bucketURI := regGcs.FindString(config.URI)
objectName := regGcs.ReplaceAllString(config.URI, "")
// Defaults to 5 seconds if interval is not set.
var interval uint32 = 5
if config.Interval != 0 {
interval = config.Interval
}
return &blobSync.Sync{
Bucket: bucketURI,
Object: objectName,
BlobURLMux: blob.DefaultURLMux(),
Logger: logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "gcs"),
),
Interval: interval,
Cron: cron.New(),
}
}
func (sb *SyncBuilder) newAzblob(config sync.SourceConfig, logger *logger.Logger) (*blobSync.Sync, error) {
// Required to generate the azblob service URL
storageAccountName := os.Getenv("AZURE_STORAGE_ACCOUNT")
if storageAccountName == "" {
return nil, fmt.Errorf("environment variable AZURE_STORAGE_ACCOUNT not set or is blank")
}
if regexp.MustCompile(`\s`).MatchString(storageAccountName) {
return nil, fmt.Errorf("environment variable AZURE_STORAGE_ACCOUNT contains whitespace")
}
// Extract bucket uri and object name from the full URI:
// azblob://bucket/path/to/object results in azblob://bucket/ as bucketUri and
// path/to/object as an object name.
bucketURI := regAzblob.FindString(config.URI)
objectName := regAzblob.ReplaceAllString(config.URI, "")
// Defaults to 5 seconds if interval is not set.
var interval uint32 = 5
if config.Interval != 0 {
interval = config.Interval
}
return &blobSync.Sync{
Bucket: bucketURI,
Object: objectName,
BlobURLMux: blob.DefaultURLMux(),
Logger: logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "azblob"),
),
Interval: interval,
Cron: cron.New(),
}, nil
}
func (sb *SyncBuilder) newS3(config sync.SourceConfig, logger *logger.Logger) *blobSync.Sync {
// Extract bucket uri and object name from the full URI:
// gs://bucket/path/to/object results in gs://bucket/ as bucketUri and
// path/to/object as an object name.
bucketURI := regS3.FindString(config.URI)
objectName := regS3.ReplaceAllString(config.URI, "")
// Defaults to 5 seconds if interval is not set.
var interval uint32 = 5
if config.Interval != 0 {
interval = config.Interval
}
return &blobSync.Sync{
Bucket: bucketURI,
Object: objectName,
BlobURLMux: blob.DefaultURLMux(),
Logger: logger.WithFields(
zap.String("component", "sync"),
zap.String("sync", "s3"),
),
Interval: interval,
Cron: cron.New(),
}
}
type IK8sClientBuilder interface {
GetK8sClient() (dynamic.Interface, error)
}
type KubernetesClientBuilder struct{}
func (kcb KubernetesClientBuilder) GetK8sClient() (dynamic.Interface, error) {
clusterConfig, err := k8sClusterConfig()
if err != nil {
return nil, err
}
dynamicClient, err := dynamic.NewForConfig(clusterConfig)
if err != nil {
return nil, fmt.Errorf("unable to create dynamicClient: %w", err)
}
return dynamicClient, nil
}
// k8sClusterConfig build K8s connection config based available configurations
func k8sClusterConfig() (*rest.Config, error) {
cfg := os.Getenv("KUBECONFIG")
var clusterConfig *rest.Config
var err error
if cfg != "" {
clusterConfig, err = clientcmd.BuildConfigFromFlags("", cfg)
if err != nil {
return nil, fmt.Errorf("error building cluster config from flags: %w", err)
}
} else {
clusterConfig, err = rest.InClusterConfig()
if err != nil {
return nil, fmt.Errorf("error fetching cluster config: %w", err)
}
}
return clusterConfig, nil
}

View File

@ -0,0 +1,479 @@
package builder
import (
"errors"
"testing"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/open-feature/flagd/core/pkg/sync/blob"
buildermock "github.com/open-feature/flagd/core/pkg/sync/builder/mock"
"github.com/open-feature/flagd/core/pkg/sync/file"
"github.com/open-feature/flagd/core/pkg/sync/grpc"
"github.com/open-feature/flagd/core/pkg/sync/http"
"github.com/open-feature/flagd/core/pkg/sync/kubernetes"
"github.com/stretchr/testify/require"
"go.uber.org/mock/gomock"
)
func TestSyncBuilder_SyncFromURI(t *testing.T) {
type args struct {
uri string
logger *logger.Logger
}
tests := []struct {
name string
args args
injectFunc func(builder *SyncBuilder)
want sync.ISync
wantErr bool
}{
{
name: "kubernetes sync",
args: args{
uri: "core.openfeature.dev/ff-config",
logger: logger.NewLogger(nil, false),
},
injectFunc: func(builder *SyncBuilder) {
ctrl := gomock.NewController(t)
mockClientBuilder := buildermock.NewMockIK8sClientBuilder(ctrl)
mockClientBuilder.EXPECT().GetK8sClient().Times(1).Return(nil, nil)
builder.k8sClientBuilder = mockClientBuilder
},
want: &kubernetes.Sync{},
wantErr: false,
},
{
name: "kubernetes sync - error when retrieving config",
args: args{
uri: "core.openfeature.dev/ff-config",
logger: logger.NewLogger(nil, false),
},
injectFunc: func(builder *SyncBuilder) {
ctrl := gomock.NewController(t)
mockClientBuilder := buildermock.NewMockIK8sClientBuilder(ctrl)
mockClientBuilder.EXPECT().GetK8sClient().Times(1).Return(nil, errors.New("oops"))
builder.k8sClientBuilder = mockClientBuilder
},
want: nil,
wantErr: true,
},
{
name: "file sync",
args: args{
uri: "file:my-file",
logger: logger.NewLogger(nil, false),
},
want: &file.Sync{},
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
sb := NewSyncBuilder()
if tt.injectFunc != nil {
tt.injectFunc(sb)
}
got, err := sb.SyncFromURI(tt.args.uri, tt.args.logger)
if tt.wantErr {
require.NotNil(t, err)
require.Nil(t, got)
} else {
require.Nil(t, err)
require.IsType(t, tt.want, got)
}
})
}
}
func Test_k8sClusterConfig(t *testing.T) {
t.Run("Cannot find KUBECONFIG file", func(tt *testing.T) {
tt.Setenv("KUBECONFIG", "")
_, err := k8sClusterConfig()
if err == nil {
tt.Error("Expected error but got none")
}
})
t.Run("KUBECONFIG file not existing", func(tt *testing.T) {
tt.Setenv("KUBECONFIG", "value")
_, err := k8sClusterConfig()
if err == nil {
tt.Error("Expected error but got none")
}
})
t.Run("Default REST Config and missing svc account", func(tt *testing.T) {
tt.Setenv("KUBERNETES_SERVICE_HOST", "127.0.0.1")
tt.Setenv("KUBERNETES_SERVICE_PORT", "8080")
_, err := k8sClusterConfig()
if err == nil {
tt.Error("Expected error but got none")
}
})
}
func Test_SyncsFromFromConfig(t *testing.T) {
lg := logger.NewLogger(nil, false)
type args struct {
logger *logger.Logger
sources []sync.SourceConfig
}
tests := []struct {
name string
args args
injectFunc func(builder *SyncBuilder)
wantSyncs []sync.ISync
wantErr bool
}{
{
name: "Empty",
args: args{
logger: lg,
sources: []sync.SourceConfig{},
},
wantSyncs: nil,
wantErr: false,
},
{
name: "Error",
args: args{
logger: lg,
sources: []sync.SourceConfig{
{
URI: "fake",
Provider: "disk",
},
},
},
wantSyncs: nil,
wantErr: true,
},
{
name: "single",
args: args{
logger: lg,
sources: []sync.SourceConfig{
{
URI: "grpc://host:port",
Provider: syncProviderGrpc,
ProviderID: "myapp",
CertPath: "/tmp/ca.cert",
Selector: "source=database",
},
},
},
wantSyncs: []sync.ISync{
&grpc.Sync{},
},
wantErr: false,
},
{
name: "grpc-with-msg-size",
args: args{
logger: lg,
sources: []sync.SourceConfig{
{
URI: "grpc://host:port",
Provider: syncProviderGrpc,
ProviderID: "myapp",
CertPath: "/tmp/ca.cert",
Selector: "source=database",
MaxMsgSize: 10,
},
},
},
wantSyncs: []sync.ISync{
&grpc.Sync{},
},
wantErr: false,
},
{
name: "combined",
injectFunc: func(builder *SyncBuilder) {
t.Setenv("AZURE_STORAGE_ACCOUNT", "myaccount")
ctrl := gomock.NewController(t)
mockClientBuilder := buildermock.NewMockIK8sClientBuilder(ctrl)
mockClientBuilder.EXPECT().GetK8sClient().Times(1).Return(nil, nil)
builder.k8sClientBuilder = mockClientBuilder
},
args: args{
logger: lg,
sources: []sync.SourceConfig{
{
URI: "grpc://host:port",
Provider: syncProviderGrpc,
ProviderID: "myapp",
CertPath: "/tmp/ca.cert",
Selector: "source=database",
},
{
URI: "https://host:port",
Provider: syncProviderHTTP,
BearerToken: "token",
},
{
URI: "https://host:port",
Provider: syncProviderHTTP,
AuthHeader: "scheme credentials/token",
},
{
URI: "/tmp/flags.json",
Provider: syncProviderFile,
},
{
URI: "my-namespace/my-flags",
Provider: syncProviderKubernetes,
},
{
URI: "gs://bucket/path/to/file",
Provider: syncProviderGcs,
},
{
URI: "azblob://bucket/path/to/file",
Provider: syncProviderAzblob,
},
{
URI: "s3://bucket/path/to/file",
Provider: syncProviderS3,
},
},
},
wantSyncs: []sync.ISync{
&grpc.Sync{},
&http.Sync{},
&http.Sync{},
&file.Sync{},
&kubernetes.Sync{},
&blob.Sync{},
&blob.Sync{},
&blob.Sync{},
},
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
sb := NewSyncBuilder()
if tt.injectFunc != nil {
tt.injectFunc(sb)
}
syncs, err := sb.SyncsFromConfig(tt.args.sources, tt.args.logger)
if (err != nil) != tt.wantErr {
t.Errorf("syncProvidersFromConfig() error = %v, wantErr %v", err, tt.wantErr)
return
}
require.Len(t, syncs, len(tt.wantSyncs))
// check if we got the expected sync types
for index, wantType := range tt.wantSyncs {
require.IsType(t, wantType, syncs[index])
}
})
}
}
func Test_GcsConfig(t *testing.T) {
lg := logger.NewLogger(nil, false)
defaultInterval := uint32(5)
tests := []struct {
name string
uri string
interval uint32
expectedBucket string
expectedObject string
expectedInterval uint32
}{
{
name: "simple path",
uri: "gs://bucket/path/to/object",
interval: 10,
expectedBucket: "gs://bucket/",
expectedObject: "path/to/object",
expectedInterval: 10,
},
{
name: "default interval",
uri: "gs://bucket/path/to/object",
expectedBucket: "gs://bucket/",
expectedObject: "path/to/object",
expectedInterval: defaultInterval,
},
{
name: "no object set", // Blob syncer will return error when fetching
uri: "gs://bucket/",
expectedBucket: "gs://bucket/",
expectedObject: "",
expectedInterval: defaultInterval,
},
{
name: "malformed uri", // Blob syncer will return error when opening bucket
uri: "malformed",
expectedBucket: "",
expectedObject: "malformed",
expectedInterval: defaultInterval,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
gcsSync := NewSyncBuilder().newGcs(sync.SourceConfig{
URI: tt.uri,
Interval: tt.interval,
}, lg)
require.Equal(t, tt.expectedBucket, gcsSync.Bucket)
require.Equal(t, tt.expectedObject, gcsSync.Object)
require.Equal(t, int(tt.expectedInterval), int(gcsSync.Interval))
})
}
}
func Test_AzblobConfig(t *testing.T) {
lg := logger.NewLogger(nil, false)
defaultInterval := uint32(5)
tests := []struct {
name string
uri string
interval uint32
storageAccount string
expectedBucket string
expectedObject string
expectedInterval uint32
wantErr bool
}{
{
name: "simple path",
uri: "azblob://bucket/path/to/object",
interval: 10,
storageAccount: "myaccount",
expectedBucket: "azblob://bucket/",
expectedObject: "path/to/object",
expectedInterval: 10,
wantErr: false,
},
{
name: "default interval",
uri: "azblob://bucket/path/to/object",
storageAccount: "myaccount",
expectedBucket: "azblob://bucket/",
expectedObject: "path/to/object",
expectedInterval: defaultInterval,
wantErr: false,
},
{
name: "no object set", // Blob syncer will return error when fetching
uri: "azblob://bucket/",
storageAccount: "myaccount",
expectedBucket: "azblob://bucket/",
expectedObject: "",
expectedInterval: defaultInterval,
wantErr: false,
},
{
name: "malformed uri", // Blob syncer will return error when opening bucket
uri: "malformed",
storageAccount: "myaccount",
expectedBucket: "",
expectedObject: "malformed",
expectedInterval: defaultInterval,
wantErr: false,
},
{
name: "storage account not set", // Sync builder will fail and return error
uri: "azblob://bucket/path/to/object",
storageAccount: "",
wantErr: true,
},
{
name: "storage account contains whitespace", // Sync builder will fail and return error
uri: "azblob://bucket/path/to/object",
storageAccount: "my account",
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
t.Setenv("AZURE_STORAGE_ACCOUNT", tt.storageAccount)
azblobSync, err := NewSyncBuilder().newAzblob(sync.SourceConfig{
URI: tt.uri,
Interval: tt.interval,
}, lg)
if (err != nil) != tt.wantErr {
t.Errorf("newAzblob() error = %v, wantErr %v", err, tt.wantErr)
return
}
if (err != nil) && (tt.wantErr == true) {
return
}
require.Equal(t, tt.expectedBucket, azblobSync.Bucket)
require.Equal(t, tt.expectedObject, azblobSync.Object)
require.Equal(t, int(tt.expectedInterval), int(azblobSync.Interval))
})
}
}
func Test_S3Config(t *testing.T) {
lg := logger.NewLogger(nil, false)
defaultInterval := uint32(5)
tests := []struct {
name string
uri string
interval uint32
expectedBucket string
expectedObject string
expectedInterval uint32
}{
{
name: "simple path",
uri: "s3://bucket/path/to/object",
interval: 10,
expectedBucket: "s3://bucket/",
expectedObject: "path/to/object",
expectedInterval: 10,
},
{
name: "default interval",
uri: "s3://bucket/path/to/object",
expectedBucket: "s3://bucket/",
expectedObject: "path/to/object",
expectedInterval: defaultInterval,
},
{
name: "no object set", // Blob syncer will return error when fetching
uri: "s3://bucket/",
expectedBucket: "s3://bucket/",
expectedObject: "",
expectedInterval: defaultInterval,
},
{
name: "malformed uri", // Blob syncer will return error when opening bucket
uri: "malformed",
expectedBucket: "",
expectedObject: "malformed",
expectedInterval: defaultInterval,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
s3Sync := NewSyncBuilder().newS3(sync.SourceConfig{
URI: tt.uri,
Interval: tt.interval,
}, lg)
require.Equal(t, tt.expectedBucket, s3Sync.Bucket)
require.Equal(t, tt.expectedObject, s3Sync.Object)
require.Equal(t, int(tt.expectedInterval), int(s3Sync.Interval))
})
}
}

View File

@ -0,0 +1,93 @@
package builder
import (
"encoding/json"
"errors"
"fmt"
"github.com/open-feature/flagd/core/pkg/sync"
)
// ParseSources parse a json formatted SourceConfig array string and performs validations on the content
func ParseSources(sourcesFlag string) ([]sync.SourceConfig, error) {
syncProvidersParsed := []sync.SourceConfig{}
if err := json.Unmarshal([]byte(sourcesFlag), &syncProvidersParsed); err != nil {
return syncProvidersParsed, fmt.Errorf("error parsing sync providers: %w", err)
}
for _, sp := range syncProvidersParsed {
if sp.URI == "" {
return syncProvidersParsed, errors.New("sync provider argument parse: uri is a required field")
}
if sp.Provider == "" {
return syncProvidersParsed, errors.New("sync provider argument parse: provider is a required field")
}
if sp.AuthHeader != "" && sp.BearerToken != "" {
return syncProvidersParsed, errors.New(
"sync provider argument parse: both authHeader and bearerToken are defined, only one is allowed at a time",
)
}
}
return syncProvidersParsed, nil
}
// ParseSyncProviderURIs uri flag based sync sources to SourceConfig array. Replaces uri prefixes where necessary to
// derive SourceConfig
func ParseSyncProviderURIs(uris []string) ([]sync.SourceConfig, error) {
syncProvidersParsed := []sync.SourceConfig{}
for _, uri := range uris {
switch uriB := []byte(uri); {
case regFile.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: regFile.ReplaceAllString(uri, ""),
Provider: syncProviderFile,
})
case regCrd.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: regCrd.ReplaceAllString(uri, ""),
Provider: syncProviderKubernetes,
})
case regURL.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: uri,
Provider: syncProviderHTTP,
})
case regGRPC.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: regGRPC.ReplaceAllString(uri, ""),
Provider: syncProviderGrpc,
})
case regGRPCSecure.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: regGRPCSecure.ReplaceAllString(uri, ""),
Provider: syncProviderGrpc,
TLS: true,
})
case regGRPCCustomResolver.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: uri,
Provider: syncProviderGrpc,
})
case regGcs.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: uri,
Provider: syncProviderGcs,
})
case regAzblob.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: uri,
Provider: syncProviderAzblob,
})
case regS3.Match(uriB):
syncProvidersParsed = append(syncProvidersParsed, sync.SourceConfig{
URI: uri,
Provider: syncProviderS3,
})
default:
return syncProvidersParsed, fmt.Errorf("invalid sync uri argument: %s, must start with 'file:', "+
"'http(s)://', 'grpc(s)://', 'gs://', 'azblob://' or 'core.openfeature.dev'", uri)
}
}
return syncProvidersParsed, nil
}

View File

@ -1,22 +1,22 @@
package runtime
package builder
import (
"reflect"
"testing"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
)
func TestParseSource(t *testing.T) {
test := map[string]struct {
in string
expectErr bool
out []SourceConfig
out []sync.SourceConfig
}{
"simple": {
in: "[{\"uri\":\"config/samples/example_flags.json\",\"provider\":\"file\"}]",
expectErr: false,
out: []SourceConfig{
out: []sync.SourceConfig{
{
URI: "config/samples/example_flags.json",
Provider: syncProviderFile,
@ -28,10 +28,13 @@ func TestParseSource(t *testing.T) {
{"uri":"config/samples/example_flags.json","provider":"file"},
{"uri":"http://test.com","provider":"http","bearerToken":":)"},
{"uri":"host:port","provider":"grpc"},
{"uri":"default/my-crd","provider":"kubernetes"}
{"uri":"default/my-crd","provider":"kubernetes"},
{"uri":"gs://bucket-name/path/to/file","provider":"gcs"},
{"uri":"azblob://bucket-name/path/to/file","provider":"azblob"},
{"uri":"s3://bucket-name/path/to/file","provider":"s3"}
]`,
expectErr: false,
out: []SourceConfig{
out: []sync.SourceConfig{
{
URI: "config/samples/example_flags.json",
Provider: syncProviderFile,
@ -49,18 +52,34 @@ func TestParseSource(t *testing.T) {
URI: "default/my-crd",
Provider: syncProviderKubernetes,
},
{
URI: "gs://bucket-name/path/to/file",
Provider: syncProviderGcs,
},
{
URI: "azblob://bucket-name/path/to/file",
Provider: syncProviderAzblob,
},
{
URI: "s3://bucket-name/path/to/file",
Provider: syncProviderS3,
},
},
},
"multiple-syncs-with-options": {
in: `[{"uri":"config/samples/example_flags.json","provider":"file"},
{"uri":"http://my-flag-source.json","provider":"http","bearerToken":"bearer-dji34ld2l"},
{"uri":"https://secure-remote","provider":"http","bearerToken":"bearer-dji34ld2l"},
{"uri":"default/my-flag-config","provider":"kubernetes"},
{"uri":"grpc-source:8080","provider":"grpc"},
{"uri":"my-flag-source:8080","provider":"grpc", "tls":true, "certPath": "/certs/ca.cert", "providerID": "flagd-weatherapp-sidecar", "selector": "source=database,app=weatherapp"}]
`,
in: `[
{"uri":"config/samples/example_flags.json","provider":"file"},
{"uri":"http://my-flag-source.json","provider":"http","bearerToken":"bearer-dji34ld2l"},
{"uri":"https://secure-remote","provider":"http","bearerToken":"bearer-dji34ld2l"},
{"uri":"https://secure-remote","provider":"http","authHeader":"Bearer bearer-dji34ld2l"},
{"uri":"https://secure-remote","provider":"http","authHeader":"Basic dXNlcjpwYXNz"},
{"uri":"http://site.com","provider":"http","interval":77 },
{"uri":"default/my-flag-config","provider":"kubernetes"},
{"uri":"grpc-source:8080","provider":"grpc"},
{"uri":"my-flag-source:8080","provider":"grpc", "tls":true, "certPath": "/certs/ca.cert", "providerID": "flagd-weatherapp-sidecar", "selector": "source=database,app=weatherapp"}
]`,
expectErr: false,
out: []SourceConfig{
out: []sync.SourceConfig{
{
URI: "config/samples/example_flags.json",
Provider: syncProviderFile,
@ -75,6 +94,21 @@ func TestParseSource(t *testing.T) {
Provider: syncProviderHTTP,
BearerToken: "bearer-dji34ld2l",
},
{
URI: "https://secure-remote",
Provider: syncProviderHTTP,
AuthHeader: "Bearer bearer-dji34ld2l",
},
{
URI: "https://secure-remote",
Provider: syncProviderHTTP,
AuthHeader: "Basic dXNlcjpwYXNz",
},
{
URI: "http://site.com",
Provider: syncProviderHTTP,
Interval: 77,
},
{
URI: "default/my-flag-config",
Provider: syncProviderKubernetes,
@ -93,15 +127,31 @@ func TestParseSource(t *testing.T) {
},
},
},
"multiple-auth-options": {
in: `[
{"uri":"https://secure-remote","provider":"http","authHeader":"Bearer bearer-dji34ld2l","bearerToken":"bearer-dji34ld2l"}
]`,
expectErr: true,
out: []sync.SourceConfig{
{
URI: "https://secure-remote",
Provider: syncProviderHTTP,
AuthHeader: "Bearer bearer-dji34ld2l",
BearerToken: "bearer-dji34ld2l",
TLS: false,
Interval: 0,
},
},
},
"empty": {
in: `[]`,
expectErr: false,
out: []SourceConfig{},
out: []sync.SourceConfig{},
},
"parse-failure": {
in: ``,
expectErr: true,
out: []SourceConfig{},
out: []sync.SourceConfig{},
},
}
@ -126,14 +176,14 @@ func TestParseSyncProviderURIs(t *testing.T) {
test := map[string]struct {
in []string
expectErr bool
out []SourceConfig
out []sync.SourceConfig
}{
"simple": {
in: []string{
"file:my-file.json",
},
expectErr: false,
out: []SourceConfig{
out: []sync.SourceConfig{
{
URI: "my-file.json",
Provider: "file",
@ -147,9 +197,12 @@ func TestParseSyncProviderURIs(t *testing.T) {
"grpc://host:port",
"grpcs://secure-grpc",
"core.openfeature.dev/default/my-crd",
"gs://bucket-name/path/to/file",
"azblob://bucket-name/path/to/file",
"s3://bucket-name/path/to/file",
},
expectErr: false,
out: []SourceConfig{
out: []sync.SourceConfig{
{
URI: "my-file.json",
Provider: "file",
@ -172,17 +225,29 @@ func TestParseSyncProviderURIs(t *testing.T) {
URI: "default/my-crd",
Provider: "kubernetes",
},
{
URI: "gs://bucket-name/path/to/file",
Provider: syncProviderGcs,
},
{
URI: "azblob://bucket-name/path/to/file",
Provider: syncProviderAzblob,
},
{
URI: "s3://bucket-name/path/to/file",
Provider: syncProviderS3,
},
},
},
"empty": {
in: []string{},
expectErr: false,
out: []SourceConfig{},
out: []sync.SourceConfig{},
},
"parse-failure": {
in: []string{"care.openfeature.dev/will/fail"},
expectErr: true,
out: []SourceConfig{},
out: []sync.SourceConfig{},
},
}
@ -202,99 +267,3 @@ func TestParseSyncProviderURIs(t *testing.T) {
})
}
}
// Note - K8s configuration require K8s client, hence do not use K8s sync provider in this test
func Test_syncProvidersFromConfig(t *testing.T) {
lg := logger.NewLogger(nil, false)
type args struct {
logger *logger.Logger
sources []SourceConfig
}
tests := []struct {
name string
args args
wantSyncs int // simply check the count of ISync providers yield from configurations
wantErr bool
}{
{
name: "Empty",
args: args{
logger: lg,
sources: []SourceConfig{},
},
wantSyncs: 0,
wantErr: false,
},
{
name: "Error",
args: args{
logger: lg,
sources: []SourceConfig{
{
URI: "fake",
Provider: "disk",
},
},
},
wantSyncs: 0,
wantErr: true,
},
{
name: "single",
args: args{
logger: lg,
sources: []SourceConfig{
{
URI: "grpc://host:port",
Provider: syncProviderGrpc,
ProviderID: "myapp",
CertPath: "/tmp/ca.cert",
Selector: "source=database",
},
},
},
wantSyncs: 1,
wantErr: false,
},
{
name: "combined",
args: args{
logger: lg,
sources: []SourceConfig{
{
URI: "grpc://host:port",
Provider: syncProviderGrpc,
ProviderID: "myapp",
CertPath: "/tmp/ca.cert",
Selector: "source=database",
},
{
URI: "https://host:port",
Provider: syncProviderHTTP,
BearerToken: "token",
},
{
URI: "/tmp/flags.json",
Provider: syncProviderFile,
},
},
},
wantSyncs: 3,
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
syncs, err := syncProvidersFromConfig(tt.args.logger, tt.args.sources)
if (err != nil) != tt.wantErr {
t.Errorf("syncProvidersFromConfig() error = %v, wantErr %v", err, tt.wantErr)
return
}
if tt.wantSyncs != len(syncs) {
t.Errorf("syncProvidersFromConfig() yielded = %v, but expected %v", len(syncs), tt.wantSyncs)
}
})
}
}

View File

@ -0,0 +1,202 @@
package file
import (
"context"
"errors"
"fmt"
"io/fs"
"os"
"sync"
"time"
"github.com/fsnotify/fsnotify"
"github.com/open-feature/flagd/core/pkg/logger"
)
// Implements file.Watcher using a timer and os.FileInfo
type fileInfoWatcher struct {
// Event Chan
evChan chan fsnotify.Event
// Errors Chan
erChan chan error
// logger
logger *logger.Logger
// Func to wrap os.Stat (injection point for test helpers)
statFunc func(string) (fs.FileInfo, error)
// thread-safe interface to underlying files we are watching
mu sync.RWMutex
watches map[string]fs.FileInfo // filename -> info
}
// NewFsNotifyWatcher returns a new fsNotifyWatcher
func NewFileInfoWatcher(ctx context.Context, logger *logger.Logger) Watcher {
fiw := &fileInfoWatcher{
evChan: make(chan fsnotify.Event, 32),
erChan: make(chan error, 32),
statFunc: getFileInfo,
logger: logger,
watches: make(map[string]fs.FileInfo),
}
fiw.run(ctx, (1 * time.Second))
return fiw
}
// fileInfoWatcher explicitly implements file.Watcher
var _ Watcher = &fileInfoWatcher{}
// Close calls close on the underlying fsnotify.Watcher
func (f *fileInfoWatcher) Close() error {
// close all channels and exit
close(f.evChan)
close(f.erChan)
return nil
}
// Add calls Add on the underlying fsnotify.Watcher
func (f *fileInfoWatcher) Add(name string) error {
f.mu.Lock()
defer f.mu.Unlock()
// exit early if name already exists
if _, ok := f.watches[name]; ok {
return nil
}
info, err := f.statFunc(name)
if err != nil {
return err
}
f.watches[name] = info
return nil
}
// Remove calls Remove on the underlying fsnotify.Watcher
func (f *fileInfoWatcher) Remove(name string) error {
f.mu.Lock()
defer f.mu.Unlock()
// no need to exit early, deleting non-existent key is a no-op
delete(f.watches, name)
return nil
}
// Watchlist calls watchlist on the underlying fsnotify.Watcher
func (f *fileInfoWatcher) WatchList() []string {
f.mu.RLock()
defer f.mu.RUnlock()
out := []string{}
for name := range f.watches {
n := name
out = append(out, n)
}
return out
}
// Events returns the underlying watcher's Events chan
func (f *fileInfoWatcher) Events() chan fsnotify.Event {
return f.evChan
}
// Errors returns the underlying watcher's Errors chan
func (f *fileInfoWatcher) Errors() chan error {
return f.erChan
}
// run is a blocking function that starts the filewatcher's timer thread
func (f *fileInfoWatcher) run(ctx context.Context, s time.Duration) {
// timer thread
go func() {
// execute update on the configured interval of time
ticker := time.NewTicker(s)
defer ticker.Stop()
for {
select {
case <-ctx.Done():
return
case <-ticker.C:
if err := f.update(); err != nil {
f.erChan <- err
return
}
}
}
}()
}
func (f *fileInfoWatcher) update() error {
f.mu.Lock()
defer f.mu.Unlock()
for path, info := range f.watches {
newInfo, err := f.statFunc(path)
if err != nil {
// if the file isn't there, it must have been removed
// fire off a remove event and remove it from the watches
if errors.Is(err, os.ErrNotExist) {
f.evChan <- fsnotify.Event{
Name: path,
Op: fsnotify.Remove,
}
delete(f.watches, path)
continue
}
return err
}
// if the new stat doesn't match the old stat, figure out what changed
if info != newInfo {
event := f.generateEvent(path, newInfo)
if event != nil {
f.evChan <- *event
}
f.watches[path] = newInfo
}
}
return nil
}
// generateEvent figures out what changed and generates an fsnotify.Event for it. (if we care)
// file removal are handled above in the update() method
func (f *fileInfoWatcher) generateEvent(path string, newInfo fs.FileInfo) *fsnotify.Event {
info := f.watches[path]
switch {
// new mod time is more recent than old mod time, generate a write event
case newInfo.ModTime().After(info.ModTime()):
return &fsnotify.Event{
Name: path,
Op: fsnotify.Write,
}
// the file modes changed, generate a chmod event
case info.Mode() != newInfo.Mode():
return &fsnotify.Event{
Name: path,
Op: fsnotify.Chmod,
}
// nothing changed that we care about
default:
return nil
}
}
// getFileInfo returns the fs.FileInfo for the given path
func getFileInfo(path string) (fs.FileInfo, error) {
f, err := os.Open(path)
if err != nil {
return nil, fmt.Errorf("error from os.Open(%s): %w", path, err)
}
info, err := f.Stat()
if err != nil {
return info, fmt.Errorf("error from fs.Stat(%s): %w", path, err)
}
if err := f.Close(); err != nil {
return info, fmt.Errorf("err from fs.Close(%s): %w", path, err)
}
return info, nil
}

View File

@ -0,0 +1,248 @@
package file
import (
"errors"
"fmt"
"io/fs"
"os"
"testing"
"time"
"github.com/fsnotify/fsnotify"
"github.com/google/go-cmp/cmp"
)
func Test_fileInfoWatcher_Close(t *testing.T) {
tests := []struct {
name string
watcher *fileInfoWatcher
wantErr bool
}{
{
name: "all chans close",
watcher: makeTestWatcher(t, map[string]fs.FileInfo{}),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := tt.watcher.Close(); (err != nil) != tt.wantErr {
t.Errorf("fileInfoWatcher.Close() error = %v, wantErr %v", err, tt.wantErr)
}
if _, ok := (<-tt.watcher.Errors()); ok != false {
t.Error("fileInfoWatcher.Close() failed to close error chan")
}
if _, ok := (<-tt.watcher.Events()); ok != false {
t.Error("fileInfoWatcher.Close() failed to close events chan")
}
})
}
}
func Test_fileInfoWatcher_Add(t *testing.T) {
tests := []struct {
name string
watcher *fileInfoWatcher
add []string
want map[string]fs.FileInfo
wantErr bool
}{
{
name: "add one watch",
watcher: makeTestWatcher(t, map[string]fs.FileInfo{}),
add: []string{"/foo"},
want: map[string]fs.FileInfo{
"/foo": &mockFileInfo{},
},
},
}
for _, tt := range tests {
tt.watcher.statFunc = makeStatFunc(t, &mockFileInfo{})
t.Run(tt.name, func(t *testing.T) {
for _, path := range tt.add {
if err := tt.watcher.Add(path); (err != nil) != tt.wantErr {
t.Errorf("fileInfoWatcher.Add() error = %v, wantErr %v", err, tt.wantErr)
}
}
if !cmp.Equal(tt.watcher.watches, tt.want, cmp.AllowUnexported(mockFileInfo{})) {
t.Errorf("fileInfoWatcher.Add(): want-, got+: %v ", cmp.Diff(tt.want, tt.watcher.watches))
}
})
}
}
func Test_fileInfoWatcher_Remove(t *testing.T) {
tests := []struct {
name string
watcher *fileInfoWatcher
removeThis string
want []string
}{{
name: "remove foo",
watcher: makeTestWatcher(t, map[string]fs.FileInfo{"foo": &mockFileInfo{}, "bar": &mockFileInfo{}}),
removeThis: "foo",
want: []string{"bar"},
}}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
err := tt.watcher.Remove(tt.removeThis)
if err != nil {
t.Errorf("fileInfoWatcher.Remove() error = %v", err)
}
if !cmp.Equal(tt.watcher.WatchList(), tt.want) {
t.Errorf("fileInfoWatcher.Add(): want-, got+: %v ", cmp.Diff(tt.want, tt.watcher.WatchList()))
}
})
}
}
func Test_fileInfoWatcher_update(t *testing.T) {
tests := []struct {
name string
watcher *fileInfoWatcher
statFunc func(string) (fs.FileInfo, error)
wantErr bool
want *fsnotify.Event
}{
{
name: "chmod",
watcher: makeTestWatcher(t,
map[string]fs.FileInfo{
"foo": &mockFileInfo{
name: "foo",
mode: 0,
},
},
),
statFunc: func(_ string) (fs.FileInfo, error) {
return &mockFileInfo{
name: "foo",
mode: 1,
}, nil
},
want: &fsnotify.Event{Name: "foo", Op: fsnotify.Chmod},
},
{
name: "write",
watcher: makeTestWatcher(t,
map[string]fs.FileInfo{
"foo": &mockFileInfo{
name: "foo",
modTime: time.Now().Local(),
},
},
),
statFunc: func(_ string) (fs.FileInfo, error) {
return &mockFileInfo{
name: "foo",
modTime: (time.Now().Local().Add(5 * time.Minute)),
}, nil
},
want: &fsnotify.Event{Name: "foo", Op: fsnotify.Write},
},
{
name: "remove",
watcher: makeTestWatcher(t,
map[string]fs.FileInfo{
"foo": &mockFileInfo{
name: "foo",
},
},
),
statFunc: func(_ string) (fs.FileInfo, error) {
return nil, fmt.Errorf("mock file-no-existy error: %w", os.ErrNotExist)
},
want: &fsnotify.Event{Name: "foo", Op: fsnotify.Remove},
},
{
name: "unknown error",
watcher: makeTestWatcher(t,
map[string]fs.FileInfo{
"foo": &mockFileInfo{
name: "foo",
},
},
),
statFunc: func(_ string) (fs.FileInfo, error) {
return nil, errors.New("unhandled error")
},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
// set the statFunc
tt.watcher.statFunc = tt.statFunc
// run an update
// this also flexes fileinfowatcher.generateEvent()
err := tt.watcher.update()
if err != nil {
if tt.wantErr {
return
}
t.Errorf("fileInfoWatcher.update() unexpected error = %v, wantErr %v", err, tt.wantErr)
}
// slurp an event off the event chan
out := <-tt.watcher.Events()
if out != *tt.want {
t.Errorf("fileInfoWatcher.update() wanted %v, got %v", tt.want, out)
}
})
}
}
// Helpers
// makeTestWatcher returns a pointer to a fileInfoWatcher suitable for testing
func makeTestWatcher(t *testing.T, watches map[string]fs.FileInfo) *fileInfoWatcher {
t.Helper()
return &fileInfoWatcher{
evChan: make(chan fsnotify.Event, 512),
erChan: make(chan error, 512),
watches: watches,
}
}
// makeStateFunc returns an os.Stat wrapper that parrots back whatever its
// constructor is given
func makeStatFunc(t *testing.T, fi fs.FileInfo) func(string) (fs.FileInfo, error) {
t.Helper()
return func(_ string) (fs.FileInfo, error) {
return fi, nil
}
}
// mockFileInfo implements fs.FileInfo for mocks
type mockFileInfo struct {
name string // base name of the file
size int64 // length in bytes for regular files; system-dependent for others
mode fs.FileMode // file mode bits
modTime time.Time // modification time
}
// explicitly impements fs.FileInfo
var _ fs.FileInfo = &mockFileInfo{}
func (mfi *mockFileInfo) Name() string {
return mfi.name
}
func (mfi *mockFileInfo) Size() int64 {
return mfi.size
}
func (mfi *mockFileInfo) Mode() fs.FileMode {
return mfi.mode
}
func (mfi *mockFileInfo) ModTime() time.Time {
return mfi.modTime
}
func (mfi *mockFileInfo) IsDir() bool {
return false
}
func (mfi *mockFileInfo) Sys() any {
return "foo"
}

View File

@ -2,48 +2,79 @@ package file
import (
"context"
"encoding/json"
"errors"
"fmt"
"io"
"os"
"strings"
"path/filepath"
msync "sync"
"gopkg.in/yaml.v3"
"github.com/fsnotify/fsnotify"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/open-feature/flagd/core/pkg/utils"
)
const (
FSNOTIFY = "fsnotify"
FILEINFO = "fileinfo"
)
type Watcher interface {
Close() error
Add(name string) error
Remove(name string) error
WatchList() []string
Events() chan fsnotify.Event
Errors() chan error
}
type Sync struct {
URI string
Logger *logger.Logger
// FileType indicates the file type e.g., json, yaml/yml etc.,
fileType string
watcher *fsnotify.Watcher
ready bool
Mux *msync.RWMutex
// watchType indicates how to watch the file FSNOTIFY|FILEINFO
watchType string
watcher Watcher
ready bool
Mux *msync.RWMutex
}
func NewFileSync(uri string, watchType string, logger *logger.Logger) *Sync {
return &Sync{
URI: uri,
watchType: watchType,
Logger: logger,
Mux: &msync.RWMutex{},
}
}
// default state is used to prevent EOF errors when handling filepath delete events + empty files
const defaultState = "{}"
func (fs *Sync) ReSync(ctx context.Context, dataSync chan<- sync.DataSync) error {
fs.sendDataSync(ctx, sync.ALL, dataSync)
fs.sendDataSync(ctx, dataSync)
return nil
}
func (fs *Sync) Init(_ context.Context) error {
func (fs *Sync) Init(ctx context.Context) error {
fs.Logger.Info("Starting filepath sync notifier")
w, err := fsnotify.NewWatcher()
if err != nil {
return err
switch fs.watchType {
case FSNOTIFY, "":
w, err := NewFSNotifyWatcher()
if err != nil {
return fmt.Errorf("error creating fsnotify watcher: %w", err)
}
fs.watcher = w
case FILEINFO:
w := NewFileInfoWatcher(ctx, fs.Logger)
fs.watcher = w
default:
return fmt.Errorf("unknown watcher type: '%s'", fs.watchType)
}
fs.watcher = w
err = fs.watcher.Add(fs.URI)
if err != nil {
return err
if err := fs.watcher.Add(fs.URI); err != nil {
return fmt.Errorf("error adding watcher %s: %w", fs.URI, err)
}
return nil
}
@ -63,12 +94,12 @@ func (fs *Sync) setReady(val bool) {
//nolint:funlen
func (fs *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
defer fs.watcher.Close()
fs.sendDataSync(ctx, sync.ALL, dataSync)
fs.sendDataSync(ctx, dataSync)
fs.setReady(true)
fs.Logger.Info(fmt.Sprintf("watching filepath: %s", fs.URI))
for {
select {
case event, ok := <-fs.watcher.Events:
case event, ok := <-fs.watcher.Events():
if !ok {
fs.Logger.Info("filepath notifier closed")
return errors.New("filepath notifier closed")
@ -77,7 +108,7 @@ func (fs *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
fs.Logger.Info(fmt.Sprintf("filepath event: %s %s", event.Name, event.Op.String()))
switch {
case event.Has(fsnotify.Create) || event.Has(fsnotify.Write):
fs.sendDataSync(ctx, sync.ALL, dataSync)
fs.sendDataSync(ctx, dataSync)
case event.Has(fsnotify.Remove):
// K8s exposes config maps as symlinks.
// Updates cause a remove event, we need to re-add the watcher in this case.
@ -85,24 +116,24 @@ func (fs *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
if err != nil {
// the watcher could not be re-added, so the file must have been deleted
fs.Logger.Error(fmt.Sprintf("error restoring watcher, file may have been deleted: %s", err.Error()))
fs.sendDataSync(ctx, sync.DELETE, dataSync)
fs.sendDataSync(ctx, dataSync)
continue
}
// Counterintuitively, remove events are the only meaningful ones seen in K8s.
// K8s handles mounted ConfigMap updates by modifying symbolic links, which is an atomic operation.
// At the point the remove event is fired, we have our new data, so we can send it down the channel.
fs.sendDataSync(ctx, sync.ALL, dataSync)
fs.sendDataSync(ctx, dataSync)
case event.Has(fsnotify.Chmod):
// on linux the REMOVE event will not fire until all file descriptors are closed, this cannot happen
// while the file is being watched, os.Stat is used here to infer deletion
if _, err := os.Stat(fs.URI); errors.Is(err, os.ErrNotExist) {
fs.Logger.Error(fmt.Sprintf("file has been deleted: %s", err.Error()))
fs.sendDataSync(ctx, sync.DELETE, dataSync)
fs.sendDataSync(ctx, dataSync)
}
}
case err, ok := <-fs.watcher.Errors:
case err, ok := <-fs.watcher.Errors():
if !ok {
fs.setReady(false)
return errors.New("watcher error")
@ -116,61 +147,43 @@ func (fs *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
}
}
func (fs *Sync) sendDataSync(ctx context.Context, syncType sync.Type, dataSync chan<- sync.DataSync) {
fs.Logger.Debug(fmt.Sprintf("Configuration %s: %s", fs.URI, syncType.String()))
func (fs *Sync) sendDataSync(ctx context.Context, dataSync chan<- sync.DataSync) {
fs.Logger.Debug(fmt.Sprintf("Data sync received for %s", fs.URI))
msg := defaultState
if syncType != sync.DELETE {
m, err := fs.fetch(ctx)
if err != nil {
fs.Logger.Error(fmt.Sprintf("Error fetching %s: %s", fs.URI, err.Error()))
}
if m == "" {
fs.Logger.Warn(fmt.Sprintf("file %s is empty", fs.URI))
} else {
msg = m
}
m, err := fs.fetch(ctx)
if err != nil {
fs.Logger.Error(fmt.Sprintf("Error fetching %s: %s", fs.URI, err.Error()))
}
if m == "" {
fs.Logger.Warn(fmt.Sprintf("file %s is empty", fs.URI))
} else {
msg = m
}
dataSync <- sync.DataSync{FlagData: msg, Source: fs.URI, Type: syncType}
dataSync <- sync.DataSync{FlagData: msg, Source: fs.URI}
}
func (fs *Sync) fetch(_ context.Context) (string, error) {
if fs.URI == "" {
return "", errors.New("no filepath string set")
}
if fs.fileType == "" {
uriSplit := strings.Split(fs.URI, ".")
fs.fileType = uriSplit[len(uriSplit)-1]
}
rawFile, err := os.ReadFile(fs.URI)
file, err := os.Open(fs.URI)
if err != nil {
return "", err
return "", fmt.Errorf("error opening file %s: %w", fs.URI, err)
}
defer file.Close()
switch fs.fileType {
case "yaml", "yml":
return yamlToJSON(rawFile)
case "json":
return string(rawFile), nil
default:
return "", fmt.Errorf("filepath extension for URI: '%s' is not supported", fs.URI)
}
}
// yamlToJSON is a generic helper function to convert
// yaml to json
func yamlToJSON(rawFile []byte) (string, error) {
var ms map[string]interface{}
// yaml.Unmarshal unmarshals to map[interface]interface{}
if err := yaml.Unmarshal(rawFile, &ms); err != nil {
return "", fmt.Errorf("unmarshal yaml: %w", err)
}
r, err := json.Marshal(ms)
data, err := io.ReadAll(file)
if err != nil {
return "", fmt.Errorf("convert yaml to json: %w", err)
return "", fmt.Errorf("error reading file %s: %w", fs.URI, err)
}
return string(r), err
// File extension is used to determine the content type, so media type is unnecessary
json, err := utils.ConvertToJSON(data, filepath.Ext(fs.URI), "")
if err != nil {
return "", fmt.Errorf("error converting file content to json: %w", err)
}
return json, nil
}

View File

@ -5,132 +5,118 @@ import (
"fmt"
"log"
"os"
"path/filepath"
"reflect"
msync "sync"
"testing"
"time"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
)
const (
fetchDirName = "test"
fetchFileName = "to_fetch.json"
fetchFileContents = "fetch me"
)
func TestSimpleReSync(t *testing.T) {
tests := map[string]struct {
fileContents string
expectedDataSync sync.DataSync
}{
"simple-read": {
fileContents: "hello",
expectedDataSync: sync.DataSync{
FlagData: "hello",
Source: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
Type: sync.ALL,
},
},
fetchDirName := t.TempDir()
source := filepath.Join(fetchDirName, fetchFileName)
expectedDataSync := sync.DataSync{
FlagData: "hello",
Source: source,
}
handler := Sync{
URI: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
URI: source,
Logger: logger.NewLogger(nil, false),
}
for test, tt := range tests {
t.Run(test, func(t *testing.T) {
defer t.Cleanup(cleanupFilePath)
setupDir(t)
createFile(t)
writeToFile(t, tt.fileContents)
createFile(t, fetchDirName)
writeToFile(t, fetchDirName, "hello")
ctx := context.Background()
dataSyncChan := make(chan sync.DataSync, 1)
ctx := context.Background()
dataSyncChan := make(chan sync.DataSync, 1)
go func() {
err := handler.ReSync(ctx, dataSyncChan)
if err != nil {
log.Fatalf("Error start sync: %s", err.Error())
return
}
}()
go func() {
err := handler.ReSync(ctx, dataSyncChan)
if err != nil {
log.Fatalf("Error start sync: %s", err.Error())
return
}
}()
select {
case s := <-dataSyncChan:
if !reflect.DeepEqual(tt.expectedDataSync, s) {
t.Errorf("resync failed, incorrect datasync value, got %v want %v", s, tt.expectedDataSync)
}
case <-time.After(5 * time.Second):
t.Error("timed out waiting for datasync")
}
})
select {
case s := <-dataSyncChan:
if !reflect.DeepEqual(expectedDataSync, s) {
t.Errorf("resync failed, incorrect datasync value, got %v want %v", s, expectedDataSync)
}
case <-time.After(5 * time.Second):
t.Error("timed out waiting for datasync")
}
}
func TestSimpleSync(t *testing.T) {
readDirName := t.TempDir()
updateDirName := t.TempDir()
deleteDirName := t.TempDir()
tests := map[string]struct {
manipulationFuncs []func(t *testing.T)
expectedDataSync []sync.DataSync
fetchDirName string
}{
"simple-read": {
fetchDirName: readDirName,
manipulationFuncs: []func(t *testing.T){
func(t *testing.T) {
writeToFile(t, fetchFileContents)
writeToFile(t, readDirName, fetchFileContents)
},
},
expectedDataSync: []sync.DataSync{
{
FlagData: fetchFileContents,
Source: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
Type: sync.ALL,
Source: fmt.Sprintf("%s/%s", readDirName, fetchFileName),
},
},
},
"update-event": {
fetchDirName: updateDirName,
manipulationFuncs: []func(t *testing.T){
func(t *testing.T) {
writeToFile(t, fetchFileContents)
writeToFile(t, updateDirName, fetchFileContents)
},
func(t *testing.T) {
writeToFile(t, "new content")
writeToFile(t, updateDirName, "new content")
},
},
expectedDataSync: []sync.DataSync{
{
FlagData: fetchFileContents,
Source: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
Type: sync.ALL,
Source: fmt.Sprintf("%s/%s", updateDirName, fetchFileName),
},
{
FlagData: "new content",
Source: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
Type: sync.ALL,
Source: fmt.Sprintf("%s/%s", updateDirName, fetchFileName),
},
},
},
"delete-event": {
fetchDirName: deleteDirName,
manipulationFuncs: []func(t *testing.T){
func(t *testing.T) {
writeToFile(t, fetchFileContents)
writeToFile(t, deleteDirName, fetchFileContents)
},
func(t *testing.T) {
deleteFile(t, fetchDirName, fetchFileName)
deleteFile(t, deleteDirName, fetchFileName)
},
},
expectedDataSync: []sync.DataSync{
{
FlagData: fetchFileContents,
Source: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
Type: sync.ALL,
Source: fmt.Sprintf("%s/%s", deleteDirName, fetchFileName),
},
{
FlagData: defaultState,
Source: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
Type: sync.DELETE,
Source: fmt.Sprintf("%s/%s", deleteDirName, fetchFileName),
},
},
},
@ -138,16 +124,14 @@ func TestSimpleSync(t *testing.T) {
for test, tt := range tests {
t.Run(test, func(t *testing.T) {
defer t.Cleanup(cleanupFilePath)
setupDir(t)
createFile(t)
createFile(t, tt.fetchDirName)
ctx := context.Background()
dataSyncChan := make(chan sync.DataSync, len(tt.expectedDataSync))
syncHandler := Sync{
URI: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
URI: fmt.Sprintf("%s/%s", tt.fetchDirName, fetchFileName),
Logger: logger.NewLogger(nil, false),
Mux: &msync.RWMutex{},
}
@ -182,9 +166,6 @@ func TestSimpleSync(t *testing.T) {
if data.Source != syncEvent.Source {
t.Errorf("expected source: %s, but received source: %s", syncEvent.Source, data.Source)
}
if data.Type != syncEvent.Type {
t.Errorf("expected type: %b, but received type: %b", syncEvent.Type, data.Type)
}
case <-time.After(10 * time.Second):
t.Errorf("event not found, timeout out after 10 seconds")
}
@ -199,13 +180,17 @@ func TestSimpleSync(t *testing.T) {
}
func TestFilePathSync_Fetch(t *testing.T) {
successDirName := t.TempDir()
failureDirName := t.TempDir()
tests := map[string]struct {
fpSync Sync
handleResponse func(t *testing.T, fetched string, err error)
fetchDirName string
}{
"success": {
fetchDirName: successDirName,
fpSync: Sync{
URI: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
URI: fmt.Sprintf("%s/%s", successDirName, fetchFileName),
Logger: logger.NewLogger(nil, false),
},
handleResponse: func(t *testing.T, fetched string, err error) {
@ -219,8 +204,9 @@ func TestFilePathSync_Fetch(t *testing.T) {
},
},
"not found": {
fetchDirName: failureDirName,
fpSync: Sync{
URI: fmt.Sprintf("%s/%s", fetchDirName, "not_found"),
URI: fmt.Sprintf("%s/%s", failureDirName, "not_found"),
Logger: logger.NewLogger(nil, false),
},
handleResponse: func(t *testing.T, fetched string, err error) {
@ -233,10 +219,8 @@ func TestFilePathSync_Fetch(t *testing.T) {
for name, tt := range tests {
t.Run(name, func(t *testing.T) {
setupDir(t)
createFile(t)
writeToFile(t, fetchFileContents)
defer t.Cleanup(cleanupFilePath)
createFile(t, tt.fetchDirName)
writeToFile(t, tt.fetchDirName, fetchFileContents)
data, err := tt.fpSync.fetch(context.Background())
@ -246,16 +230,15 @@ func TestFilePathSync_Fetch(t *testing.T) {
}
func TestIsReadySyncFlag(t *testing.T) {
fetchDirName := t.TempDir()
fpSync := Sync{
URI: fmt.Sprintf("%s/%s", fetchDirName, fetchFileName),
Logger: logger.NewLogger(nil, false),
Mux: &msync.RWMutex{},
}
setupDir(t)
createFile(t)
writeToFile(t, fetchFileContents)
defer t.Cleanup(cleanupFilePath)
createFile(t, fetchDirName)
writeToFile(t, fetchDirName, fetchFileContents)
if fpSync.IsReady() != false {
t.Errorf("expected not to be ready")
}
@ -283,31 +266,25 @@ func TestIsReadySyncFlag(t *testing.T) {
}
}
func cleanupFilePath() {
if err := os.RemoveAll(fetchDirName); err != nil {
log.Fatalf("rmdir: %v", err)
}
}
func deleteFile(t *testing.T, dirName string, fileName string) {
if err := os.Remove(fmt.Sprintf("%s/%s", dirName, fileName)); err != nil {
t.Fatal(err)
}
}
func setupDir(t *testing.T) {
if err := os.Mkdir(fetchDirName, os.ModePerm); err != nil {
func createFile(t *testing.T, fetchDirName string) {
f, err := os.Create(fmt.Sprintf("%s/%s", fetchDirName, fetchFileName))
defer func(file *os.File) {
if err := file.Close(); err != nil {
log.Fatalf("close file: %v", err)
}
}(f)
if err != nil {
t.Fatal(err)
}
}
func createFile(t *testing.T) {
if _, err := os.Create(fmt.Sprintf("%s/%s", fetchDirName, fetchFileName)); err != nil {
t.Fatal(err)
}
}
func writeToFile(t *testing.T, fileContents string) {
func writeToFile(t *testing.T, fetchDirName, fileContents string) {
file, err := os.OpenFile(fmt.Sprintf("%s/%s", fetchDirName, fetchFileName), os.O_RDWR, 0o644)
if err != nil {
t.Fatal(err)

View File

@ -0,0 +1,67 @@
package file
import (
"fmt"
"github.com/fsnotify/fsnotify"
)
// Implements file.Watcher by wrapping fsnotify.Watcher
// This is only necessary because fsnotify.Watcher directly exposes its Errors
// and Events channels rather than returning them by method invocation
type fsNotifyWatcher struct {
watcher *fsnotify.Watcher
}
// NewFsNotifyWatcher returns a new fsNotifyWatcher
func NewFSNotifyWatcher() (Watcher, error) {
fsn, err := fsnotify.NewWatcher()
if err != nil {
return nil, fmt.Errorf("fsnotify: %w", err)
}
return &fsNotifyWatcher{
watcher: fsn,
}, nil
}
// explicitly implements file.Watcher
var _ Watcher = &fsNotifyWatcher{}
// Close calls close on the underlying fsnotify.Watcher
func (f *fsNotifyWatcher) Close() error {
if err := f.watcher.Close(); err != nil {
return fmt.Errorf("fsnotify: %w", err)
}
return nil
}
// Add calls Add on the underlying fsnotify.Watcher
func (f *fsNotifyWatcher) Add(name string) error {
if err := f.watcher.Add(name); err != nil {
return fmt.Errorf("fsnotify: %w", err)
}
return nil
}
// Remove calls Remove on the underlying fsnotify.Watcher
func (f *fsNotifyWatcher) Remove(name string) error {
if err := f.watcher.Remove(name); err != nil {
return fmt.Errorf("fsnotify: %w", err)
}
return nil
}
// Watchlist calls watchlist on the underlying fsnotify.Watcher
func (f *fsNotifyWatcher) WatchList() []string {
return f.watcher.WatchList()
}
// Events returns the underlying watcher's Events chan
func (f *fsNotifyWatcher) Events() chan fsnotify.Event {
return f.watcher.Events
}
// Errors returns the underlying watcher's Errors chan
func (f *fsNotifyWatcher) Errors() chan error {
return f.watcher.Errors
}

View File

@ -38,7 +38,7 @@ func (cb *CredentialBuilder) Build(secure bool, certPath string) (credentials.Tr
// Rely on provided certificate
certBytes, err := os.ReadFile(certPath)
if err != nil {
return nil, err
return nil, fmt.Errorf("unable to read file %s: %w", certPath, err)
}
cp := x509.NewCertPool()

View File

@ -1,5 +1,10 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: pkg/sync/grpc/credentials/builder.go
//
// Generated by this command:
//
// mockgen -source=pkg/sync/grpc/credentials/builder.go -destination=pkg/sync/grpc/credentials/mock/builder.go -package=credendialsmock
//
// Package credendialsmock is a generated GoMock package.
package credendialsmock
@ -7,7 +12,7 @@ package credendialsmock
import (
reflect "reflect"
gomock "github.com/golang/mock/gomock"
gomock "go.uber.org/mock/gomock"
credentials "google.golang.org/grpc/credentials"
)
@ -44,7 +49,7 @@ func (m *MockBuilder) Build(secure bool, certPath string) (credentials.Transport
}
// Build indicates an expected call of Build.
func (mr *MockBuilderMockRecorder) Build(secure, certPath interface{}) *gomock.Call {
func (mr *MockBuilderMockRecorder) Build(secure, certPath any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Build", reflect.TypeOf((*MockBuilder)(nil).Build), secure, certPath)
}

View File

@ -7,21 +7,22 @@ import (
msync "sync"
"time"
grpccredential "github.com/open-feature/flagd/core/pkg/sync/grpc/credentials"
"buf.build/gen/go/open-feature/flagd/grpc/go/sync/v1/syncv1grpc"
v1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/sync/v1"
"buf.build/gen/go/open-feature/flagd/grpc/go/flagd/sync/v1/syncv1grpc"
v1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/flagd/sync/v1"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
grpccredential "github.com/open-feature/flagd/core/pkg/sync/grpc/credentials"
_ "github.com/open-feature/flagd/core/pkg/sync/grpc/nameresolvers" // initialize custom resolvers e.g. envoy.Init()
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
const (
// Prefix for GRPC URL inputs. GRPC does not define a standard prefix. This prefix helps to differentiate remote
// URLs for REST APIs (i.e - HTTP) from GRPC endpoints.
Prefix = "grpc://"
PrefixSecure = "grpcs://"
Prefix = "grpc://"
PrefixSecure = "grpcs://"
SupportedScheme = "(envoy|dns|uds|xds)"
// Connection retry constants
// Back off period is calculated with backOffBase ^ #retry-iteration. However, when #retry-iteration count reach
@ -43,29 +44,49 @@ type FlagSyncServiceClientResponse interface {
var once msync.Once
type Sync struct {
CertPath string
CredentialBuilder grpccredential.Builder
Logger *logger.Logger
ProviderID string
Secure bool
Selector string
URI string
GrpcDialOptionsOverride []grpc.DialOption
CertPath string
CredentialBuilder grpccredential.Builder
Logger *logger.Logger
ProviderID string
Secure bool
Selector string
URI string
MaxMsgSize int
client FlagSyncServiceClient
ready bool
}
func (g *Sync) Init(ctx context.Context) error {
tCredentials, err := g.CredentialBuilder.Build(g.Secure, g.CertPath)
if err != nil {
g.Logger.Error(fmt.Sprintf("error building transport credentials: %s", err.Error()))
return err
func (g *Sync) Init(_ context.Context) error {
var rpcCon *grpc.ClientConn // Reusable client connection
var err error
if len(g.GrpcDialOptionsOverride) > 0 {
g.Logger.Debug("GRPC DialOptions override provided")
rpcCon, err = grpc.NewClient(g.URI, g.GrpcDialOptionsOverride...)
} else {
var tCredentials credentials.TransportCredentials
tCredentials, err = g.CredentialBuilder.Build(g.Secure, g.CertPath)
if err != nil {
err = fmt.Errorf("error building transport credentials: %w", err)
g.Logger.Error(err.Error())
return err
}
// Set MaxMsgSize if passed
if g.MaxMsgSize > 0 {
g.Logger.Info(fmt.Sprintf("setting max receive message size %d bytes default 4MB", g.MaxMsgSize))
dialOptions := grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(g.MaxMsgSize))
rpcCon, err = grpc.NewClient(g.URI, grpc.WithTransportCredentials(tCredentials), dialOptions)
} else {
rpcCon, err = grpc.NewClient(g.URI, grpc.WithTransportCredentials(tCredentials))
}
}
// Derive reusable client connection
rpcCon, err := grpc.DialContext(ctx, g.URI, grpc.WithTransportCredentials(tCredentials))
if err != nil {
g.Logger.Error(fmt.Sprintf("error initiating grpc client connection: %s", err.Error()))
err := fmt.Errorf("error initiating grpc client connection: %w", err)
g.Logger.Error(err.Error())
return err
}
@ -76,15 +97,15 @@ func (g *Sync) Init(ctx context.Context) error {
}
func (g *Sync) ReSync(ctx context.Context, dataSync chan<- sync.DataSync) error {
res, err := g.client.FetchAllFlags(ctx, &v1.FetchAllFlagsRequest{})
res, err := g.client.FetchAllFlags(ctx, &v1.FetchAllFlagsRequest{ProviderId: g.ProviderID, Selector: g.Selector})
if err != nil {
g.Logger.Error(fmt.Sprintf("fetching all flags: %s", err.Error()))
err = fmt.Errorf("error fetching all flags: %w", err)
g.Logger.Error(err.Error())
return err
}
dataSync <- sync.DataSync{
FlagData: res.GetFlagConfiguration(),
Source: g.URI,
Type: sync.ALL,
}
return nil
}
@ -97,14 +118,14 @@ func (g *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
// Initialize SyncFlags client. This fails if server connection establishment fails (ex:- grpc server offline)
syncClient, err := g.client.SyncFlags(ctx, &v1.SyncFlagsRequest{ProviderId: g.ProviderID, Selector: g.Selector})
if err != nil {
return err
return fmt.Errorf("unable to sync flags: %w", err)
}
// Initial stream listening. Error will be logged and continue and retry connection establishment
err = g.handleFlagSync(syncClient, dataSync)
if err == nil {
// This should not happen as handleFlagSync expects to return with an error
return err
return nil
}
g.Logger.Warn(fmt.Sprintf("error with stream listener: %s", err.Error()))
@ -137,15 +158,15 @@ func (g *Sync) connectWithRetry(
for {
var sleep time.Duration
if iteration >= backOffLimit {
sleep = constantBackOffDelay
sleep = constantBackOffDelay * time.Second
} else {
iteration++
sleep = time.Duration(math.Pow(backOffBase, float64(iteration)))
sleep = time.Duration(math.Pow(backOffBase, float64(iteration))) * time.Second
}
// Block the next connection attempt and check the context
select {
case <-time.After(sleep * time.Second):
case <-time.After(sleep):
break
case <-ctx.Done():
// context done means we shall exit
@ -167,7 +188,6 @@ func (g *Sync) connectWithRetry(
// handleFlagSync wraps the stream listening and push updates through dataSync channel
func (g *Sync) handleFlagSync(stream syncv1grpc.FlagSyncService_SyncFlagsClient, dataSync chan<- sync.DataSync) error {
// Set ready state once only
once.Do(func() {
g.ready = true
})
@ -175,46 +195,16 @@ func (g *Sync) handleFlagSync(stream syncv1grpc.FlagSyncService_SyncFlagsClient,
for {
data, err := stream.Recv()
if err != nil {
return err
return fmt.Errorf("error receiving payload from stream: %w", err)
}
switch data.State {
case v1.SyncState_SYNC_STATE_ALL:
dataSync <- sync.DataSync{
FlagData: data.FlagConfiguration,
Source: g.URI,
Type: sync.ALL,
}
g.Logger.Debug("received full configuration payload")
case v1.SyncState_SYNC_STATE_ADD:
dataSync <- sync.DataSync{
FlagData: data.FlagConfiguration,
Source: g.URI,
Type: sync.ADD,
}
g.Logger.Debug("received an add payload")
case v1.SyncState_SYNC_STATE_UPDATE:
dataSync <- sync.DataSync{
FlagData: data.FlagConfiguration,
Source: g.URI,
Type: sync.UPDATE,
}
g.Logger.Debug("received an update payload")
case v1.SyncState_SYNC_STATE_DELETE:
dataSync <- sync.DataSync{
FlagData: data.FlagConfiguration,
Source: g.URI,
Type: sync.DELETE,
}
g.Logger.Debug("received a delete payload")
case v1.SyncState_SYNC_STATE_PING:
g.Logger.Debug("received server ping")
default:
g.Logger.Debug(fmt.Sprintf("received unknown state: %s", data.State.String()))
dataSync <- sync.DataSync{
FlagData: data.FlagConfiguration,
SyncContext: data.SyncContext,
Source: g.URI,
Selector: g.Selector,
}
g.Logger.Debug("received full configuration payload")
}
}

View File

@ -1,3 +1,4 @@
//nolint:wrapcheck
package grpc
import (
@ -10,22 +11,22 @@ import (
"testing"
"time"
"github.com/golang/mock/gomock"
credendialsmock "github.com/open-feature/flagd/core/pkg/sync/grpc/credentials/mock"
"github.com/stretchr/testify/require"
"google.golang.org/grpc/credentials"
"golang.org/x/sync/errgroup"
"buf.build/gen/go/open-feature/flagd/grpc/go/sync/v1/syncv1grpc"
v1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/sync/v1"
"buf.build/gen/go/open-feature/flagd/grpc/go/flagd/sync/v1/syncv1grpc"
v1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/flagd/sync/v1"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
grpcmock "github.com/open-feature/flagd/core/pkg/sync/grpc/mock"
credendialsmock "github.com/open-feature/flagd/core/pkg/sync/grpc/credentials/mock"
"github.com/stretchr/testify/require"
"go.uber.org/mock/gomock"
"go.uber.org/zap"
"go.uber.org/zap/zaptest/observer"
"golang.org/x/sync/errgroup"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/test/bufconn"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/structpb"
)
func Test_InitWithMockCredentialBuilder(t *testing.T) {
@ -80,6 +81,30 @@ func Test_InitWithMockCredentialBuilder(t *testing.T) {
}
}
func Test_InitWithSizeOverride(t *testing.T) {
observedZapCore, observedLogs := observer.New(zap.InfoLevel)
observedLogger := zap.New(observedZapCore)
mockCtrl := gomock.NewController(t)
mockCredentialBulder := credendialsmock.NewMockBuilder(mockCtrl)
mockCredentialBulder.EXPECT().
Build(gomock.Any(), gomock.Any()).
Return(insecure.NewCredentials(), nil)
grpcSync := Sync{
URI: "grpc-target",
Logger: logger.NewLogger(observedLogger, false),
CredentialBuilder: mockCredentialBulder,
MaxMsgSize: 10,
}
err := grpcSync.Init(context.Background())
require.Nilf(t, err, "%s: expected no error, but got non nil error", t.Name())
require.Equal(t, "setting max receive message size 10 bytes default 4MB", observedLogs.All()[0].Message)
}
func Test_ReSyncTests(t *testing.T) {
const target = "localBufCon"
@ -98,7 +123,6 @@ func Test_ReSyncTests(t *testing.T) {
notifications: []sync.DataSync{
{
FlagData: "success",
Type: sync.ALL,
},
},
shouldError: false,
@ -155,9 +179,6 @@ func Test_ReSyncTests(t *testing.T) {
for _, expected := range test.notifications {
out := <-syncChan
if expected.Type != out.Type {
t.Errorf("Returned sync type = %v, wanted %v", out.Type, expected.Type)
}
if expected.FlagData != out.FlagData {
t.Errorf("Returned sync data = %v, wanted %v", out.FlagData, expected.FlagData)
@ -171,159 +192,14 @@ func Test_ReSyncTests(t *testing.T) {
}
}
func TestSync_BasicFlagSyncStates(t *testing.T) {
grpcSyncImpl := Sync{
URI: "grpc://test",
ProviderID: "",
Logger: logger.NewLogger(nil, false),
}
mockError := errors.New("could not sync")
tests := []struct {
name string
stream syncv1grpc.FlagSyncService_SyncFlagsClient
setup func(t *testing.T, client *grpcmock.MockFlagSyncServiceClient, clientResponse *grpcmock.MockFlagSyncServiceClientResponse)
want sync.Type
wantError error
ready bool
}{
{
name: "State All maps to Sync All",
setup: func(t *testing.T, client *grpcmock.MockFlagSyncServiceClient, clientResponse *grpcmock.MockFlagSyncServiceClientResponse) {
client.EXPECT().SyncFlags(gomock.Any(), gomock.Any(), gomock.Any()).Return(clientResponse, nil)
gomock.InOrder(
clientResponse.EXPECT().Recv().Return(
&v1.SyncFlagsResponse{
FlagConfiguration: "{}",
State: v1.SyncState_SYNC_STATE_ALL,
},
nil,
),
clientResponse.EXPECT().Recv().Return(
nil, io.EOF,
),
)
},
want: sync.ALL,
ready: true,
},
{
name: "State Add maps to Sync Add",
setup: func(t *testing.T, client *grpcmock.MockFlagSyncServiceClient, clientResponse *grpcmock.MockFlagSyncServiceClientResponse) {
client.EXPECT().SyncFlags(gomock.Any(), gomock.Any(), gomock.Any()).Return(clientResponse, nil)
gomock.InOrder(
clientResponse.EXPECT().Recv().Return(
&v1.SyncFlagsResponse{
FlagConfiguration: "{}",
State: v1.SyncState_SYNC_STATE_ADD,
},
nil,
),
clientResponse.EXPECT().Recv().Return(
nil, io.EOF,
),
)
},
want: sync.ADD,
ready: true,
},
{
name: "State Update maps to Sync Update",
setup: func(t *testing.T, client *grpcmock.MockFlagSyncServiceClient, clientResponse *grpcmock.MockFlagSyncServiceClientResponse) {
client.EXPECT().SyncFlags(gomock.Any(), gomock.Any(), gomock.Any()).Return(clientResponse, nil)
gomock.InOrder(
clientResponse.EXPECT().Recv().Return(
&v1.SyncFlagsResponse{
FlagConfiguration: "{}",
State: v1.SyncState_SYNC_STATE_UPDATE,
},
nil,
),
clientResponse.EXPECT().Recv().Return(
nil, io.EOF,
),
)
},
want: sync.UPDATE,
ready: true,
},
{
name: "State Delete maps to Sync Delete",
setup: func(t *testing.T, client *grpcmock.MockFlagSyncServiceClient, clientResponse *grpcmock.MockFlagSyncServiceClientResponse) {
client.EXPECT().SyncFlags(gomock.Any(), gomock.Any(), gomock.Any()).Return(clientResponse, nil)
gomock.InOrder(
clientResponse.EXPECT().Recv().Return(
&v1.SyncFlagsResponse{
FlagConfiguration: "{}",
State: v1.SyncState_SYNC_STATE_DELETE,
},
nil,
),
clientResponse.EXPECT().Recv().Return(
nil, io.EOF,
),
)
},
want: sync.DELETE,
ready: true,
},
{
name: "Error during flag sync",
setup: func(t *testing.T, client *grpcmock.MockFlagSyncServiceClient, clientResponse *grpcmock.MockFlagSyncServiceClientResponse) {
client.EXPECT().SyncFlags(gomock.Any(), gomock.Any(), gomock.Any()).Return(clientResponse, nil)
clientResponse.EXPECT().Recv().Return(
nil,
mockError,
)
},
ready: true,
want: -1,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
ctrl := gomock.NewController(t)
syncChan := make(chan sync.DataSync, 1)
mockClient := grpcmock.NewMockFlagSyncServiceClient(ctrl)
mockClientResponse := grpcmock.NewMockFlagSyncServiceClientResponse(ctrl)
test.setup(t, mockClient, mockClientResponse)
waitChan := make(chan struct{})
go func() {
grpcSyncImpl.client = mockClient
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
defer cancel()
err := grpcSyncImpl.Sync(ctx, syncChan)
if err != nil {
t.Errorf("Error handling flag sync: %v", err)
}
close(waitChan)
}()
<-waitChan
if test.want < 0 {
require.Empty(t, syncChan)
return
}
data := <-syncChan
if grpcSyncImpl.IsReady() != test.ready {
t.Errorf("expected grpcSyncImpl.ready to be: '%v', got: '%v'", test.ready, grpcSyncImpl.ready)
}
if data.Type != test.want {
t.Errorf("Returned data sync state = %v, wanted %v", data.Type, test.want)
}
})
}
}
func Test_StreamListener(t *testing.T) {
const target = "localBufCon"
metadata, err := structpb.NewStruct(map[string]any{"sources": "A,B,C"})
if err != nil {
t.Fatalf("Failed to create sync context: %v", err)
}
tests := []struct {
name string
input []serverPayload
@ -334,13 +210,12 @@ func Test_StreamListener(t *testing.T) {
input: []serverPayload{
{
flags: "{\"flags\": {}}",
state: v1.SyncState_SYNC_STATE_ALL,
},
},
output: []sync.DataSync{
{
FlagData: "{\"flags\": {}}",
Type: sync.ALL,
FlagData: "{\"flags\": {}}",
SyncContext: metadata,
},
},
},
@ -349,67 +224,19 @@ func Test_StreamListener(t *testing.T) {
input: []serverPayload{
{
flags: "{}",
state: v1.SyncState_SYNC_STATE_ALL,
},
{
flags: "{\"flags\": {}}",
state: v1.SyncState_SYNC_STATE_DELETE,
},
},
output: []sync.DataSync{
{
FlagData: "{}",
Type: sync.ALL,
FlagData: "{}",
SyncContext: metadata,
},
{
FlagData: "{\"flags\": {}}",
Type: sync.DELETE,
},
},
},
{
name: "Pings are ignored & not written to channel",
input: []serverPayload{
{
flags: "",
state: v1.SyncState_SYNC_STATE_PING,
},
{
flags: "",
state: v1.SyncState_SYNC_STATE_PING,
},
{
flags: "{\"flags\": {}}",
state: v1.SyncState_SYNC_STATE_DELETE,
},
},
output: []sync.DataSync{
{
FlagData: "{\"flags\": {}}",
Type: sync.DELETE,
},
},
},
{
name: "Unknown states are & not written to channel",
input: []serverPayload{
{
flags: "",
state: 42,
},
{
flags: "",
state: -1,
},
{
flags: "{\"flags\": {}}",
state: v1.SyncState_SYNC_STATE_ALL,
},
},
output: []sync.DataSync{
{
FlagData: "{\"flags\": {}}",
Type: sync.ALL,
FlagData: "{\"flags\": {}}",
SyncContext: metadata,
},
},
},
@ -462,13 +289,13 @@ func Test_StreamListener(t *testing.T) {
for _, expected := range test.output {
out := <-syncChan
if expected.Type != out.Type {
t.Errorf("Returned sync type = %v, wanted %v", out.Type, expected.Type)
}
if expected.FlagData != out.FlagData {
t.Errorf("Returned sync data = %v, wanted %v", out.FlagData, expected.FlagData)
}
if !proto.Equal(expected.SyncContext, out.SyncContext) {
t.Errorf("Returned sync context = %v, wanted = %v", out.SyncContext, expected.SyncContext)
}
}
// channel must be empty
@ -552,14 +379,12 @@ func Test_SyncRetry(t *testing.T) {
// Setup
target := "grpc://local"
bufListener := bufconn.Listen(1)
expectType := sync.ALL
emptyFlagData := "{}"
// buffer based server. response ignored purposefully
bServer := bufferedServer{listener: bufListener, mockResponses: []serverPayload{
{
flags: "{}",
state: v1.SyncState_SYNC_STATE_ALL,
},
}}
@ -608,7 +433,7 @@ func Test_SyncRetry(t *testing.T) {
t.Errorf("timeout waiting for conditions to fulfil")
break
case data := <-syncChan:
if data.Type != expectType {
if data.FlagData != emptyFlagData {
t.Errorf("sync start error: %s", err.Error())
}
}
@ -628,9 +453,9 @@ func Test_SyncRetry(t *testing.T) {
case <-tCtx.Done():
cancelFunc()
t.Error("timeout waiting for conditions to fulfil")
case rsp := <-syncChan:
if rsp.Type != expectType {
t.Errorf("expected response: %s, but got: %s", expectType, rsp.Type)
case data := <-syncChan:
if data.FlagData != emptyFlagData {
t.Errorf("sync start error: %s", err.Error())
}
}
}
@ -650,7 +475,6 @@ func serve(bServer *bufferedServer) {
type serverPayload struct {
flags string
state v1.SyncState
}
// bufferedServer - a mock grpc service backed by buffered connection
@ -663,9 +487,10 @@ type bufferedServer struct {
func (b *bufferedServer) SyncFlags(_ *v1.SyncFlagsRequest, stream syncv1grpc.FlagSyncService_SyncFlagsServer) error {
for _, response := range b.mockResponses {
metadata, _ := structpb.NewStruct(map[string]any{"sources": "A,B,C"})
err := stream.Send(&v1.SyncFlagsResponse{
FlagConfiguration: response.flags,
State: response.state,
SyncContext: metadata,
})
if err != nil {
fmt.Printf("Error with stream: %s", err.Error())
@ -679,3 +504,7 @@ func (b *bufferedServer) SyncFlags(_ *v1.SyncFlagsRequest, stream syncv1grpc.Fla
func (b *bufferedServer) FetchAllFlags(_ context.Context, _ *v1.FetchAllFlagsRequest) (*v1.FetchAllFlagsResponse, error) {
return b.fetchAllFlagsResponse, b.fetchAllFlagsError
}
func (b *bufferedServer) GetMetadata(_ context.Context, _ *v1.GetMetadataRequest) (*v1.GetMetadataResponse, error) {
return &v1.GetMetadataResponse{}, nil
}

View File

@ -1,5 +1,10 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: pkg/sync/grpc/grpc_sync.go
//
// Generated by this command:
//
// mockgen -source=pkg/sync/grpc/grpc_sync.go -destination=pkg/sync/grpc/mock/grpc.go -package=grpcmock
//
// Package grpcmock is a generated GoMock package.
package grpcmock
@ -8,9 +13,9 @@ import (
context "context"
reflect "reflect"
syncv1grpc "buf.build/gen/go/open-feature/flagd/grpc/go/sync/v1/syncv1grpc"
syncv1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/sync/v1"
gomock "github.com/golang/mock/gomock"
syncv1grpc "buf.build/gen/go/open-feature/flagd/grpc/go/flagd/sync/v1/syncv1grpc"
syncv1 "buf.build/gen/go/open-feature/flagd/protocolbuffers/go/flagd/sync/v1"
gomock "go.uber.org/mock/gomock"
grpc "google.golang.org/grpc"
metadata "google.golang.org/grpc/metadata"
)
@ -41,7 +46,7 @@ func (m *MockFlagSyncServiceClient) EXPECT() *MockFlagSyncServiceClientMockRecor
// FetchAllFlags mocks base method.
func (m *MockFlagSyncServiceClient) FetchAllFlags(ctx context.Context, in *syncv1.FetchAllFlagsRequest, opts ...grpc.CallOption) (*syncv1.FetchAllFlagsResponse, error) {
m.ctrl.T.Helper()
varargs := []interface{}{ctx, in}
varargs := []any{ctx, in}
for _, a := range opts {
varargs = append(varargs, a)
}
@ -52,16 +57,36 @@ func (m *MockFlagSyncServiceClient) FetchAllFlags(ctx context.Context, in *syncv
}
// FetchAllFlags indicates an expected call of FetchAllFlags.
func (mr *MockFlagSyncServiceClientMockRecorder) FetchAllFlags(ctx, in interface{}, opts ...interface{}) *gomock.Call {
func (mr *MockFlagSyncServiceClientMockRecorder) FetchAllFlags(ctx, in any, opts ...any) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{ctx, in}, opts...)
varargs := append([]any{ctx, in}, opts...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FetchAllFlags", reflect.TypeOf((*MockFlagSyncServiceClient)(nil).FetchAllFlags), varargs...)
}
// GetMetadata mocks base method.
func (m *MockFlagSyncServiceClient) GetMetadata(ctx context.Context, in *syncv1.GetMetadataRequest, opts ...grpc.CallOption) (*syncv1.GetMetadataResponse, error) {
m.ctrl.T.Helper()
varargs := []any{ctx, in}
for _, a := range opts {
varargs = append(varargs, a)
}
ret := m.ctrl.Call(m, "GetMetadata", varargs...)
ret0, _ := ret[0].(*syncv1.GetMetadataResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// GetMetadata indicates an expected call of GetMetadata.
func (mr *MockFlagSyncServiceClientMockRecorder) GetMetadata(ctx, in any, opts ...any) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]any{ctx, in}, opts...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMetadata", reflect.TypeOf((*MockFlagSyncServiceClient)(nil).GetMetadata), varargs...)
}
// SyncFlags mocks base method.
func (m *MockFlagSyncServiceClient) SyncFlags(ctx context.Context, in *syncv1.SyncFlagsRequest, opts ...grpc.CallOption) (syncv1grpc.FlagSyncService_SyncFlagsClient, error) {
m.ctrl.T.Helper()
varargs := []interface{}{ctx, in}
varargs := []any{ctx, in}
for _, a := range opts {
varargs = append(varargs, a)
}
@ -72,9 +97,9 @@ func (m *MockFlagSyncServiceClient) SyncFlags(ctx context.Context, in *syncv1.Sy
}
// SyncFlags indicates an expected call of SyncFlags.
func (mr *MockFlagSyncServiceClientMockRecorder) SyncFlags(ctx, in interface{}, opts ...interface{}) *gomock.Call {
func (mr *MockFlagSyncServiceClientMockRecorder) SyncFlags(ctx, in any, opts ...any) *gomock.Call {
mr.mock.ctrl.T.Helper()
varargs := append([]interface{}{ctx, in}, opts...)
varargs := append([]any{ctx, in}, opts...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SyncFlags", reflect.TypeOf((*MockFlagSyncServiceClient)(nil).SyncFlags), varargs...)
}
@ -160,7 +185,7 @@ func (mr *MockFlagSyncServiceClientResponseMockRecorder) Recv() *gomock.Call {
}
// RecvMsg mocks base method.
func (m_2 *MockFlagSyncServiceClientResponse) RecvMsg(m interface{}) error {
func (m_2 *MockFlagSyncServiceClientResponse) RecvMsg(m any) error {
m_2.ctrl.T.Helper()
ret := m_2.ctrl.Call(m_2, "RecvMsg", m)
ret0, _ := ret[0].(error)
@ -168,13 +193,13 @@ func (m_2 *MockFlagSyncServiceClientResponse) RecvMsg(m interface{}) error {
}
// RecvMsg indicates an expected call of RecvMsg.
func (mr *MockFlagSyncServiceClientResponseMockRecorder) RecvMsg(m interface{}) *gomock.Call {
func (mr *MockFlagSyncServiceClientResponseMockRecorder) RecvMsg(m any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockFlagSyncServiceClientResponse)(nil).RecvMsg), m)
}
// SendMsg mocks base method.
func (m_2 *MockFlagSyncServiceClientResponse) SendMsg(m interface{}) error {
func (m_2 *MockFlagSyncServiceClientResponse) SendMsg(m any) error {
m_2.ctrl.T.Helper()
ret := m_2.ctrl.Call(m_2, "SendMsg", m)
ret0, _ := ret[0].(error)
@ -182,7 +207,7 @@ func (m_2 *MockFlagSyncServiceClientResponse) SendMsg(m interface{}) error {
}
// SendMsg indicates an expected call of SendMsg.
func (mr *MockFlagSyncServiceClientResponseMockRecorder) SendMsg(m interface{}) *gomock.Call {
func (mr *MockFlagSyncServiceClientResponseMockRecorder) SendMsg(m any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockFlagSyncServiceClientResponse)(nil).SendMsg), m)
}

View File

@ -0,0 +1,84 @@
package nameresolvers
import (
"fmt"
"strings"
"google.golang.org/grpc/resolver"
)
const scheme = "envoy"
type envoyBuilder struct{}
// Build A custom NameResolver to resolve gRPC target uri for envoy in the
// format of.
//
// Custom URI Scheme:
//
// envoy://[proxy-agent-host]:[proxy-agent-port]/[service-name]
func (*envoyBuilder) Build(target resolver.Target,
cc resolver.ClientConn, _ resolver.BuildOptions,
) (resolver.Resolver, error) {
_, err := isValidTarget(target)
if err != nil {
return nil, err
}
r := &envoyResolver{
target: target,
cc: cc,
}
r.start()
return r, nil
}
func (*envoyBuilder) Scheme() string {
return scheme
}
type envoyResolver struct {
target resolver.Target
cc resolver.ClientConn
}
// Envoy NameResolver, will always override the authority with the specified authority i.e. URL.path and
// use the socketAddress i.e. Host:Port to connect.
func (r *envoyResolver) start() {
addr := fmt.Sprintf("%s:%s", r.target.URL.Hostname(), r.target.URL.Port())
err := r.cc.UpdateState(resolver.State{Addresses: []resolver.Address{{Addr: addr}}})
if err != nil {
return
}
}
func (*envoyResolver) ResolveNow(resolver.ResolveNowOptions) {}
func (*envoyResolver) Close() {}
// Validate user specified target
//
// Sample target string: envoy://localhost:9211/test.service
//
// return `true` if the target string used match the scheme and format
func isValidTarget(target resolver.Target) (bool, error) {
// make sure and host and port not empty
// used as resolver.Address
if target.URL.Scheme != "envoy" || target.URL.Hostname() == "" || target.URL.Port() == "" {
return false, fmt.Errorf("envoy-resolver: invalid scheme or missing host/port, target: %s",
target)
}
// make sure the path is valid
// used as :authority e.g. test.service
path := target.Endpoint()
if path == "" || strings.Contains(path, "/") {
return false, fmt.Errorf("envoy-resolver: invalid path %s", path)
}
return true, nil
}
func init() {
resolver.Register(&envoyBuilder{})
}

View File

@ -0,0 +1,103 @@
package nameresolvers
import (
"net/url"
"testing"
"github.com/stretchr/testify/require"
"google.golang.org/grpc/resolver"
)
func Test_EnvoyTargetString(t *testing.T) {
tests := []struct {
name string
mockURL url.URL
mockError string
shouldError bool
}{
{
name: "Should be valid string",
mockURL: url.URL{
Scheme: "envoy",
Host: "localhost:8080",
Path: "/test.service",
},
mockError: "",
shouldError: false,
},
{
name: "Should be valid scheme",
mockURL: url.URL{
Scheme: "invalid",
Host: "localhost:8080",
Path: "/test.service",
},
mockError: "envoy-resolver: invalid scheme or missing host/port, target: invalid://localhost:8080/test.service",
shouldError: true,
},
{
name: "Should be valid path",
mockURL: url.URL{
Scheme: "envoy",
Host: "localhost:8080",
Path: "/test.service/test",
},
mockError: "envoy-resolver: invalid path test.service/test",
shouldError: true,
},
{
name: "Should be valid path",
mockURL: url.URL{
Scheme: "envoy",
Host: "localhost:8080",
Path: "/test.service/",
},
mockError: "envoy-resolver: invalid path test.service/",
shouldError: true,
},
{
name: "Hostname should not be empty",
mockURL: url.URL{
Scheme: "envoy",
Host: ":8080",
Path: "/test.service",
},
mockError: "envoy-resolver: invalid scheme or missing host/port, target: envoy://:8080/test.service",
shouldError: true,
},
{
name: "Port should not be empty",
mockURL: url.URL{
Scheme: "envoy",
Host: "localhost",
Path: "/test.service",
},
mockError: "envoy-resolver: invalid scheme or missing host/port, target: envoy://localhost/test.service",
shouldError: true,
},
{
name: "Hostname and Port should not be empty",
mockURL: url.URL{
Scheme: "envoy",
Path: "/test.service",
},
mockError: "envoy-resolver: invalid scheme or missing host/port, target: envoy:///test.service",
shouldError: true,
},
}
for _, test := range tests {
target := resolver.Target{URL: test.mockURL}
isValid, err := isValidTarget(target)
if test.shouldError {
require.False(t, isValid, "Should not be valid")
require.NotNilf(t, err, "Error should not be nil")
require.Containsf(t, err.Error(), test.mockError, "Error should contains %s", test.mockError)
} else {
require.True(t, isValid, "Should be valid")
require.NoErrorf(t, err, "Error should be nil")
}
}
}

View File

@ -8,9 +8,12 @@ import (
"fmt"
"io"
"net/http"
parseUrl "net/url"
"path/filepath"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/open-feature/flagd/core/pkg/utils"
"golang.org/x/crypto/sha3" //nolint:gosec
)
@ -21,8 +24,10 @@ type Sync struct {
LastBodySHA string
Logger *logger.Logger
BearerToken string
ready bool
AuthHeader string
Interval uint32
ready bool
eTag string
}
// Client defines the behaviour required of a http client
@ -38,16 +43,18 @@ type Cron interface {
}
func (hs *Sync) ReSync(ctx context.Context, dataSync chan<- sync.DataSync) error {
msg, err := hs.Fetch(ctx)
msg, _, err := hs.fetchBody(ctx, true)
if err != nil {
return err
}
dataSync <- sync.DataSync{FlagData: msg, Source: hs.URI, Type: sync.ALL}
dataSync <- sync.DataSync{FlagData: msg, Source: hs.URI}
return nil
}
func (hs *Sync) Init(_ context.Context) error {
// noop
if hs.BearerToken != "" {
hs.Logger.Warn("Deprecation Alert: bearerToken option is deprecated, please use authHeader instead")
}
return nil
}
@ -57,7 +64,7 @@ func (hs *Sync) IsReady() bool {
func (hs *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
// Initial fetch
fetch, err := hs.Fetch(ctx)
fetch, _, err := hs.fetchBody(ctx, true)
if err != nil {
return err
}
@ -65,44 +72,33 @@ func (hs *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
// Set ready state
hs.ready = true
_ = hs.Cron.AddFunc("*/5 * * * *", func() {
body, err := hs.fetchBodyFromURL(ctx, hs.URI)
hs.Logger.Debug(fmt.Sprintf("polling %s every %d seconds", hs.URI, hs.Interval))
_ = hs.Cron.AddFunc(fmt.Sprintf("*/%d * * * *", hs.Interval), func() {
hs.Logger.Debug(fmt.Sprintf("fetching configuration from %s", hs.URI))
previousBodySHA := hs.LastBodySHA
body, noChange, err := hs.fetchBody(ctx, false)
if err != nil {
hs.Logger.Error(err.Error())
hs.Logger.Error(fmt.Sprintf("error fetching: %s", err.Error()))
return
}
if len(body) == 0 {
if body == "" && !noChange {
hs.Logger.Debug("configuration deleted")
} else {
if hs.LastBodySHA == "" {
hs.Logger.Debug("new configuration created")
msg, err := hs.Fetch(ctx)
if err != nil {
hs.Logger.Error(fmt.Sprintf("error fetching: %s", err.Error()))
} else {
dataSync <- sync.DataSync{FlagData: msg, Source: hs.URI, Type: sync.ALL}
}
} else {
currentSHA := hs.generateSha(body)
if hs.LastBodySHA != currentSHA {
hs.Logger.Debug("configuration modified")
msg, err := hs.Fetch(ctx)
if err != nil {
hs.Logger.Error(fmt.Sprintf("error fetching: %s", err.Error()))
} else {
dataSync <- sync.DataSync{FlagData: msg, Source: hs.URI, Type: sync.ALL}
}
}
return
}
hs.LastBodySHA = currentSHA
}
if previousBodySHA == "" {
hs.Logger.Debug("configuration created")
dataSync <- sync.DataSync{FlagData: body, Source: hs.URI}
} else if previousBodySHA != hs.LastBodySHA {
hs.Logger.Debug("configuration updated")
dataSync <- sync.DataSync{FlagData: body, Source: hs.URI}
}
})
hs.Cron.Start()
dataSync <- sync.DataSync{FlagData: fetch, Source: hs.URI, Type: sync.ALL}
dataSync <- sync.DataSync{FlagData: fetch, Source: hs.URI}
<-ctx.Done()
hs.Cron.Stop()
@ -110,36 +106,80 @@ func (hs *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
return nil
}
func (hs *Sync) fetchBodyFromURL(ctx context.Context, url string) ([]byte, error) {
req, err := http.NewRequestWithContext(ctx, "GET", url, bytes.NewBuffer(nil))
func (hs *Sync) fetchBody(ctx context.Context, fetchAll bool) (string, bool, error) {
if hs.URI == "" {
return "", false, errors.New("no HTTP URL string set")
}
req, err := http.NewRequestWithContext(ctx, "GET", hs.URI, bytes.NewBuffer(nil))
if err != nil {
return nil, err
return "", false, fmt.Errorf("error creating request for url %s: %w", hs.URI, err)
}
req.Header.Add("Accept", "application/json")
req.Header.Add("Accept", "application/yaml")
if hs.BearerToken != "" {
if hs.AuthHeader != "" {
req.Header.Set("Authorization", hs.AuthHeader)
} else if hs.BearerToken != "" {
bearer := fmt.Sprintf("Bearer %s", hs.BearerToken)
req.Header.Set("Authorization", bearer)
}
if hs.eTag != "" && !fetchAll {
req.Header.Set("If-None-Match", hs.eTag)
}
resp, err := hs.Client.Do(req)
if err != nil {
return nil, err
return "", false, fmt.Errorf("error calling endpoint %s: %w", hs.URI, err)
}
defer func() {
err = resp.Body.Close()
if err != nil {
hs.Logger.Debug(fmt.Sprintf("error closing the response body: %s", err.Error()))
hs.Logger.Error(fmt.Sprintf("error closing the response body: %s", err.Error()))
}
}()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
if resp.StatusCode == 304 {
hs.Logger.Debug("no changes detected")
return "", true, nil
}
return body, nil
statusOK := resp.StatusCode >= 200 && resp.StatusCode < 300
if !statusOK {
return "", false, fmt.Errorf("error fetching from url %s: %s", hs.URI, resp.Status)
}
if resp.Header.Get("ETag") != "" {
hs.eTag = resp.Header.Get("ETag")
}
body, err := io.ReadAll(resp.Body)
if err != nil {
return "", false, fmt.Errorf("unable to read body to bytes: %w", err)
}
json, err := utils.ConvertToJSON(body, getFileExtensions(hs.URI), resp.Header.Get("Content-Type"))
if err != nil {
return "", false, fmt.Errorf("error converting response body to json: %w", err)
}
if json != "" {
hs.LastBodySHA = hs.generateSha([]byte(body))
}
return json, false, nil
}
// getFileExtensions returns the file extension from the URL path
func getFileExtensions(url string) string {
u, err := parseUrl.Parse(url)
if err != nil {
return ""
}
return filepath.Ext(u.Path)
}
func (hs *Sync) generateSha(body []byte) string {
@ -149,17 +189,6 @@ func (hs *Sync) generateSha(body []byte) string {
}
func (hs *Sync) Fetch(ctx context.Context) (string, error) {
if hs.URI == "" {
return "", errors.New("no HTTP URL string set")
}
body, err := hs.fetchBodyFromURL(ctx, hs.URI)
if err != nil {
return "", err
}
if len(body) != 0 {
hs.LastBodySHA = hs.generateSha(body)
}
return string(body), nil
body, _, err := hs.fetchBody(ctx, false)
return body, err
}

View File

@ -5,33 +5,36 @@ import (
"io"
"log"
"net/http"
"reflect"
"strings"
"testing"
"time"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/golang/mock/gomock"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
syncmock "github.com/open-feature/flagd/core/pkg/sync/http/mock"
synctesting "github.com/open-feature/flagd/core/pkg/sync/testing"
"go.uber.org/mock/gomock"
)
func TestSimpleSync(t *testing.T) {
ctrl := gomock.NewController(t)
resp := "test response"
mockCron := syncmock.NewMockCron(ctrl)
mockCron.EXPECT().AddFunc(gomock.Any(), gomock.Any()).DoAndReturn(func(spec string, cmd func()) error {
mockCron := synctesting.NewMockCron(ctrl)
mockCron.EXPECT().AddFunc(gomock.Any(), gomock.Any()).DoAndReturn(func(_ string, _ func()) error {
return nil
})
mockCron.EXPECT().Start().Times(1)
mockClient := syncmock.NewMockClient(ctrl)
mockClient.EXPECT().Do(gomock.Any()).Return(&http.Response{Body: io.NopCloser(strings.NewReader(resp))}, nil)
responseBody := "test response"
resp := &http.Response{
Header: map[string][]string{"Content-Type": {"application/json"}},
Body: io.NopCloser(strings.NewReader(responseBody)),
StatusCode: http.StatusOK,
}
mockClient.EXPECT().Do(gomock.Any()).Return(resp, nil)
httpSync := Sync{
URI: "http://localhost",
URI: "http://localhost/flags",
Client: mockClient,
Cron: mockCron,
LastBodySHA: "",
@ -51,8 +54,51 @@ func TestSimpleSync(t *testing.T) {
data := <-dataSyncChan
if data.FlagData != resp {
t.Errorf("expected content: %s, but received content: %s", resp, data.FlagData)
if data.FlagData != responseBody {
t.Errorf("expected content: %s, but received content: %s", responseBody, data.FlagData)
}
}
func TestExtensionWithQSSync(t *testing.T) {
ctrl := gomock.NewController(t)
mockCron := synctesting.NewMockCron(ctrl)
mockCron.EXPECT().AddFunc(gomock.Any(), gomock.Any()).DoAndReturn(func(_ string, _ func()) error {
return nil
})
mockCron.EXPECT().Start().Times(1)
mockClient := syncmock.NewMockClient(ctrl)
responseBody := "test response"
resp := &http.Response{
Header: map[string][]string{"Content-Type": {"application/json"}},
Body: io.NopCloser(strings.NewReader(responseBody)),
StatusCode: http.StatusOK,
}
mockClient.EXPECT().Do(gomock.Any()).Return(resp, nil)
httpSync := Sync{
URI: "http://localhost/flags.json?env=dev",
Client: mockClient,
Cron: mockCron,
LastBodySHA: "",
Logger: logger.NewLogger(nil, false),
}
ctx := context.Background()
dataSyncChan := make(chan sync.DataSync)
go func() {
err := httpSync.Sync(ctx, dataSyncChan)
if err != nil {
log.Fatalf("Error start sync: %s", err.Error())
return
}
}()
data := <-dataSyncChan
if data.FlagData != responseBody {
t.Errorf("expected content: %s, but received content: %s", responseBody, data.FlagData)
}
}
@ -63,13 +109,17 @@ func TestHTTPSync_Fetch(t *testing.T) {
setup func(t *testing.T, client *syncmock.MockClient)
uri string
bearerToken string
authHeader string
eTagHeader string
lastBodySHA string
handleResponse func(*testing.T, Sync, string, error)
}{
"success": {
setup: func(t *testing.T, client *syncmock.MockClient) {
setup: func(_ *testing.T, client *syncmock.MockClient) {
client.EXPECT().Do(gomock.Any()).Return(&http.Response{
Body: io.NopCloser(strings.NewReader("test response")),
Header: map[string][]string{"Content-Type": {"application/json"}},
Body: io.NopCloser(strings.NewReader("test response")),
StatusCode: http.StatusOK,
}, nil)
},
uri: "http://localhost",
@ -84,17 +134,19 @@ func TestHTTPSync_Fetch(t *testing.T) {
},
},
"return an error if no uri": {
setup: func(t *testing.T, client *syncmock.MockClient) {},
handleResponse: func(t *testing.T, _ Sync, fetched string, err error) {
setup: func(_ *testing.T, _ *syncmock.MockClient) {},
handleResponse: func(t *testing.T, _ Sync, _ string, err error) {
if err == nil {
t.Error("expected err, got nil")
}
},
},
"update last body sha": {
setup: func(t *testing.T, client *syncmock.MockClient) {
setup: func(_ *testing.T, client *syncmock.MockClient) {
client.EXPECT().Do(gomock.Any()).Return(&http.Response{
Body: io.NopCloser(strings.NewReader("test response")),
Header: map[string][]string{"Content-Type": {"application/json"}},
Body: io.NopCloser(strings.NewReader("test response")),
StatusCode: http.StatusOK,
}, nil)
},
uri: "http://localhost",
@ -112,13 +164,23 @@ func TestHTTPSync_Fetch(t *testing.T) {
}
},
},
"authorization header": {
"authorization with bearerToken": {
setup: func(t *testing.T, client *syncmock.MockClient) {
client.EXPECT().Do(gomock.Any()).Return(&http.Response{
Body: io.NopCloser(strings.NewReader("test response")),
}, nil)
expectedToken := "bearer-1234"
client.EXPECT().Do(gomock.Any()).DoAndReturn(func(req *http.Request) (*http.Response, error) {
actualAuthHeader := req.Header.Get("Authorization")
if actualAuthHeader != "Bearer "+expectedToken {
t.Fatalf("expected Authorization header to be 'Bearer %s', got %s", expectedToken, actualAuthHeader)
}
return &http.Response{
Header: map[string][]string{"Content-Type": {"application/json"}},
Body: io.NopCloser(strings.NewReader("test response")),
StatusCode: http.StatusOK,
}, nil
})
},
uri: "http://localhost",
bearerToken: "bearer-1234",
lastBodySHA: "",
handleResponse: func(t *testing.T, httpSync Sync, _ string, err error) {
if err != nil {
@ -133,6 +195,131 @@ func TestHTTPSync_Fetch(t *testing.T) {
}
},
},
"authorization with authHeader": {
setup: func(t *testing.T, client *syncmock.MockClient) {
expectedHeader := "Basic dXNlcjpwYXNz"
client.EXPECT().Do(gomock.Any()).DoAndReturn(func(req *http.Request) (*http.Response, error) {
actualAuthHeader := req.Header.Get("Authorization")
if actualAuthHeader != expectedHeader {
t.Fatalf("expected Authorization header to be '%s', got %s", expectedHeader, actualAuthHeader)
}
return &http.Response{
Header: map[string][]string{"Content-Type": {"application/json"}},
Body: io.NopCloser(strings.NewReader("test response")),
StatusCode: http.StatusOK,
}, nil
})
},
uri: "http://localhost",
authHeader: "Basic dXNlcjpwYXNz",
lastBodySHA: "",
handleResponse: func(t *testing.T, httpSync Sync, _ string, err error) {
if err != nil {
t.Fatalf("fetch: %v", err)
}
expectedLastBodySHA := "UjeJHtCU_wb7OHK-tbPoHycw0TqlHzkWJmH4y6cqg50="
if httpSync.LastBodySHA != expectedLastBodySHA {
t.Errorf(
"expected last body sha to be: '%s', got: '%s'", expectedLastBodySHA, httpSync.LastBodySHA,
)
}
},
},
"unauthorized request": {
setup: func(_ *testing.T, client *syncmock.MockClient) {
client.EXPECT().Do(gomock.Any()).Return(&http.Response{
Header: map[string][]string{"Content-Type": {"application/json"}},
Body: io.NopCloser(strings.NewReader("test response")),
StatusCode: http.StatusUnauthorized,
}, nil)
},
uri: "http://localhost",
handleResponse: func(t *testing.T, _ Sync, _ string, err error) {
if err == nil {
t.Fatalf("expected unauthorized request to return an error")
}
},
},
"not modified response etag matched": {
setup: func(t *testing.T, client *syncmock.MockClient) {
expectedIfNoneMatch := `"1af17a664e3fa8e419b8ba05c2a173169df76162a5a286e0c405b460d478f7ef"`
client.EXPECT().Do(gomock.Any()).DoAndReturn(func(req *http.Request) (*http.Response, error) {
actualIfNoneMatch := req.Header.Get("If-None-Match")
if actualIfNoneMatch != expectedIfNoneMatch {
t.Fatalf("expected If-None-Match header to be '%s', got %s", expectedIfNoneMatch, actualIfNoneMatch)
}
return &http.Response{
Header: map[string][]string{"ETag": {expectedIfNoneMatch}},
Body: io.NopCloser(strings.NewReader("")),
StatusCode: http.StatusNotModified,
}, nil
})
},
uri: "http://localhost",
eTagHeader: `"1af17a664e3fa8e419b8ba05c2a173169df76162a5a286e0c405b460d478f7ef"`,
handleResponse: func(t *testing.T, httpSync Sync, _ string, err error) {
if err != nil {
t.Fatalf("fetch: %v", err)
}
expectedLastBodySHA := ""
expectedETag := `"1af17a664e3fa8e419b8ba05c2a173169df76162a5a286e0c405b460d478f7ef"`
if httpSync.LastBodySHA != expectedLastBodySHA {
t.Errorf(
"expected last body sha to be: '%s', got: '%s'", expectedLastBodySHA, httpSync.LastBodySHA,
)
}
if httpSync.eTag != expectedETag {
t.Errorf(
"expected last etag to be: '%s', got: '%s'", expectedETag, httpSync.eTag,
)
}
},
},
"modified response etag mismatched": {
setup: func(t *testing.T, client *syncmock.MockClient) {
expectedIfNoneMatch := `"1af17a664e3fa8e419b8ba05c2a173169df76162a5a286e0c405b460d478f7ef"`
client.EXPECT().Do(gomock.Any()).DoAndReturn(func(req *http.Request) (*http.Response, error) {
actualIfNoneMatch := req.Header.Get("If-None-Match")
if actualIfNoneMatch != expectedIfNoneMatch {
t.Fatalf("expected If-None-Match header to be '%s', got %s", expectedIfNoneMatch, actualIfNoneMatch)
}
newContent := "\"Hey there!\""
newETag := `"c2e01ce63d90109c4c7f4f6dcea97ed1bb2b51e3647f36caf5acbe27413a24bb"`
return &http.Response{
Header: map[string][]string{
"Content-Type": {"application/json"},
"Etag": {newETag},
},
Body: io.NopCloser(strings.NewReader(newContent)),
StatusCode: http.StatusOK,
}, nil
})
},
uri: "http://localhost",
eTagHeader: `"1af17a664e3fa8e419b8ba05c2a173169df76162a5a286e0c405b460d478f7ef"`,
handleResponse: func(t *testing.T, httpSync Sync, _ string, err error) {
if err != nil {
t.Fatalf("fetch: %v", err)
}
expectedLastBodySHA := "wuAc5j2QEJxMf09tzql-0bsrUeNkfzbK9ay-J0E6JLs="
expectedETag := `"c2e01ce63d90109c4c7f4f6dcea97ed1bb2b51e3647f36caf5acbe27413a24bb"`
if httpSync.LastBodySHA != expectedLastBodySHA {
t.Errorf(
"expected last body sha to be: '%s', got: '%s'", expectedLastBodySHA, httpSync.LastBodySHA,
)
}
if httpSync.eTag != expectedETag {
t.Errorf(
"expected last etag to be: '%s', got: '%s'", expectedETag, httpSync.eTag,
)
}
},
},
}
for name, tt := range tests {
@ -145,8 +332,10 @@ func TestHTTPSync_Fetch(t *testing.T) {
URI: tt.uri,
Client: mockClient,
BearerToken: tt.bearerToken,
AuthHeader: tt.authHeader,
LastBodySHA: tt.lastBodySHA,
Logger: logger.NewLogger(nil, false),
eTag: tt.eTagHeader,
}
fetched, err := httpSync.Fetch(context.Background())
@ -155,8 +344,33 @@ func TestHTTPSync_Fetch(t *testing.T) {
}
}
func TestSync_Init(t *testing.T) {
tests := []struct {
name string
bearerToken string
}{
{"with bearerToken", "bearer-1234"},
{"without bearerToken", ""},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
httpSync := Sync{
BearerToken: tt.bearerToken,
Logger: logger.NewLogger(nil, false),
}
if err := httpSync.Init(context.Background()); err != nil {
t.Errorf("Init() error = %v", err)
}
})
}
}
func TestHTTPSync_Resync(t *testing.T) {
ctrl := gomock.NewController(t)
source := "http://localhost"
emptyFlagData := "{}"
tests := map[string]struct {
setup func(t *testing.T, client *syncmock.MockClient)
@ -168,12 +382,14 @@ func TestHTTPSync_Resync(t *testing.T) {
wantNotifications []sync.DataSync
}{
"success": {
setup: func(t *testing.T, client *syncmock.MockClient) {
setup: func(_ *testing.T, client *syncmock.MockClient) {
client.EXPECT().Do(gomock.Any()).Return(&http.Response{
Body: io.NopCloser(strings.NewReader("test response")),
Header: map[string][]string{"Content-Type": {"application/json"}},
Body: io.NopCloser(strings.NewReader(emptyFlagData)),
StatusCode: http.StatusOK,
}, nil)
},
uri: "http://localhost",
uri: source,
handleResponse: func(t *testing.T, _ Sync, fetched string, err error) {
if err != nil {
t.Fatalf("fetch: %v", err)
@ -186,15 +402,14 @@ func TestHTTPSync_Resync(t *testing.T) {
wantErr: false,
wantNotifications: []sync.DataSync{
{
Type: sync.ALL,
FlagData: "",
Source: "",
FlagData: emptyFlagData,
Source: source,
},
},
},
"error response": {
setup: func(t *testing.T, client *syncmock.MockClient) {},
handleResponse: func(t *testing.T, _ Sync, fetched string, err error) {
setup: func(_ *testing.T, _ *syncmock.MockClient) {},
handleResponse: func(t *testing.T, _ Sync, _ string, err error) {
if err == nil {
t.Error("expected err, got nil")
}
@ -230,8 +445,8 @@ func TestHTTPSync_Resync(t *testing.T) {
for _, dataSync := range tt.wantNotifications {
select {
case x := <-d:
if !reflect.DeepEqual(x.String(), dataSync.String()) {
t.Error("unexpected datasync received", x, dataSync)
if x.FlagData != dataSync.FlagData || x.Source != dataSync.Source {
t.Errorf("unexpected datasync received %v vs %v", x, dataSync)
}
case <-time.After(2 * time.Second):
t.Error("expected datasync not received", dataSync)

View File

@ -1,5 +1,10 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: pkg/sync/http/http_sync.go
//
// Generated by this command:
//
// mockgen -source=pkg/sync/http/http_sync.go -destination=pkg/sync/http/mock/http.go -package=syncmock
//
// Package syncmock is a generated GoMock package.
package syncmock
@ -8,7 +13,7 @@ import (
http "net/http"
reflect "reflect"
gomock "github.com/golang/mock/gomock"
gomock "go.uber.org/mock/gomock"
)
// MockClient is a mock of Client interface.
@ -44,68 +49,7 @@ func (m *MockClient) Do(req *http.Request) (*http.Response, error) {
}
// Do indicates an expected call of Do.
func (mr *MockClientMockRecorder) Do(req interface{}) *gomock.Call {
func (mr *MockClientMockRecorder) Do(req any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Do", reflect.TypeOf((*MockClient)(nil).Do), req)
}
// MockCron is a mock of Cron interface.
type MockCron struct {
ctrl *gomock.Controller
recorder *MockCronMockRecorder
}
// MockCronMockRecorder is the mock recorder for MockCron.
type MockCronMockRecorder struct {
mock *MockCron
}
// NewMockCron creates a new mock instance.
func NewMockCron(ctrl *gomock.Controller) *MockCron {
mock := &MockCron{ctrl: ctrl}
mock.recorder = &MockCronMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockCron) EXPECT() *MockCronMockRecorder {
return m.recorder
}
// AddFunc mocks base method.
func (m *MockCron) AddFunc(spec string, cmd func()) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "AddFunc", spec, cmd)
ret0, _ := ret[0].(error)
return ret0
}
// AddFunc indicates an expected call of AddFunc.
func (mr *MockCronMockRecorder) AddFunc(spec, cmd interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddFunc", reflect.TypeOf((*MockCron)(nil).AddFunc), spec, cmd)
}
// Start mocks base method.
func (m *MockCron) Start() {
m.ctrl.T.Helper()
m.ctrl.Call(m, "Start")
}
// Start indicates an expected call of Start.
func (mr *MockCronMockRecorder) Start() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockCron)(nil).Start))
}
// Stop mocks base method.
func (m *MockCron) Stop() {
m.ctrl.T.Helper()
m.ctrl.Call(m, "Stop")
}
// Stop indicates an expected call of Stop.
func (mr *MockCronMockRecorder) Stop() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockCron)(nil).Stop))
}

View File

@ -1,36 +1,11 @@
package sync
import "context"
import (
"context"
type Type int
// Type of the sync operation
const (
// ALL - All flags of sync provider. This is the default if unset due to primitive default
ALL Type = iota
// ADD - Additional flags from sync provider
ADD
// UPDATE - Update for flag(s) previously provided
UPDATE
// DELETE - Delete for flag(s) previously provided
DELETE
"google.golang.org/protobuf/types/known/structpb"
)
func (t Type) String() string {
switch t {
case ALL:
return "ALL"
case ADD:
return "ADD"
case UPDATE:
return "UPDATE"
case DELETE:
return "DELETE"
default:
return "UNKNOWN"
}
}
/*
ISync implementations watch for changes in the flag sources (HTTP backend, local file, K8s CRDs ...),fetch the latest
value and communicate to the Runtime with DataSync channel
@ -53,7 +28,23 @@ type ISync interface {
// DataSync is the data contract between Runtime and sync implementations
type DataSync struct {
FlagData string
Source string
Type
FlagData string
SyncContext *structpb.Struct
Source string
Selector string
}
// SourceConfig is configuration option for flagd. This maps to startup parameter sources
type SourceConfig struct {
URI string `json:"uri"`
Provider string `json:"provider"`
BearerToken string `json:"bearerToken,omitempty"`
AuthHeader string `json:"authHeader,omitempty"`
CertPath string `json:"certPath,omitempty"`
TLS bool `json:"tls,omitempty"`
ProviderID string `json:"providerID,omitempty"`
Selector string `json:"selector,omitempty"`
Interval uint32 `json:"interval,omitempty"`
MaxMsgSize int `json:"maxMsgSize,omitempty"`
}

View File

@ -2,32 +2,33 @@ package kubernetes
import (
"context"
"encoding/json"
"fmt"
"os"
"strings"
msync "sync"
"time"
"github.com/open-feature/flagd/core/pkg/logger"
"github.com/open-feature/flagd/core/pkg/sync"
"github.com/open-feature/open-feature-operator/apis/core/v1alpha1"
"github.com/open-feature/open-feature-operator/apis/core/v1beta1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/types"
"k8s.io/client-go/dynamic"
"k8s.io/client-go/dynamic/dynamicinformer"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/clientcmd"
"sigs.k8s.io/controller-runtime/pkg/client"
)
var (
resyncPeriod = 1 * time.Minute
apiVersion = fmt.Sprintf("%s/%s", v1alpha1.GroupVersion.Group, v1alpha1.GroupVersion.Version)
featureFlagConfigurationResource = v1alpha1.GroupVersion.WithResource("featureflagconfigurations")
resyncPeriod = 1 * time.Minute
apiVersion = fmt.Sprintf("%s/%s", v1beta1.GroupVersion.Group, v1beta1.GroupVersion.Version)
featureFlagResource = v1beta1.GroupVersion.WithResource("featureflags")
)
type SyncOption func(s *Sync)
type Sync struct {
URI string
@ -35,7 +36,6 @@ type Sync struct {
namespace string
crdName string
logger *logger.Logger
readClient client.Reader
dynamicClient dynamic.Interface
informer cache.SharedInformer
}
@ -43,41 +43,21 @@ type Sync struct {
func NewK8sSync(
logger *logger.Logger,
uri string,
reader client.Reader,
dynamic dynamic.Interface,
dynamicClient dynamic.Interface,
) *Sync {
return &Sync{
logger: logger,
URI: uri,
readClient: reader,
dynamicClient: dynamic,
dynamicClient: dynamicClient,
}
}
func GetClients() (client.Reader, dynamic.Interface, error) {
clusterConfig, err := k8sClusterConfig()
if err != nil {
return nil, nil, err
}
readClient, err := client.New(clusterConfig, client.Options{Scheme: scheme.Scheme})
if err != nil {
return nil, nil, err
}
dynamicClient, err := dynamic.NewForConfig(clusterConfig)
if err != nil {
return nil, nil, err
}
return readClient, dynamicClient, nil
}
func (k *Sync) ReSync(ctx context.Context, dataSync chan<- sync.DataSync) error {
fetch, err := k.fetch(ctx)
if err != nil {
return err
return fmt.Errorf("unable to fetch flag configuration: %w", err)
}
dataSync <- sync.DataSync{FlagData: fetch, Source: k.URI, Type: sync.ALL}
dataSync <- sync.DataSync{FlagData: fetch, Source: k.URI}
return nil
}
@ -86,18 +66,18 @@ func (k *Sync) Init(_ context.Context) error {
k.namespace, k.crdName, err = parseURI(k.URI)
if err != nil {
return err
return fmt.Errorf("unable to parse uri %s: %w", k.URI, err)
}
if err := v1alpha1.AddToScheme(scheme.Scheme); err != nil {
return err
if err := v1beta1.AddToScheme(scheme.Scheme); err != nil {
return fmt.Errorf("unable to v1beta1 types to scheme: %w", err)
}
// The created informer will not do resyncs if the given defaultEventHandlerResyncPeriod is zero.
// For more details on resync implications refer to tools/cache/shared_informer.go
factory := dynamicinformer.NewFilteredDynamicSharedInformerFactory(k.dynamicClient, resyncPeriod, k.namespace, nil)
k.informer = factory.ForResource(featureFlagConfigurationResource).Informer()
k.informer = factory.ForResource(featureFlagResource).Informer()
return nil
}
@ -112,11 +92,12 @@ func (k *Sync) Sync(ctx context.Context, dataSync chan<- sync.DataSync) error {
// Initial fetch
fetch, err := k.fetch(ctx)
if err != nil {
k.logger.Error(fmt.Sprintf("error with the initial fetch: %s", err.Error()))
err = fmt.Errorf("error with the initial fetch: %w", err)
k.logger.Error(err.Error())
return err
}
dataSync <- sync.DataSync{FlagData: fetch, Source: k.URI, Type: sync.ALL}
dataSync <- sync.DataSync{FlagData: fetch, Source: k.URI}
notifies := make(chan INotify)
@ -155,7 +136,7 @@ func (k *Sync) watcher(ctx context.Context, notifies chan INotify, dataSync chan
continue
}
dataSync <- sync.DataSync{FlagData: msg, Source: k.URI, Type: sync.ALL}
dataSync <- sync.DataSync{FlagData: msg, Source: k.URI}
case DefaultEventTypeModify:
k.logger.Debug("Configuration modified")
msg, err := k.fetch(ctx)
@ -164,7 +145,7 @@ func (k *Sync) watcher(ctx context.Context, notifies chan INotify, dataSync chan
continue
}
dataSync <- sync.DataSync{FlagData: msg, Source: k.URI, Type: sync.ALL}
dataSync <- sync.DataSync{FlagData: msg, Source: k.URI}
case DefaultEventTypeDelete:
k.logger.Debug("configuration deleted")
case DefaultEventTypeReady:
@ -180,7 +161,7 @@ func (k *Sync) fetch(ctx context.Context) (string, error) {
// first check the store - avoid overloading API
item, exist, err := k.informer.GetStore().GetByKey(k.URI)
if err != nil {
return "", err
return "", fmt.Errorf("unable to get %s from store: %w", k.URI, err)
}
if exist {
@ -190,28 +171,34 @@ func (k *Sync) fetch(ctx context.Context) (string, error) {
}
k.logger.Debug(fmt.Sprintf("resource %s served from the informer cache", k.URI))
return configuration.Spec.FeatureFlagSpec, nil
return marshallFeatureFlagSpec(configuration)
}
// fallback to API access - this is an informer cache miss. Could happen at the startup where cache is not filled
var ff v1alpha1.FeatureFlagConfiguration
err = k.readClient.Get(ctx, client.ObjectKey{
Name: k.crdName,
Namespace: k.namespace,
}, &ff)
ffObj, err := k.dynamicClient.
Resource(featureFlagResource).
Namespace(k.namespace).
Get(ctx, k.crdName, metav1.GetOptions{})
if err != nil {
return "", err
return "", fmt.Errorf("unable to fetch FeatureFlag %s/%s: %w", k.namespace, k.crdName, err)
}
k.logger.Debug(fmt.Sprintf("resource %s served from API server", k.URI))
return ff.Spec.FeatureFlagSpec, nil
ff, err := toFFCfg(ffObj)
if err != nil {
return "", fmt.Errorf("unable to convert object %s/%s to FeatureFlag: %w", k.namespace, k.crdName, err)
}
return marshallFeatureFlagSpec(ff)
}
func (k *Sync) notify(ctx context.Context, c chan<- INotify) {
objectKey := client.ObjectKey{
objectKey := types.NamespacedName{
Name: k.crdName,
Namespace: k.namespace,
}
if _, err := k.informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: func(obj interface{}) {
k.logger.Info(fmt.Sprintf("kube sync notifier event: add: %s %s", objectKey.Namespace, objectKey.Name))
@ -245,7 +232,7 @@ func (k *Sync) notify(ctx context.Context, c chan<- INotify) {
}
// commonHandler emits the desired event if and only if handler receive an object matching apiVersion and resource name
func commonHandler(obj interface{}, object client.ObjectKey, emitEvent DefaultEventType, c chan<- INotify) error {
func commonHandler(obj interface{}, object types.NamespacedName, emitEvent DefaultEventType, c chan<- INotify) error {
ffObj, err := toFFCfg(obj)
if err != nil {
return err
@ -267,7 +254,7 @@ func commonHandler(obj interface{}, object client.ObjectKey, emitEvent DefaultEv
}
// updateFuncHandler handles updates. Event is emitted if and only if resource name, apiVersion of old & new are equal
func updateFuncHandler(oldObj interface{}, newObj interface{}, object client.ObjectKey, c chan<- INotify) error {
func updateFuncHandler(oldObj interface{}, newObj interface{}, object types.NamespacedName, c chan<- INotify) error {
ffOldObj, err := toFFCfg(oldObj)
if err != nil {
return err
@ -298,16 +285,16 @@ func updateFuncHandler(oldObj interface{}, newObj interface{}, object client.Obj
}
// toFFCfg attempts to covert unstructured payload to configurations
func toFFCfg(object interface{}) (*v1alpha1.FeatureFlagConfiguration, error) {
func toFFCfg(object interface{}) (*v1beta1.FeatureFlag, error) {
u, ok := object.(*unstructured.Unstructured)
if !ok {
return nil, fmt.Errorf("provided value is not of type *unstructured.Unstructured")
}
var ffObj v1alpha1.FeatureFlagConfiguration
var ffObj v1beta1.FeatureFlag
err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, &ffObj)
if err != nil {
return nil, err
return nil, fmt.Errorf("unable to convert unstructured to v1beta1.FeatureFlag: %w", err)
}
return &ffObj, nil
@ -323,22 +310,10 @@ func parseURI(uri string) (string, string, error) {
return s[0], s[1], nil
}
// k8sClusterConfig build K8s connection config based available configurations
func k8sClusterConfig() (*rest.Config, error) {
cfg := os.Getenv("KUBECONFIG")
var clusterConfig *rest.Config
var err error
if cfg != "" {
clusterConfig, err = clientcmd.BuildConfigFromFlags("", cfg)
} else {
clusterConfig, err = rest.InClusterConfig()
}
func marshallFeatureFlagSpec(ff *v1beta1.FeatureFlag) (string, error) {
b, err := json.Marshal(ff.Spec.FlagSpec)
if err != nil {
return nil, err
return "", fmt.Errorf("failed to marshall FlagSpec: %s", err.Error())
}
return clusterConfig, nil
return string(b), nil
}

Some files were not shown because too many files have changed in this diff Show More