Skip to main content

Unified Architecture Model

The Unified Architecture Model (UAM) is the v0.1.0 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.