Skip to content

feat: http unix socket support - #152

Merged
beeme1mr merged 6 commits into
open-feature:mainfrom
james-milligan:http-unix
Aug 22, 2022
Merged

feat: http unix socket support#152
beeme1mr merged 6 commits into
open-feature:mainfrom
james-milligan:http-unix

Conversation

@james-milligan

Copy link
Copy Markdown
Contributor

Adds unix socket support to bridge the connection between the http proxy and grpc service.

When a unix socket path is provided, this new implementation is used in favour of the standard tcp conection

Signed-off-by: James-Milligan <james@omnant.co.uk>
Signed-off-by: James-Milligan <james@omnant.co.uk>
Signed-off-by: James-Milligan <james@omnant.co.uk>
@james-milligan
james-milligan marked this pull request as ready for review August 22, 2022 12:40
@beeme1mr

Copy link
Copy Markdown
Member

Please sure to update the documentation.

Signed-off-by: James-Milligan <james@omnant.co.uk>
Signed-off-by: James-Milligan <james@omnant.co.uk>
@beeme1mr
beeme1mr merged commit 09428e7 into open-feature:main Aug 22, 2022
raphael-wigoutschnigg-dt pushed a commit to open-feature-forking/flagd that referenced this pull request Mar 11, 2025
… v1.5.1 (open-feature#152)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
beeme1mr added a commit that referenced this pull request May 20, 2026
## Summary

Resolved 5 open Dependabot security alerts by bumping vulnerable
dependencies.

## Dependabot Alerts Resolved

| Alert | Package | Severity | Fix |
|-------|---------|----------|-----|
| #179 | `postcss` | **medium** | Bumped from 8.5.8 to 8.5.14 in
`playground-app/package-lock.json` (vite resolves postcss to patched
version naturally, no override needed) |
| #181 | `github.com/go-git/go-git/v5` | **high** | Bumped from 5.18.0
to 5.19.1 in `test/integration/go.mod` |
| #182 | `github.com/go-git/go-billy/v5` | **medium** | Bumped from
5.8.0 to 5.9.0 via go-git upgrade |
| #183 | `github.com/go-git/go-billy/v5` | **high** | Bumped from 5.8.0
to 5.9.0 via go-git upgrade |
| #180 | `github.com/in-toto/in-toto-golang` | **medium** | Bumped from
0.10.0 to 0.11.0 in `test/integration/go.mod` |

## Unresolvable alerts

- **Alert #184** (`github.com/docker/docker`, high) — vulnerable `<=
28.5.2`; no patched Go module version is published yet (latest is
28.5.2; fix is on `moby/moby/v2` 2.0.0-beta.14, a different module path)
- **Alert #185** (`github.com/docker/docker`, medium) — same; no patched
version available on the `docker/docker` module path
- **Alert #186** (`github.com/docker/docker`, high) — same; no patched
version available on the `docker/docker` module path
- **Alert #152** (`github.com/docker/docker`, high) — requires >= 29.3.1
but no patched Go module version is published yet
- **Alert #151** (`github.com/docker/docker`, medium) — same; requires
>= 29.3.1, no patched version available

All docker/docker alerts are transitive deps of `testcontainers-go` in
the orphaned integration-test module; will be resolved when upstream
cuts a Go module under the existing `docker/docker` path or
testcontainers-go migrates to `moby/moby/v2`.

---------

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
jonathannorris added a commit that referenced this pull request Jul 6, 2026
- golang.org/x/net v0.52.0/v0.48.0 -> v0.55.0 in flagd, core, flagd-proxy,
  flagd-proxy/tests/loadtest, test/zero-downtime-flagd-proxy (medium,
  alerts #201-206)
- github.com/testcontainers/testcontainers-go v0.41.0 -> v0.43.0 in
  test/integration, which migrates off github.com/containerd/containerd/v2
  and picks up patched transitive deps (moby/buildkit, docker/buildx,
  docker/compose) used for alert #152's fix chain
- suppress newly-introduced staticcheck deprecation warnings for
  golang.org/x/net/http2/h2c (deprecated as of x/net v0.55.0) with nolint
  directives; migrating to http.Server.Protocols is a larger refactor
  out of scope for this dependency bump

Unresolvable: github.com/docker/docker (alerts #151, #152, #184, #185,
#186) remains at v28.5.2+incompatible in test/integration. It is an
unreachable transitive entry retained by Go's module graph pruning
(no code path imports it); the advisory's patched version 29.3.1 has
no corresponding tag in the Go module proxy for the legacy
github.com/docker/docker import path (moby has moved new majors to
github.com/moby/moby/v2), so it cannot be bumped without a
replace/override, which is disallowed for this published project.

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
jonathannorris added a commit that referenced this pull request Jul 20, 2026
- golang.org/x/net v0.52.0/v0.48.0 -> v0.55.0 in flagd, core, flagd-proxy,
  flagd-proxy/tests/loadtest, test/zero-downtime-flagd-proxy (medium,
  alerts #201-206)
- github.com/testcontainers/testcontainers-go v0.41.0 -> v0.43.0 in
  test/integration, which migrates off github.com/containerd/containerd/v2
  and picks up patched transitive deps (moby/buildkit, docker/buildx,
  docker/compose) used for alert #152's fix chain
- suppress newly-introduced staticcheck deprecation warnings for
  golang.org/x/net/http2/h2c (deprecated as of x/net v0.55.0) with nolint
  directives; migrating to http.Server.Protocols is a larger refactor
  out of scope for this dependency bump

Unresolvable: github.com/docker/docker (alerts #151, #152, #184, #185,
unreachable transitive entry retained by Go's module graph pruning
(no code path imports it); the advisory's patched version 29.3.1 has
no corresponding tag in the Go module proxy for the legacy
github.com/docker/docker import path (moby has moved new majors to
github.com/moby/moby/v2), so it cannot be bumped without a
replace/override, which is disallowed for this published project.

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
jonathannorris added a commit that referenced this pull request Jul 20, 2026
…edback

- github.com/sigstore/sigstore-go v1.1.4 -> v1.2.2 in test/integration
  (medium, alert #260)
- js-yaml ^4.1.1 -> ^4.2.0 and vite ^6.4.2 -> ^6.4.3 in playground-app
  (medium/high, alerts #207, #199, #200); lockfile already resolved these
  transitively, this pins the direct specifiers to match
- Root-cause fix for a regression introduced by the prior
  testcontainers-go v0.41.0 -> v0.43.0 bump: v0.43.0's modules/compose
  changed DockerContainer.MappedPort's signature (nat.Port -> string),
  which is incompatible with go-sdk-contrib/tests/flagd/v2@v2.0.2's
  testframework (pinned, no newer version exists) and broke
  `go vet`/`go test` compilation in test/integration (go build alone
  didn't catch it since _test.go files aren't compiled by `go build`).
  Reverted testcontainers-go and testcontainers-go/modules/compose to
  v0.41.0 (API-compatible) while keeping the already-patched transitive
  containerd/containerd/v2 v2.2.5 and other bumps pinned via explicit
  go.mod requires, so alerts #189, #192-#196 remain resolved without
  reintroducing the vulnerable containerd version.
- Add ReadTimeout to the flagd-proxy metrics server's http.Server per
  CodeRabbit review feedback on this PR: ReadHeaderTimeout alone only
  bounds header parsing, leaving the plain HTTP/h2c port open to
  slow-client (Slowloris-style) resource exhaustion.

Still unresolvable: github.com/docker/docker (alerts #151, #152, #184,
#185, #186) remains at v28.5.2+incompatible in test/integration. No
version >= 28.5.2 (including the advisory's referenced 29.3.1 for
alert #152) is published under the legacy github.com/docker/docker
import path in the Go module proxy; moby now ships new majors under
github.com/moby/moby/v2, which this module graph cannot switch to
without deeper dependency surgery.

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
toddbaert pushed a commit that referenced this pull request Jul 20, 2026
- golang.org/x/net v0.52.0/v0.48.0 -> v0.55.0 in flagd, core, flagd-proxy,
  flagd-proxy/tests/loadtest, test/zero-downtime-flagd-proxy (medium,
  alerts #201-206)
- github.com/testcontainers/testcontainers-go v0.41.0 -> v0.43.0 in
  test/integration, which migrates off github.com/containerd/containerd/v2
  and picks up patched transitive deps (moby/buildkit, docker/buildx,
  docker/compose) used for alert #152's fix chain
- suppress newly-introduced staticcheck deprecation warnings for
  golang.org/x/net/http2/h2c (deprecated as of x/net v0.55.0) with nolint
  directives; migrating to http.Server.Protocols is a larger refactor
  out of scope for this dependency bump

Unresolvable: github.com/docker/docker (alerts #151, #152, #184, #185,
unreachable transitive entry retained by Go's module graph pruning
(no code path imports it); the advisory's patched version 29.3.1 has
no corresponding tag in the Go module proxy for the legacy
github.com/docker/docker import path (moby has moved new majors to
github.com/moby/moby/v2), so it cannot be bumped without a
replace/override, which is disallowed for this published project.

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
toddbaert pushed a commit that referenced this pull request Jul 20, 2026
…edback

- github.com/sigstore/sigstore-go v1.1.4 -> v1.2.2 in test/integration
  (medium, alert #260)
- js-yaml ^4.1.1 -> ^4.2.0 and vite ^6.4.2 -> ^6.4.3 in playground-app
  (medium/high, alerts #207, #199, #200); lockfile already resolved these
  transitively, this pins the direct specifiers to match
- Root-cause fix for a regression introduced by the prior
  testcontainers-go v0.41.0 -> v0.43.0 bump: v0.43.0's modules/compose
  changed DockerContainer.MappedPort's signature (nat.Port -> string),
  which is incompatible with go-sdk-contrib/tests/flagd/v2@v2.0.2's
  testframework (pinned, no newer version exists) and broke
  `go vet`/`go test` compilation in test/integration (go build alone
  didn't catch it since _test.go files aren't compiled by `go build`).
  Reverted testcontainers-go and testcontainers-go/modules/compose to
  v0.41.0 (API-compatible) while keeping the already-patched transitive
  containerd/containerd/v2 v2.2.5 and other bumps pinned via explicit
  go.mod requires, so alerts #189, #192-#196 remain resolved without
  reintroducing the vulnerable containerd version.
- Add ReadTimeout to the flagd-proxy metrics server's http.Server per
  CodeRabbit review feedback on this PR: ReadHeaderTimeout alone only
  bounds header parsing, leaving the plain HTTP/h2c port open to
  slow-client (Slowloris-style) resource exhaustion.

Still unresolvable: github.com/docker/docker (alerts #151, #152, #184,
#185, #186) remains at v28.5.2+incompatible in test/integration. No
version >= 28.5.2 (including the advisory's referenced 29.3.1 for
alert #152) is published under the legacy github.com/docker/docker
import path in the Go module proxy; moby now ships new majors under
github.com/moby/moby/v2, which this module graph cannot switch to
without deeper dependency surgery.

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
toddbaert pushed a commit that referenced this pull request Jul 20, 2026
- golang.org/x/net v0.52.0/v0.48.0 -> v0.55.0 in flagd, core, flagd-proxy,
  flagd-proxy/tests/loadtest, test/zero-downtime-flagd-proxy (medium,
  alerts #201-206)
- github.com/testcontainers/testcontainers-go v0.41.0 -> v0.43.0 in
  test/integration, which migrates off github.com/containerd/containerd/v2
  and picks up patched transitive deps (moby/buildkit, docker/buildx,
  docker/compose) used for alert #152's fix chain
- suppress newly-introduced staticcheck deprecation warnings for
  golang.org/x/net/http2/h2c (deprecated as of x/net v0.55.0) with nolint
  directives; migrating to http.Server.Protocols is a larger refactor
  out of scope for this dependency bump

Unresolvable: github.com/docker/docker (alerts #151, #152, #184, #185,
unreachable transitive entry retained by Go's module graph pruning
(no code path imports it); the advisory's patched version 29.3.1 has
no corresponding tag in the Go module proxy for the legacy
github.com/docker/docker import path (moby has moved new majors to
github.com/moby/moby/v2), so it cannot be bumped without a
replace/override, which is disallowed for this published project.

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
toddbaert pushed a commit that referenced this pull request Jul 20, 2026
…edback

- github.com/sigstore/sigstore-go v1.1.4 -> v1.2.2 in test/integration
  (medium, alert #260)
- js-yaml ^4.1.1 -> ^4.2.0 and vite ^6.4.2 -> ^6.4.3 in playground-app
  (medium/high, alerts #207, #199, #200); lockfile already resolved these
  transitively, this pins the direct specifiers to match
- Root-cause fix for a regression introduced by the prior
  testcontainers-go v0.41.0 -> v0.43.0 bump: v0.43.0's modules/compose
  changed DockerContainer.MappedPort's signature (nat.Port -> string),
  which is incompatible with go-sdk-contrib/tests/flagd/v2@v2.0.2's
  testframework (pinned, no newer version exists) and broke
  `go vet`/`go test` compilation in test/integration (go build alone
  didn't catch it since _test.go files aren't compiled by `go build`).
  Reverted testcontainers-go and testcontainers-go/modules/compose to
  v0.41.0 (API-compatible) while keeping the already-patched transitive
  containerd/containerd/v2 v2.2.5 and other bumps pinned via explicit
  go.mod requires, so alerts #189, #192-#196 remain resolved without
  reintroducing the vulnerable containerd version.
- Add ReadTimeout to the flagd-proxy metrics server's http.Server per
  CodeRabbit review feedback on this PR: ReadHeaderTimeout alone only
  bounds header parsing, leaving the plain HTTP/h2c port open to
  slow-client (Slowloris-style) resource exhaustion.

Still unresolvable: github.com/docker/docker (alerts #151, #152, #184,
#185, #186) remains at v28.5.2+incompatible in test/integration. No
version >= 28.5.2 (including the advisory's referenced 29.3.1 for
alert #152) is published under the legacy github.com/docker/docker
import path in the Go module proxy; moby now ships new majors under
github.com/moby/moby/v2, which this module graph cannot switch to
without deeper dependency surgery.

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
toddbaert added a commit that referenced this pull request Jul 20, 2026
## Summary

Resolves all cleanly patchable open Dependabot security alerts (28 of
33). The remaining 5 have no available patched version for their legacy
import path — see below.

## Dependabot Alerts Resolved

| Alert | Package | Severity | Fix |
|-------|---------|----------|-----|
| #260 | `github.com/sigstore/sigstore-go` | **medium** | Bumped to
v1.2.2 in `test/integration` |
| #247-#259 (13 alerts) | `golang.org/x/crypto` |
**critical/high/medium** | Already resolved on `main` (v0.52.0+);
carried through the rebase |
| #207 | `js-yaml` | **medium** | Bumped to `^4.2.0` in `playground-app`
|
| #206, #202, #201 | `golang.org/x/net` | **medium** | Bumped to
v0.55.0/v0.56.0 across `flagd`, `core`, `flagd-proxy`,
`test/integration`, and related test modules |
| #200, #199 | `vite` | **medium/high** | Bumped to `^6.4.3` in
`playground-app` |
| #197 | `@babel/core` | **low** | Forced `>=7.29.6` via npm override in
`playground-app` |
| #189, #192-#196 | `github.com/containerd/containerd/v2` |
**high/medium** | Bumped to v2.2.5 in `test/integration` (kept on
`testcontainers-go` v0.41.0 — see note below) |
| #190 | `js-cookie` | **high** | Forced `>=3.0.7` via npm override in
`playground-app` |

**Note on containerd fix:** an earlier revision of this branch bumped
`testcontainers-go` to v0.43.0 to reach patched `containerd/v2`, but
that also changed `DockerContainer.MappedPort`'s signature in a way
that's incompatible with `go-sdk-contrib/tests/flagd/v2@v2.0.2` (pinned;
no newer version exists) — breaking `go vet`/`go test` compilation in
`test/integration` (not caught by `go build` alone, since it doesn't
compile `_test.go` files). Reverted `testcontainers-go` to v0.41.0
(API-compatible) while keeping `containerd/containerd/v2` pinned at
v2.2.5 via an explicit `go.mod` require — standard Go MVS, no `replace`
directive needed.

## Unresolvable Alerts

**`github.com/docker/docker`** (#151, #152, #184, #185, #186) in
`test/integration`: pinned at `v28.5.2+incompatible`. No version ≥ that
(including the advisory's referenced `v29.3.1` for #152) exists under
the legacy `github.com/docker/docker` import path in the Go module proxy
— moby now ships new majors under `github.com/moby/moby/v2`. Transitive
dependency of testcontainers/buildx/compose; unresolvable until those
upstreams migrate.

| Alert | Package | Severity | Reason |
|-------|---------|----------|--------|
| #186 | `github.com/docker/docker` | **high** | No patched version in
Go module proxy |
| #185 | `github.com/docker/docker` | **medium** | No patched version in
Go module proxy |
| #184 | `github.com/docker/docker` | **high** | No patched version in
Go module proxy |
| #152 | `github.com/docker/docker` | **high** | Advisory's patched
version (29.3.1) not published for this import path |
| #151 | `github.com/docker/docker` | **medium** | No patched version in
Go module proxy |

## Other changes

- Added `ReadTimeout` to the flagd-proxy metrics server's `http.Server`
(`flagd-proxy/pkg/service/server.go`) per CodeRabbit review feedback,
hardening the plain HTTP/h2c port against slow-client resource
exhaustion.

## Verification

- `make test`, `make build`, and `go vet` pass across all Go modules
(`core`, `flagd`, `flagd-proxy`, `flagd-proxy/tests/loadtest`,
`test/zero-downtime-flagd-proxy`).
- `test/integration`: `go build ./...`, `go vet ./...`, and `go test`
(compile-only; actual container run needs a Docker daemon) all pass.
- `playground-app`: `npm run build` succeeds; `npm install
--package-lock-only --dry-run` reports up to date.

---------

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
Signed-off-by: Todd Baert <todd.baert@dynatrace.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
toddbaert pushed a commit that referenced this pull request Jul 31, 2026
## Summary

- Resolved 6 open Dependabot security alerts by bumping vulnerable
dependencies (Go and npm)
- 5 remaining docker/docker alerts are unresolvable at this time (see
table) — no released fix is available yet in the go.mod-compatible
module

## Dependabot Alerts Resolved

| Alert | Package | Severity | Fix |
|-------|---------|----------|-----|
| #269 | `postcss` | **high** | Bumped to 8.5.23 in playground-app
(lockfile-only) |
| #268 | `brace-expansion` | **high** | Bumped to 2.1.2 in
playground-app (lockfile-only) |
| #267 | `brace-expansion` | **high** | Bumped to 1.1.16 in
playground-app (lockfile-only) |
| #266 | `google.golang.org/grpc` | **high** | Bumped to v1.82.1 in
test/integration |
| #265 | `google.golang.org/grpc` | **high** | Bumped to v1.82.1 in
test/zero-downtime-flagd-proxy |
| #264 | `google.golang.org/grpc` | **high** | Bumped to v1.82.1 in
flagd-proxy/tests/loadtest |

## Unresolved alerts (not addressed in this PR)

| Alert | Package | Severity | Reason |
|-------|---------|----------|--------|
| #186 | `github.com/docker/docker` | high | No patched version
published yet |
| #185 | `github.com/docker/docker` | medium | No patched version
published yet |
| #184 | `github.com/docker/docker` | high | No patched version
published yet |
| #152 | `github.com/docker/docker` | high | Advisory lists
first_patched_version 29.3.1, but no such tag exists in the moby/moby
repo — the fix is only available via the pre-release
`github.com/moby/moby/v2` module (currently in beta), which would
require migrating test/integration's testcontainers-go dependency chain
off the legacy incompatible module. Too risky for an automated
dependency bump; flagged for manual follow-up. |
| #151 | `github.com/docker/docker` | medium | No patched version
published yet |

All of these come from the transitive `github.com/docker/docker`
dependency pulled in via testcontainers-go/docker-compose in
`test/integration/go.mod`.

Also added `.worktrees/` to `.gitignore` (used for isolated git
worktrees during this maintenance work).

## Test plan

- [x] `go build ./...` for all touched Go modules
- [x] `make test` (core, flagd, flagd-proxy unit tests) — all passing
- [x] `make lint` (golangci-lint across workspace modules) — no new
issues
- [x] `npm run build` in playground-app — succeeds
- [x] Verified via `npm ls`/`go mod why` that patched versions are now
selected for each resolved alert

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
toddbaert pushed a commit that referenced this pull request Aug 12, 2026
## Summary

- Resolved 2 open Dependabot security alerts by bumping
`github.com/go-git/go-git/v5` in `test/integration`
- 5 remaining `github.com/docker/docker` alerts are unresolvable at this
time (see table) — no released fix is available yet

## Dependabot Alerts Resolved

| Alert | Package | Severity | Fix |
|-------|---------|----------|-----|
| #272 | `github.com/go-git/go-git/v5` | **high** | Bumped to v5.19.2 in
test/integration |
| #273 | `github.com/go-git/go-git/v5` | **medium** | Bumped to v5.19.2
in test/integration |

## Unresolved alerts (not addressed in this PR)

| Alert | Package | Severity | Reason |
|-------|---------|----------|--------|
| #186 | `github.com/docker/docker` | high | No patched version
published yet |
| #185 | `github.com/docker/docker` | medium | No patched version
published yet |
| #184 | `github.com/docker/docker` | high | No patched version
published yet |
| #152 | `github.com/docker/docker` | high | Advisory lists
first_patched_version 29.3.1, but no such tag exists yet in the
moby/moby repo |
| #151 | `github.com/docker/docker` | medium | No patched version
published yet |

All of these come from the transitive `github.com/docker/docker`
dependency pulled in via testcontainers-go/docker-compose in
`test/integration/go.mod`.

## Test plan

- [x] `go build ./...` in test/integration
- [x] `go vet ./...` in test/integration
- [x] `golangci-lint run ./...` in test/integration — no new issues (2
pre-existing errcheck findings unrelated to this change)

Signed-off-by: Jonathan Norris <jonathan.norris@dynatrace.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants