{% extends "base.html" %}{% from "_inventory_forms.html" import field, interface_form, remove, device_kind %} {% block title %}{{ asset.name if asset else 'Add infrastructure' }} · Keywright{% endblock %}{% block body %} {% include "_infrastructure_nav.html" %}
{{ 'Manage hosting, interfaces, addresses, and linked resources.' if asset else 'Create the host or workload first, then add its interfaces and IP allocations.' }}
{% if asset %}{{ source.resource.name }} · {{ source.observation.data.name }} · observed {{ source.observation.last_seen.strftime('%Y-%m-%d %H:%M') }} UTC · reviewed {{ source.link.reviewed_at.strftime('%Y-%m-%d %H:%M') }} UTC{% if source.link.reviewed_data != source.observation.data %}Needs review{% endif %}
{% endfor %}No interfaces recorded. Add one to assign this device an IP address.
{% endfor %}| Address | Network | Interface | Allocation |
|---|---|---|---|
| {{ allocation.address }} | {{ subnet_map[allocation.subnet_id].name }} | {{ interface_map[allocation.interface_id].name }} | {{ states[allocation.state] }} |
No addresses recorded. Open a subnet to reserve or assign an IP to an interface.
{% endif %}No resources linked. Inventory records do not grant agent access.
{% endfor %} {% if unlinked_resources %}{% endif %}Remove or reassign interfaces, child workloads, and resource links first. This does not delete the actual device.