{% extends "base.html" %} {% block title %}Glean — relationships for {{ manifest.target }}{% endblock %} {% block content %}

Relationships

{{ manifest.target }} · {{ manifest.started_at[:19] | replace("T", " ") }} UTC · back to the brief

{{ view.entity_count }} findings {{ view.edge_count }} relations {{ view.clusters | length }} connected {% if view.unconnected_count %} {{ view.unconnected_count }} with no relations {% endif %} {% if view.dangling_count %} {{ view.dangling_count }} dangling {% endif %}
{% if diagram.nodes %} {# Hand-rolled SVG, laid out server-side by graph.build_diagram -- no charting library, no build step, nothing fetched (ADR-0011 D1). Styled with classes rather than inline attributes so it inherits the app's palette and follows light/dark like everything else. #}
Infrastructure flows left to right. Certificates and technologies are folded into the node they belong to — {{ diagram.badge_total }} of them here — because they describe a host rather than being another step in the chain.
{% for edge in diagram.edges %} {{ edge.relation_label }} {% endfor %} {% for layer in diagram.layers %} {{ layer.title }} {% if layer.hidden %} +{{ layer.hidden }} more {% endif %} {% endfor %} {% for node in diagram.nodes %} {{ node.title }}{% if node.score is not none %} — priority {{ node.score }}{% endif %} {{ node.label }} {{ node.entity_type }}{% if node.badge %} · {{ node.badge }}{% endif %} {% if node.score %} {{ node.score|round|int }} {% endif %} {% endfor %}
{% if diagram.hidden_total %}

{{ diagram.hidden_total }} lower-priority node(s) are not drawn, so the shape stays readable. Every one of them is in the list below and in the brief.

{% endif %}
{% endif %} {% if view.relation_counts %}
Relation:
{% for relation, count in view.relation_counts %} {% endfor %}
{% endif %} {% if not view.clusters %}

This scan produced no relationships between its findings. That is a real result — a target whose findings genuinely don't link to each other — not an error. It is also what a single-tool passive scan usually looks like, since most relations come from resolution and probing.

{% else %} {% endif %} {% endblock %}