{% extends "pypi_profile/base.html" %} {% import "pypi_ds/components/layout.html" as layout %} {% import "pypi_ds/components/feedback.html" as feedback %} {% import "pypi_ds/components/navigation.html" as navigation %} {% import "pypi_profile/components.html" as pc %} {% block profile_title %}Verification{% endblock %} {% block content %} {{ pc.profile_header(profile) }} {% call layout.horizontal_section("horizontal-section--grey horizontal-section--thin") %}

Verification and proof-of-control details

{% endcall %} {% call layout.horizontal_section() %}
{% call layout.card("Publication proof", "project-panel") %} {{ feedback.notification( "This profile was published to PyPI by the account holder. Publication is the root proof of control.", tone="success", title="PyPI-published" ) }} {% if profile.identity.pypi_username %}

PyPI account: {{ profile.identity.pypi_username }}

{% endif %} {% endcall %} {% call layout.card("Public key", "project-panel") %} {% if profile.verification.public_key %} {{ feedback.status_badge("Public key present", tone="good") }}

Signature backend: {{ profile.verification.preferred_signature_backend }}

View public key
{{ profile.verification.public_key }}
{% else %} {{ feedback.badge("No public key provided") }} {% endif %} {% endcall %} {% call layout.card("External profile claims", "project-panel") %} {% if static_mode %} {{ feedback.notification( "This is a static build. Verification status is derived from stored_proof values baked into the TOML. Live checks run in the browser and update the table below.", tone="info", title="Static build" ) }} {% else %} {{ feedback.notification( "Live server: verification is performed server-side by fetching each URL. Diagnostics are shown below.", tone="info", title="Live verification" ) }} {% endif %} {% if claim_results %} {% if static_mode %}{% endif %} {% if not static_mode %}{% endif %} {% for item in claim_results %} {% if static_mode %}{% endif %} {% if not static_mode %} {% endif %} {% endfor %}
Profile URL {% if static_mode %}Status (stored){% else %}Status{% endif %}Live checkDiagnostics
{{ item.label }} {{ item.url }} {{ pc.claim_badge(item.status) }} {% if item.detail %}
{% if item.status == 'verified' %}✓ steps{% else %}why?{% endif %}
    {% for step in item.detail %}
  1. {{ step }}
  2. {% endfor %}
{% endif %}
{% elif profile.profiles %} {% for link in profile.profiles %} {% endfor %}
Profile URL Status
{{ link.label }} {{ link.url }} {{ pc.claim_badge(link.verification) }}
{% else %}

No external profiles listed.

{% endif %} {% endcall %} {% if proofs %} {% call layout.card("Add proof-of-control", "project-panel") %} {% for item in proofs %}

{{ item.label }}{{ item.url }}

{% if item.proof %}
{{ item.proof }}
{% elif item.error == "no-key" %} {{ feedback.notification( "No secret key found. Run pypi-profile keygen to generate one, then reload this page.", tone="warning", title="Key required" ) }} {% else %} {{ feedback.notification(item.error, tone="bad", title="Could not generate proof") }} {% endif %}
{% endfor %} {% endcall %} {% endif %}
{% endcall %} {% endblock %}