Remove WIP blocks from UI, move roadmap to Gitea and add ROADMAP.md
CI / basic-check (push) Has been cancelled
CI / basic-check (push) Has been cancelled
This commit is contained in:
+33
@@ -0,0 +1,33 @@
|
|||||||
|
# NetMapper Roadmap
|
||||||
|
|
||||||
|
La roadmap e il backlog di sviluppo sono centralizzati su Gitea:
|
||||||
|
|
||||||
|
- Issues: https://git.lelekaos.com/admin/NetMapper2026/issues
|
||||||
|
- Board: https://git.lelekaos.com/admin/NetMapper2026/projects/1
|
||||||
|
- Milestone: https://git.lelekaos.com/admin/NetMapper2026/milestones
|
||||||
|
|
||||||
|
## Milestone principali
|
||||||
|
|
||||||
|
### MVP Inventory
|
||||||
|
|
||||||
|
- Seed scan subnet e discovery base.
|
||||||
|
- Tree fisico/logico e contesto nodo.
|
||||||
|
- Navigazione tra parent, children e relazioni.
|
||||||
|
|
||||||
|
### Security foundation
|
||||||
|
|
||||||
|
- Autenticazione e sessioni.
|
||||||
|
- Ruoli base e autorizzazione per risorse sensibili.
|
||||||
|
- Audit accessi e logout sicuro.
|
||||||
|
|
||||||
|
### Topology multilivello
|
||||||
|
|
||||||
|
- Vista fisica dispositivi.
|
||||||
|
- Vista logica host / VM / container / app.
|
||||||
|
- Layer networking e dipendenze.
|
||||||
|
|
||||||
|
### Remote access hardening
|
||||||
|
|
||||||
|
- MFA per admin e azioni critiche.
|
||||||
|
- Terminale remoto protetto (stile Termix).
|
||||||
|
- Audit comandi e approvazione esplicita.
|
||||||
+11
-11
@@ -10,7 +10,7 @@ const tabs: { key: TabKey; label: string; description: string }[] = [
|
|||||||
{ key: 'discovery', label: 'Discovery', description: 'Pipeline e job di raccolta dati.' },
|
{ key: 'discovery', label: 'Discovery', description: 'Pipeline e job di raccolta dati.' },
|
||||||
{ key: 'topology', label: 'Topology', description: 'Vista futura della mappa multilivello.' },
|
{ key: 'topology', label: 'Topology', description: 'Vista futura della mappa multilivello.' },
|
||||||
{ key: 'options', label: 'Options', description: 'Utenti, impostazioni, servizi di sistema e sicurezza.' },
|
{ key: 'options', label: 'Options', description: 'Utenti, impostazioni, servizi di sistema e sicurezza.' },
|
||||||
{ key: 'wip', label: 'WIP', description: 'Blocchi provvisori, note e parti in corso.' },
|
{ key: 'wip', label: 'WIP', description: 'Roadmap e link a Gitea per lo sviluppo.' },
|
||||||
];
|
];
|
||||||
|
|
||||||
function ShellCard({ title, children, tone = 'default' }: { title: string; children: React.ReactNode; tone?: 'default' | 'accent' | 'warning' }) {
|
function ShellCard({ title, children, tone = 'default' }: { title: string; children: React.ReactNode; tone?: 'default' | 'accent' | 'warning' }) {
|
||||||
@@ -163,18 +163,18 @@ function OptionsTab() {
|
|||||||
function WipTab() {
|
function WipTab() {
|
||||||
return (
|
return (
|
||||||
<div className="shell-grid two-columns">
|
<div className="shell-grid two-columns">
|
||||||
<ShellCard title="WIP visibili" tone="warning">
|
<ShellCard title="Roadmap" tone="accent">
|
||||||
<ul className="shell-list">
|
<ul className="shell-list">
|
||||||
<li>Placeholder per pannelli legacy reintegrati.</li>
|
<li>La roadmap è centralizzata su Gitea: issues, milestone e board.</li>
|
||||||
<li>Spazio riservato ai blocchi non ancora consolidati.</li>
|
<li>I WIP visibili sono rimossi dal frontend per evitare rumore.</li>
|
||||||
<li>Promemoria tecnico per le parti temporanee.</li>
|
<li>Le card di Overview riportano solo milestone attive, non backlog.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</ShellCard>
|
</ShellCard>
|
||||||
<ShellCard title="Note operative">
|
<ShellCard title="Gitea link">
|
||||||
<ul className="shell-list">
|
<ul className="shell-list">
|
||||||
<li>Le nuove funzioni sensibili passano da Options.</li>
|
<li>Issues aperte, board e roadmap del progetto NetMapper.</li>
|
||||||
<li>Inventory resta il book of truth, ma protetto da auth futura.</li>
|
<li>Link placeholder: <code>https://git.lelekaos.com/admin/NetMapper2026/issues</code></li>
|
||||||
<li>Persistenza dello stato UI da migliorare nei prossimi step.</li>
|
<li>Da integrare in futuro con widget o embed della board.</li>
|
||||||
</ul>
|
</ul>
|
||||||
</ShellCard>
|
</ShellCard>
|
||||||
</div>
|
</div>
|
||||||
@@ -204,7 +204,7 @@ function App() {
|
|||||||
onClick={() => setActiveTab(tab.key)}
|
onClick={() => setActiveTab(tab.key)}
|
||||||
>
|
>
|
||||||
<span>{tab.label}</span>
|
<span>{tab.label}</span>
|
||||||
<small>{tab.description}</small>
|
<small>{tab.label === 'WIP' ? 'Roadmap e link a Gitea per lo sviluppo.' : tab.description}</small>
|
||||||
</button>
|
</button>
|
||||||
))}
|
))}
|
||||||
</nav>
|
</nav>
|
||||||
@@ -220,7 +220,7 @@ function App() {
|
|||||||
<header className="app-header">
|
<header className="app-header">
|
||||||
<div>
|
<div>
|
||||||
<h2>{currentTab.label}</h2>
|
<h2>{currentTab.label}</h2>
|
||||||
<p>{currentTab.description}</p>
|
<p>{currentTab.label === 'WIP' ? 'Roadmap e link a Gitea per lo sviluppo.' : currentTab.description}</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="app-header-actions">
|
<div className="app-header-actions">
|
||||||
<span className="shell-pill">Book of truth</span>
|
<span className="shell-pill">Book of truth</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user