-
Notifications
You must be signed in to change notification settings - Fork 4.6k
credentials: Allow net.Pipe with credentials/local #8603
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
net.Pipe is a go standard library abstraction to create in-process an in-process connected pair of net.Conn. Using a specialized net.Listener and WithContextDialier this allows to create an in-process grpc Server/Client pair without an OS based roundtrip. RELEASE NOTES: * credentials: Allow using net.Pipe basec connections with credentials/local authorization.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #8603 +/- ##
==========================================
+ Coverage 81.86% 82.12% +0.25%
==========================================
Files 415 415
Lines 40694 40699 +5
==========================================
+ Hits 33316 33423 +107
+ Misses 5993 5893 -100
+ Partials 1385 1383 -2
🚀 New features to boost your workflow:
|
@matthewstevenson88 : Could you please help review this from the security team's pov. Thanks. |
Redirecting review to @gtcooke94. |
Can you add some description for an example use case? Also, maybe an integration test showing this usage? |
I added some description pointing out the 3 aspects that lead me down this route.
|
I'll see if I can figure out how to cleanly add some integration test. |
This PR is labeled as requiring an update from the reporter, and no update has been received after 6 days. If no update is provided in the next 7 days, this issue will be automatically closed. |
net.Pipe is a go standard library abstraction to create in-process an in-process connected pair of net.Conn.
Using a specialized net.Listener and WithContextDialer this allows to create an in-process grpc Server/Client pair without an OS based roundtrip.
This is mainly useful in testing setups, where it avoids using a global (albeit plentyful) resoure.
Additionally, this will allow using the testing/synctest functionality once it becomes stable, since it handles net.Pipe but cannot deal with real networked connections.
It also provides an efficient self-connection that preserves utility features with grpc like the opentelemetry integration for setups that can be both micro-service oriented or in self-contained monoliths.
RELEASE NOTES: