pub struct NodeCatalogEntry {Show 21 fields
pub slug: String,
pub version: String,
pub label: String,
pub description: String,
pub tags: Vec<String>,
pub icon: String,
pub sort_key: i32,
pub node_type: String,
pub canvas_type: String,
pub renderer: String,
pub inspector: String,
pub adapter: Option<String>,
pub action_id: Option<String>,
pub defaults: Value,
pub schema: Value,
pub command_tree: Option<Value>,
pub settings: Vec<SettingsRequirement>,
pub runtime_bindings: RuntimeBindings,
pub lowering: LoweringHint,
pub cli_tool: Option<CliTool>,
pub service_integration: Option<ServiceIntegration>,
}Expand description
One catalog entry as authored in node_catalog.json. The shape is also
what we return from the Tauri layer (rename_all = camelCase) so the
frontend can consume the same JSON the catalog ships with.
Fields§
§slug: String§version: String§label: String§description: String§icon: String§sort_key: i32Stable sort key for the palette. Smaller = earlier. Catalog entries without a key sort last.
node_type: StringNode type - one of action | ai | agentic | utility | service.
canvas_type: StringReactFlow node-type key the canvas mounts. Catalog entries that
reuse an existing bespoke canvas type name it here (e.g. action,
zoweCommand); generic ones use "catalog".
renderer: StringReact component name for the canvas body. Reuses an existing
component name (e.g. "ZoweCommandNode") or "Generic" for the
catalog-driven renderer.
inspector: StringInspector sub-form name (same convention as renderer).
adapter: Option<String>Required when nodeType == "action". Identifies the adapter that
dispatches this node at run time.
action_id: Option<String>§defaults: ValueDefault values stamped onto node.data when a fresh node is
dropped on the canvas. Arbitrary JSON; the renderer reads what it
needs.
schema: ValueJSON Schema (Draft 2020-12 subset: object/properties/required/enum/
pattern/type/default/title) describing the node’s data shape. Drives
the generic inspector form and the pre-run validator. Carried as
serde_json::Value so the catalog ships any well-formed schema
without the Rust type system having to mirror every keyword.
command_tree: Option<Value>Embedded reference data - the parsed Zowe command tree on the
zowe.cli-tool entry; the GitHub command catalog on
github.cli-tool; absent on every other entry.
settings: Vec<SettingsRequirement>Global-settings dependencies the inspector surfaces as a banner and the pre-run gate refuses on when missing.
runtime_bindings: RuntimeBindingsCanvas-card runtime extras the generic renderer opts into.
lowering: LoweringHintDSL adapter/actionId stamped at lowering time, replacing per-kind hardcoded values. Both fields are optional so AI / utility entries (which don’t carry an adapter) just leave them null.
cli_tool: Option<CliTool>CLI tool this node shells out to. Present only on cli-tool action
entries (zowe.cli-tool / github.cli-tool); absent on every other
kind. Drives the Node Hub’s “is this CLI installed, and does its
version meet the minimum?” check.
service_integration: Option<ServiceIntegration>Declarative API integration for service nodes. Present only on service
entries; absent on every other node type. The generic service adapter
reads it to call the external API at run time. The concrete service - its
base URL, auth, and operations - is data authored in the catalog, never
code, so the adapter stays vendor-neutral.
Trait Implementations§
Source§impl Clone for NodeCatalogEntry
impl Clone for NodeCatalogEntry
Source§fn clone(&self) -> NodeCatalogEntry
fn clone(&self) -> NodeCatalogEntry
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for NodeCatalogEntry
impl Debug for NodeCatalogEntry
Source§impl<'de> Deserialize<'de> for NodeCatalogEntry
impl<'de> Deserialize<'de> for NodeCatalogEntry
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>,
Auto Trait Implementations§
impl Freeze for NodeCatalogEntry
impl RefUnwindSafe for NodeCatalogEntry
impl Send for NodeCatalogEntry
impl Sync for NodeCatalogEntry
impl Unpin for NodeCatalogEntry
impl UnsafeUnpin for NodeCatalogEntry
impl UnwindSafe for NodeCatalogEntry
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,
§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