pub struct DiscoveryTarget {
pub plugin_type: PluginTypeId,
pub plugin_config: Value,
pub plugin_config_name: String,
pub roles: Vec<PluginRole>,
pub package_identifier: Option<String>,
pub config_override: Option<Value>,
pub execution_site: Option<String>,
}Expand description
A structured target that tells the autodiscovery controller exactly which plugin config (and role assignments) to create for a discovered software item.
Plugins emit DiscoveryTarget values inside super::DiscoveredSoftware::targets
so that the web-API controller can process them generically — without any
plugin-specific synthesis logic.
§Examples
PHS plugin discovering a GitHub-managed app (fetch releases only; the
owner/repo is expressed as the package_identifier override):
let target = DiscoveryTarget {
plugin_type: plugin_ids::RELEASES_GITHUB.clone(),
plugin_config: serde_json::json!({
"tag_strip_prefix": "v",
"include_prereleases": false,
}),
plugin_config_name: "GitHub Releases".to_string(),
roles: vec![PluginRole::FetchReleases],
package_identifier: Some("BookLore/BookLore".to_string()),
config_override: None,
execution_site: None,
};Fields§
§plugin_type: PluginTypeIdTarget plugin type (may differ from the discovering plugin).
For example, the PHS plugin discovers software but targets
releases_github or package_manager_apt for tracking.
plugin_config: ValueConfig JSON for find-or-create of the target plugin config.
The controller will search for an existing active plugin config whose JSON matches this value, or create a new one.
plugin_config_name: StringDisplay name for auto-created plugin config (e.g. “BookLore/BookLore”).
roles: Vec<PluginRole>Which roles this target covers.
Typically all three: DetectVersion, FetchReleases, ExecuteUpdate.
package_identifier: Option<String>Package identifier override (None = same as parent DiscoveredSoftware).
Used when the target plugin needs a different identifier than the discovering plugin’s slug (e.g. PHS slug → APT package name).
config_override: Option<Value>Per-assignment config override.
execution_site: Option<String>Execution site hint ("auto" | "agent" | "controller"; None = "auto").
Trait Implementations§
Source§impl Clone for DiscoveryTarget
impl Clone for DiscoveryTarget
Source§fn clone(&self) -> DiscoveryTarget
fn clone(&self) -> DiscoveryTarget
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more