Skip to content

feat(endpointpolicy): share private-network HTTP endpoint rules - #342

Open
salmonumbrella wants to merge 4 commits into
kenn-io:mainfrom
salmonumbrella:feat/endpoint-policy
Open

salmonumbrella wants to merge 4 commits into
kenn-io:mainfrom
salmonumbrella:feat/endpoint-policy

Conversation

@salmonumbrella

Copy link
Copy Markdown
Contributor

Integration clients can share one rule for trusted private-network HTTP, including container DNS names, and report errors under their own name.

Use endpointpolicy.CanonicalEndpoint(rawURL, trustPrivateNetwork, "catalog"). The existing embedconfig functions delegate to it and retain their current output and errors.

Closes #341

@roborev-ci

roborev-ci Bot commented Nov 10, 2026

Copy link
Copy Markdown

roborev: Combined Review (82459b9)

Verdict: Changes require fixes for 3 findings.

Medium

  • endpointpolicy/propertytests/endpoint_test.go:93: TestEmbeddingWrapperEquivalence compares endpointpolicy.CanonicalEndpoint with a wrapper that directly calls the same implementation, so shared policy, formatting, and error regressions pass. Existing deterministic compatibility tests already cover its forwarding checks.

    Fix: Delete TestEmbeddingWrapperEquivalence and retain the independent fixed-expectation compatibility tests.

  • endpointpolicy/propertytests/endpoint_test.go:52: TestDNSNameTrust generates names that all reach the same DNS trust decision. Existing deterministic tests already cover that decision under both trust settings, including diagnostics and successful output; random label variations add no distinct boundary or failure detection.

    Fix: Delete TestDNSNameTrust and retain the deterministic DNS-policy cases.

  • endpointpolicy/propertytests/endpoint_test.go:263: TestOriginalParseErrorAfterZoneRetry duplicates the implementation path and assertions already covered by TestCanonicalEndpointParseErrorCompatibility. Its generated inputs add no distinct failure detection for preserving the original parse error.

    Fix: Delete TestOriginalParseErrorAfterZoneRetry and retain TestCanonicalEndpointParseErrorCompatibility.


Reviewers: 3x codex, codex (security), codex (test-value) | Synthesis: codex, 14s | Total: 6m5s

@roborev-ci

roborev-ci Bot commented Nov 10, 2026

Copy link
Copy Markdown

roborev: Combined Review (588d977)

Verdict: No findings at or above medium severity.


Reviewers: 3x codex, codex (security), codex (test-value) | Synthesis: codex | Total: 6m5s

The property suite used Hegel, so it needed its own Go module to keep
Hegel's dependencies out of kit. That meant a second go.mod to keep tidy,
two extra CI steps, and tests that lint and the regular test run skipped.

Rapid is already a kit test dependency and shrinks failing cases. With it,
the properties run as ordinary package tests and go through lint. The
address generator draws from prefixes at the policy boundaries, so the
default 100 cases still reach the loopback, private, and CGNAT edges.

The embedconfig.Origin wrapper check is dropped from this suite. The
embedconfig compatibility tests already pin the wrapper's output, and
endpointpolicy tests should not depend on embedconfig.

Generated with Claude Code (claude-opus-5-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@roborev-ci

roborev-ci Bot commented Nov 12, 2026

Copy link
Copy Markdown

roborev: Combined Review (3d54eaf)

Verdict: No findings at or above medium severity.


Reviewers: 3x codex, codex (security), codex (test-value) | Synthesis: codex, 0s | Total: 4m20s

@roborev-ci

roborev-ci Bot commented Nov 13, 2026

Copy link
Copy Markdown

roborev: Combined Review (42b6a8e)

Verdict: No findings at or above medium severity.


Reviewers: 3x codex, codex (security), codex (test-value) | Synthesis: codex, 0s | Total: 5m57s

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

Share embedconfig's private-network plaintext rule with every integration client

2 participants