Skip to main content

Unified Architecture Model

The Unified Architecture Model (UAM) is the in-memory representation used by graph rendering, visualization, audits, and policy validation. Its graph is a NetworkX MultiDiGraph, allowing multiple relationships between the same two entities.

Core records​

PackageMetadata​

Contains package name, version, type, maintainers, license, description, source path, overlay state, health score, and dependency groups.

NodeDefinition​

Contains package and language information plus publishers, subscriptions, services, clients, action servers, and action clients. has_dynamic_names marks nodes whose endpoint names could not be fully resolved statically.

CommunicationEndpoint​

Each endpoint records:

  • name and detected interface type;
  • source file and line when available;
  • source evidence;
  • type source and confidence.

InterfaceDefinition​

Represents a workspace .msg, .srv, or .action definition and its fields.

Graph entity kinds​

KindID prefixExamples
Packagepkg:pkg:navigation2
Nodenode:node:navigation2/BtNavigator
Topictopic:topic:/cmd_vel
Servicesvc:svc:/reset
Actionaction:action:/navigate
Interfaceiface:iface:geometry_msgs/Twist

Relationships​

RelationshipMeaning
depends_onPackage dependency
defined_inNode belongs to a package
publishesNode publishes a topic
subscribesNode subscribes to a topic
providesNode provides a service or action server
callsNode is a service or action client
uses_interfaceEntity references a workspace interface

Endpoint edges can preserve file, line, evidence, type-source, and confidence metadata.

JSON export​

ros2inspector graph full --format json serializes packages, nodes, interfaces, derived communication entities, launch remaps, diagnostics, summary data, and the graph's keyed edges.