{% extends "base.html" %}{% block title %}Infrastructure inventory · Keywright{% endblock %}{% block body %} {% include "_infrastructure_nav.html" %}

Infrastructure inventory

Add device or workload

Hosts, devices, and services behind your resources. Group by network, parent host, or connection type.

{% if q or group!='none' or sort!='name' %}Reset{% endif %}
{% if rows %}
{% for row in rows %}{% if group!='none' and loop.changed(row.group) %}{% endif %} {% endfor %}
Device / workloadConnectionAddressesHosted onResources
{{ row.group }}
{{ row.asset.name }}{{ kinds[row.asset.kind] }}{% if row.asset.site %} · {{ row.asset.site }}{% endif %}{% if row.asset.tags %}{{ row.asset.tags }}{% endif %} {{ row.media|join(', ') or 'Unknown' }} {% for allocation in row.allocations %}
{{ allocation.address }}{{ states[allocation.state] }} · {{ subnet_map[allocation.subnet_id].name }}
{% else %}Not recorded{% endfor %}
{% if row.parent %}{{ row.parent.name }}{% else %}—{% endif %} {% for resource in row.resources %}{% else %}None linked{% endfor %}

{{ rows|length }} of {{ assets|length }} infrastructure records

{% else %}

{{ 'No matching records' if assets else 'Build your infrastructure inventory' }}

{{ 'Try a different search.' if assets else 'Add physical hosts first, then their VMs and containers. Link existing resources to the host or workload they belong to.' }}

{{ 'Clear search' if assets else 'Add your first host' }}
{% endif %}
Manually maintained inventory. Reachability is not monitored yet; missing observations do not mean a device is offline or its IP is available.
{% endblock %}