@php $fieldWrapperView = $getFieldWrapperView(); $run = $run ?? null; $run = is_array($run) ? $run : null; $runUrl = $runUrl ?? null; $runUrl = is_string($runUrl) && $runUrl !== '' ? $runUrl : null; $report = $report ?? null; $report = is_array($report) ? $report : null; $fingerprint = $fingerprint ?? null; $fingerprint = is_string($fingerprint) && trim($fingerprint) !== '' ? trim($fingerprint) : null; $changeIndicator = $changeIndicator ?? null; $changeIndicator = is_array($changeIndicator) ? $changeIndicator : null; $previousRunUrl = $previousRunUrl ?? null; $previousRunUrl = is_string($previousRunUrl) && $previousRunUrl !== '' ? $previousRunUrl : null; $canAcknowledge = (bool) ($canAcknowledge ?? false); $acknowledgements = $acknowledgements ?? []; $acknowledgements = is_array($acknowledgements) ? $acknowledgements : []; $status = $run['status'] ?? null; $status = is_string($status) ? $status : null; $outcome = $run['outcome'] ?? null; $outcome = is_string($outcome) ? $outcome : null; $targetScope = $run['target_scope'] ?? []; $targetScope = is_array($targetScope) ? $targetScope : []; $failures = $run['failures'] ?? []; $failures = is_array($failures) ? $failures : []; $completedAt = $run['completed_at'] ?? null; $completedAt = is_string($completedAt) && $completedAt !== '' ? $completedAt : null; $completedAtLabel = null; if ($completedAt !== null) { try { $completedAtLabel = \Carbon\CarbonImmutable::parse($completedAt)->format('Y-m-d H:i'); } catch (\Throwable) { $completedAtLabel = $completedAt; } } $summary = $report['summary'] ?? null; $summary = is_array($summary) ? $summary : null; $counts = is_array($summary['counts'] ?? null) ? $summary['counts'] : []; $checks = $report['checks'] ?? null; $checks = is_array($checks) ? $checks : []; $ackByKey = []; foreach ($acknowledgements as $checkKey => $ack) { if (! is_string($checkKey) || $checkKey === '' || ! is_array($ack)) { continue; } $ackByKey[$checkKey] = $ack; } $blockers = []; $failures = []; $warnings = []; $acknowledgedIssues = []; $passed = []; foreach ($checks as $check) { $check = is_array($check) ? $check : []; $key = $check['key'] ?? null; $key = is_string($key) ? trim($key) : ''; if ($key === '') { continue; } $statusValue = $check['status'] ?? null; $statusValue = is_string($statusValue) ? strtolower(trim($statusValue)) : ''; $blocking = $check['blocking'] ?? false; $blocking = is_bool($blocking) ? $blocking : false; if (array_key_exists($key, $ackByKey)) { $acknowledgedIssues[] = $check; continue; } if ($statusValue === 'pass') { $passed[] = $check; continue; } if ($statusValue === 'fail' && $blocking) { $blockers[] = $check; continue; } if ($statusValue === 'fail') { $failures[] = $check; continue; } if ($statusValue === 'warn') { $warnings[] = $check; } } $sortChecks = static function (array $a, array $b): int { return strcmp((string) ($a['key'] ?? ''), (string) ($b['key'] ?? '')); }; usort($blockers, $sortChecks); usort($failures, $sortChecks); usort($warnings, $sortChecks); usort($acknowledgedIssues, $sortChecks); usort($passed, $sortChecks); $ackAction = null; if (isset($this) && method_exists($this, 'acknowledgeVerificationCheckAction')) { $ackAction = $this->acknowledgeVerificationCheckAction(); } @endphp
@if ($run === null)
No verification run has been started yet.
@elseif ($status !== 'completed')
Report unavailable while the run is in progress. Use “Refresh” to re-check stored status.
@else
@php $overallSpec = $summary === null ? null : \App\Support\Badges\BadgeRenderer::spec( \App\Support\Badges\BadgeDomain::VerificationReportOverall, $summary['overall'] ?? null, ); @endphp
@if ($overallSpec) {{ $overallSpec->label }} @endif {{ (int) ($counts['total'] ?? 0) }} total {{ (int) ($counts['pass'] ?? 0) }} pass {{ (int) ($counts['fail'] ?? 0) }} fail {{ (int) ($counts['warn'] ?? 0) }} warn {{ (int) ($counts['skip'] ?? 0) }} skip {{ (int) ($counts['running'] ?? 0) }} running @if ($changeIndicator !== null) @php $state = $changeIndicator['state'] ?? null; $state = is_string($state) ? $state : null; @endphp @if ($state === 'no_changes') No changes since previous verification @elseif ($state === 'changed') Changed since previous verification @endif @endif
Read-only: this view uses stored data and makes no external calls.
@if ($report === null || $summary === null)
Verification report unavailable
This run doesn’t have a report yet. If it already completed, start verification again.
@else
Issues Passed Technical details
@if ($blockers === [] && $failures === [] && $warnings === [] && $acknowledgedIssues === [])
No issues found in this report.
@else
@php $issueGroups = [ ['label' => 'Blockers', 'checks' => $blockers], ['label' => 'Failures', 'checks' => $failures], ['label' => 'Warnings', 'checks' => $warnings], ]; @endphp @foreach ($issueGroups as $group) @php $label = $group['label']; $groupChecks = $group['checks']; @endphp @if ($groupChecks !== [])
{{ $label }}
@foreach ($groupChecks as $check) @php $check = is_array($check) ? $check : []; $checkKey = is_string($check['key'] ?? null) ? trim((string) $check['key']) : ''; $title = $check['title'] ?? 'Check'; $title = is_string($title) && trim($title) !== '' ? trim($title) : 'Check'; $message = $check['message'] ?? null; $message = is_string($message) && trim($message) !== '' ? trim($message) : null; $statusSpec = \App\Support\Badges\BadgeRenderer::spec( \App\Support\Badges\BadgeDomain::VerificationCheckStatus, $check['status'] ?? null, ); $severitySpec = \App\Support\Badges\BadgeRenderer::spec( \App\Support\Badges\BadgeDomain::VerificationCheckSeverity, $check['severity'] ?? null, ); $nextSteps = $check['next_steps'] ?? []; $nextSteps = is_array($nextSteps) ? array_slice($nextSteps, 0, 2) : []; $blocking = $check['blocking'] ?? false; $blocking = is_bool($blocking) ? $blocking : false; @endphp
{{ $title }}
@if ($message)
{{ $message }}
@endif
@if ($blocking) Blocker @endif {{ $severitySpec->label }} {{ $statusSpec->label }} @if ($ackAction !== null && $canAcknowledge && $checkKey !== '') {{ ($ackAction)(['check_key' => $checkKey]) }} @endif
@if ($nextSteps !== [])
Next steps
    @foreach ($nextSteps as $step) @php $step = is_array($step) ? $step : []; $label = $step['label'] ?? null; $url = $step['url'] ?? null; $isExternal = is_string($url) && (str_starts_with($url, 'http://') || str_starts_with($url, 'https://')); @endphp @if (is_string($label) && $label !== '' && is_string($url) && $url !== '')
  • {{ $label }}
  • @endif @endforeach
