pub struct PluginRegistryConfig {
pub base_url: Option<String>,
pub public_keys: Vec<String>,
pub cache_dir: Option<String>,
}Expand description
SCALE-12 (#192)/DW-165: plugin registry configuration. When
present, signatures of source:-referenced artifacts are verified
against the registry’s pinned public keys and resolved artifacts
are cached in the registry’s cache directory. This enables
fleet-consistent plugin pinning: all gateways in a fleet reference
the same registry and get the same signed artifacts.
Fields§
§base_url: Option<String>Registry base URL (e.g., https://registry.example.com/plugins).
Informational for fleet tooling (dwara-cli plugin search/install default); each plugin’s source.url is a full
URL.
public_keys: Vec<String>Pinned Ed25519 public keys (hex-encoded, 32 bytes each). When
set, plugin signatures are verified against these keys in
addition to any per-plugin public_key, and a plugin with no
signature is rejected (unsigned artifacts cannot ride a
pinned-key registry).
cache_dir: Option<String>Local cache directory for resolved artifacts, content-addressed
as <cache_dir>/<digest>.wasm. Default: ./plugin-cache
(relative to the gateway working directory, the same posture
as the ACME state directory).
Trait Implementations§
Source§impl Clone for PluginRegistryConfig
impl Clone for PluginRegistryConfig
Source§fn clone(&self) -> PluginRegistryConfig
fn clone(&self) -> PluginRegistryConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PluginRegistryConfig
impl Debug for PluginRegistryConfig
Source§impl<'de> Deserialize<'de> for PluginRegistryConfig
impl<'de> Deserialize<'de> for PluginRegistryConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for PluginRegistryConfig
impl JsonSchema for PluginRegistryConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for PluginRegistryConfig
impl PartialEq for PluginRegistryConfig
Source§impl Serialize for PluginRegistryConfig
impl Serialize for PluginRegistryConfig
impl StructuralPartialEq for PluginRegistryConfig
Auto Trait Implementations§
impl Freeze for PluginRegistryConfig
impl RefUnwindSafe for PluginRegistryConfig
impl Send for PluginRegistryConfig
impl Sync for PluginRegistryConfig
impl Unpin for PluginRegistryConfig
impl UnwindSafe for PluginRegistryConfig
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more