feat: reflect netOrk v0.5.0–v0.9.0 release notes across the site

Dashboards (configurable/shareable, 13 widgets, WYSIWYG grid editor) and
the EOL Tracking plugin ship in v0.5.x, so both move from roadmap to
shipped: Features, Plugins, NIS2 mapping, and a homepage screenshot row.

v0.6.0–v0.9.0 add three more major capabilities, verified against code
rather than the (partly stale) TODO.md: VM Provisioning (Cloud-Init VMs
from a hypervisor's VMs tab), Ansible-based configuration automation (11
built-in roles, VM-provisioning integration), and Satellite deployments
(a remote polling agent for sites Central can't reach directly, with its
current limitations noted honestly). Wake-on-LAN and the audit log
CSV/PDF export (previously a roadmap item) round out the update.

Roadmap and the NIS2 coverage page are reconciled to match: shipped items
removed from "planned"/"coming", Art. 21 (2d) and (2h) text updated.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Christian Manivong
2026-07-15 10:22:16 +02:00
co-authored by Claude Sonnet 5
parent d8892c53ce
commit d8fd9fe675
7 changed files with 282 additions and 61 deletions
+36
View File
@@ -199,6 +199,33 @@ function MockConfigDiff() {
)
}
function MockDashboard() {
const widgets = [
{ label: 'Stats', span: 'col-span-2' },
{ label: 'Device Warnings', span: 'col-span-1' },
{ label: 'Network Topology', span: 'col-span-2' },
{ label: 'EOL Status', span: 'col-span-1' },
]
return (
<div className="bg-slate-950 p-4">
<div className="mb-3 flex items-center justify-between">
<span className="text-xs font-semibold text-slate-100">My Dashboard</span>
<div className="flex items-center gap-2">
<span className="text-xs px-2 py-0.5 rounded-full bg-sky-500/15 text-sky-400 border border-sky-500/20">shared</span>
<span className="text-xs px-2.5 py-1 rounded-md bg-sky-600 text-white">+ Add Widget</span>
</div>
</div>
<div className="grid grid-cols-3 gap-2">
{widgets.map((w) => (
<div key={w.label} className={`${w.span} rounded-lg border border-dashed border-slate-700 bg-slate-900 p-3 h-16 flex items-center justify-center`}>
<span className="text-xs text-slate-500">{w.label}</span>
</div>
))}
</div>
</div>
)
}
function MockCompliance() {
const checks = [
{ label: 'Asset inventory', detail: '18 / 18 devices tracked', ok: true },
@@ -418,6 +445,15 @@ export default function Home() {
<p className="text-base text-slate-400 leading-relaxed">{linkify(h.screenshot4.body)}</p>
</div>
</div>
<div className="grid md:grid-cols-2 gap-12 items-center">
<div>
<h2 className="text-2xl md:text-3xl font-bold text-slate-100 mb-4">{h.screenshot5.heading}</h2>
<p className="text-base text-slate-400 leading-relaxed">{linkify(h.screenshot5.body)}</p>
</div>
<BrowserFrame label="netork.local / dashboards / my-dashboard">
<MockDashboard />
</BrowserFrame>
</div>
</div>
</section>