pub struct PluginSpec {
pub binary: PathBuf,
pub magic_cookie_key: String,
pub magic_cookie_value: String,
pub accepted_protocols: Vec<PluginProtocol>,
pub min_port: u16,
pub max_port: u16,
pub kill_grace: Duration,
pub secure: bool,
}Expand description
Parameters required to spawn and handshake with a provider plugin.
Fields§
§binary: PathBuf§accepted_protocols: Vec<PluginProtocol>§min_port: u16§max_port: u16§kill_grace: Duration§secure: boolWhen true, Plugin::dial layers mTLS (go-plugin AutoMTLS) on the
gRPC channel: it sets PLUGIN_CLIENT_CERT (making the provider serve
TLS), then connects with rustls + the rcgen parent identity + a
verifier trusting the provider’s handshake cert. When false
(DEFAULT), PLUGIN_CLIENT_CERT is unset so the provider serves
plaintext h2c over its local socket, and dial uses the plain h2c
path. For a co-located subprocess provider talking over a
process-local unix socket / loopback in the SAME pod, plaintext is
both the secure boundary (the socket is filesystem- + namespace-
scoped) and the known-good transport; AutoMTLS is defense-in-depth
for remote/untrusted providers and is opt-in until the
custom-connector h2-over-mTLS path is verified against the full
provider matrix (a real protocol-6 provider closes the mTLS channel
post-handshake today — surfaced precisely via H2Channel::close_reason).
Trait Implementations§
Source§impl Clone for PluginSpec
impl Clone for PluginSpec
Source§fn clone(&self) -> PluginSpec
fn clone(&self) -> PluginSpec
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PluginSpec
impl Debug for PluginSpec
Auto Trait Implementations§
impl Freeze for PluginSpec
impl RefUnwindSafe for PluginSpec
impl Send for PluginSpec
impl Sync for PluginSpec
impl Unpin for PluginSpec
impl UnsafeUnpin for PluginSpec
impl UnwindSafe for PluginSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request