Files
BetterDesk/web-nodejs/views/attestation.ejs
T
UNITRONIX dd0889e3d6 Add SessionManager; update docs, i18n & CI
Introduce a SessionManager for relay-based remote sessions in the Tauri MGMT client: new SessionCommand API, start/stop/session input routing, clipboard/recording/quality controls, and notification read/dismiss state. Wire AppState with new mutexes and show main window on startup. CI: add SBOM generation (anchore) and Trivy vulnerability scan steps. Misc: change console Docker DB path, large README/CHANGELOG updates (chat E2E, unattended access/WOL, i18n expansion, CDAP/SDK docs), and many web-nodejs assets/locales/routes/views/services and server-side changes.
2026-04-05 13:42:07 +02:00

69 lines
3.4 KiB
HTML

<%- include('layouts/main', {
title: _('attestation.title') || 'Device Attestation',
pageStyles: ['policies'],
pageScripts: ['attestation'],
currentPage: 'attestation',
breadcrumb: [{ label: _('attestation.title') || 'Device Attestation' }],
body: `
<div class="policy-page">
<div class="policy-header">
<h1>${_('attestation.title') || 'Device Attestation'}</h1>
<p class="policy-subtitle">${_('attestation.subtitle') || 'Monitor device identity verification and hardware fingerprints'}</p>
</div>
<div class="attestation-stats" id="attestation-stats">
<div class="att-stat-card">
<span class="material-icons">verified</span>
<div>
<div class="att-stat-value" id="att-verified">0</div>
<div class="att-stat-label">${_('attestation.verified') || 'Verified'}</div>
</div>
</div>
<div class="att-stat-card warning">
<span class="material-icons">warning</span>
<div>
<div class="att-stat-value" id="att-pending">0</div>
<div class="att-stat-label">${_('attestation.pending') || 'Pending'}</div>
</div>
</div>
<div class="att-stat-card danger">
<span class="material-icons">gpp_bad</span>
<div>
<div class="att-stat-value" id="att-failed">0</div>
<div class="att-stat-label">${_('attestation.failed') || 'Failed'}</div>
</div>
</div>
</div>
<div class="policy-card">
<div class="policy-card-header">
<div class="policy-card-icon"><span class="material-icons">fingerprint</span></div>
<div class="policy-card-info">
<h3>${_('attestation.device_list') || 'Device Attestation Records'}</h3>
<p>${_('attestation.device_list_desc') || 'Hardware fingerprints and identity verification status'}</p>
</div>
</div>
<div class="policy-card-body">
<div class="table-responsive">
<table class="data-table" id="attestation-table">
<thead>
<tr>
<th>${_('attestation.col_device') || 'Device ID'}</th>
<th>${_('attestation.col_hostname') || 'Hostname'}</th>
<th>${_('attestation.col_fingerprint') || 'Fingerprint'}</th>
<th>${_('attestation.col_status') || 'Status'}</th>
<th>${_('attestation.col_last_check') || 'Last Check'}</th>
<th>${_('attestation.col_actions') || 'Actions'}</th>
</tr>
</thead>
<tbody id="attestation-body">
<tr><td colspan="6" class="text-muted text-center">${_('common.loading') || 'Loading...'}</td></tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
`
}) %>