@endif
@endforeach
@endif @endforeach @if ($acknowledgedIssues !== [])
Acknowledged issues
@foreach ($acknowledgedIssues as $check) @php $check = is_array($check) ? $check : []; $checkKey = is_string($check['key'] ?? null) ? trim((string) $check['key']) : ''; $title = $check['title'] ?? 'Check'; $title = is_string($title) && trim($title) !== '' ? trim($title) : 'Check'; $message = $check['message'] ?? null; $message = is_string($message) && trim($message) !== '' ? trim($message) : null; $statusSpec = \App\Support\Badges\BadgeRenderer::spec( \App\Support\Badges\BadgeDomain::VerificationCheckStatus, $check['status'] ?? null, ); $severitySpec = \App\Support\Badges\BadgeRenderer::spec( \App\Support\Badges\BadgeDomain::VerificationCheckSeverity, $check['severity'] ?? null, ); $ack = $checkKey !== '' ? ($ackByKey[$checkKey] ?? null) : null; $ack = is_array($ack) ? $ack : null; $ackReason = $ack['ack_reason'] ?? null; $ackReason = is_string($ackReason) && trim($ackReason) !== '' ? trim($ackReason) : null; $ackAt = $ack['acknowledged_at'] ?? null; $ackAt = is_string($ackAt) && trim($ackAt) !== '' ? trim($ackAt) : null; $ackBy = $ack['acknowledged_by'] ?? null; $ackBy = is_array($ackBy) ? $ackBy : null; $ackByName = $ackBy['name'] ?? null; $ackByName = is_string($ackByName) && trim($ackByName) !== '' ? trim($ackByName) : null; $expiresAt = $ack['expires_at'] ?? null; $expiresAt = is_string($expiresAt) && trim($expiresAt) !== '' ? trim($expiresAt) : null; @endphp
{{ $title }}
@if ($message)
{{ $message }}
@endif
{{ $severitySpec->label }} {{ $statusSpec->label }}
@if ($ackReason || $ackAt || $ackByName || $expiresAt)
@if ($ackReason)
Reason: {{ $ackReason }}
@endif @if ($ackByName || $ackAt)
Acknowledged: @if ($ackByName) {{ $ackByName }} @endif @if ($ackAt) ({{ $ackAt }}) @endif
@endif @if ($expiresAt)
Expires: {{ $expiresAt }}
@endif
@endif
@endforeach
@endif
@endif
@if ($passed === [])
No passing checks recorded.
@else
@foreach ($passed as $check) @php $check = is_array($check) ? $check : []; $title = $check['title'] ?? 'Check'; $title = is_string($title) && trim($title) !== '' ? trim($title) : 'Check'; $statusSpec = \App\Support\Badges\BadgeRenderer::spec( \App\Support\Badges\BadgeDomain::VerificationCheckStatus, $check['status'] ?? null, ); @endphp
{{ $title }}
{{ $statusSpec->label }}
@endforeach
@endif
Identifiers
Run ID: {{ (int) ($run['id'] ?? 0) }}
Flow: {{ (string) ($run['type'] ?? '') }}
@if ($fingerprint)
Fingerprint: {{ $fingerprint }}
@endif
@if ($previousRunUrl !== null) @endif @if ($runUrl !== null) @endif @if ($targetScope !== [])
Target scope
@php $entraTenantId = $targetScope['entra_tenant_id'] ?? null; $entraTenantName = $targetScope['entra_tenant_name'] ?? null; $entraTenantId = is_string($entraTenantId) && $entraTenantId !== '' ? $entraTenantId : null; $entraTenantName = is_string($entraTenantName) && $entraTenantName !== '' ? $entraTenantName : null; @endphp @if ($entraTenantName !== null)
Entra tenant: {{ $entraTenantName }}
@endif @if ($entraTenantId !== null)
Entra tenant ID: {{ $entraTenantId }}
@endif
@endif
@endif
@endif