Firewall
Restorm intercetta tutte le proprie chiamate in uscita — quelle dell’utente come quelle delle sue dipendenze — e blocca per impostazione predefinita ciò che non è noto.
Il vantaggio è diretto: una libreria di terze parti che telefonasse a casa non lo fa senza che l’utente lo veda.

Come viene emesso il verdetto
Section titled “Come viene emesso il verdetto”In quest’ordine:
- Le porte di infrastruttura interne di Restorm sul loopback locale sono autorizzate.
- La whitelist autorizza.
- Le origini derivate dal progetto autorizzano — vale a dire gli URL
delle richieste, dopo la sostituzione delle
{{variables}}su tutti gli ambienti, ricalcolate a ogni modifica dell’albero. - La blacklist rifiuta.
- Altrimenti viene mostrata una richiesta di autorizzazione.
Il punto 3 è ciò che rende il firewall vivibile: importare una specifica di trecento operazioni non genera trecento richieste, dato che tutti quegli URL provengono dal progetto.
La richiesta di autorizzazione
Section titled “La richiesta di autorizzazione”Mostra:
- l’origine interessata, nella forma
https://exemple.com:443; - il livello che ha intercettato la chiamata;
- un indizio sul chiamante — l’URL che ha dato origine alla chiamata, oppure una traccia dello stack che nomina il pacchetto npm o il file responsabile;
- due pulsanti Allow e Deny.
Ogni decisione viene persistita nell’elenco corrispondente.
In assenza di una finestra disponibile, oppure dopo 60 secondi senza risposta, la chiamata viene rifiutata automaticamente.
Il pannello
Section titled “Il pannello”Visualizza ▸ Firewall apre una scheda unica: due elenchi,
Whitelist (N) e Blacklist (N), con i loro contatori in diretta, una
riga per regola con il suo cestino, più un campo di aggiunta nel formato
schema://host:porta.
Un pulsante Test outbound to google.com permette di verificare che il meccanismo funzioni.
Le regole
Section titled “Le regole”Una regola è una tripletta schema + host + porta. Tutti e tre sono
significativi: http non è https, e :443 non è :8443.
Aggiungendo un’origine a un elenco, questa viene rimossa automaticamente dall’altro.
Sono accettati due caratteri jolly:
| Forma | Effetto |
|---|---|
https://api.exemple.com:* | Tutte le porte di quell’host |
https://*.exemple.com | I sottodomini di un solo livello |
https://*.exemple.com non copre né exemple.com nudo né a.b.exemple.com.
Casi particolari
Section titled “Casi particolari”- Le chiamate dell’aggiornamento automatico sono esentate: non generano richieste.
- Ai thread di esecuzione e ai processi figli viene rifiutato ogni traffico HTTP, senza possibilità di richiesta né di sovrascrittura tramite la whitelist. È una postura difensiva voluta.
- Non esiste un interruttore generale per disattivare il firewall. È deliberato.
La console
Section titled “La console”Ogni chiamata intercettata compare nella console, con il suo verdetto, sotto forma di comando shell copiabile.
Tramite MCP
Section titled “Tramite MCP”Sei strumenti, tutti in edizione Community: open_firewall, firewall_list_rules,
firewall_allow, firewall_deny, firewall_list_pending_prompts e
firewall_resolve_prompt. Ogni modifica fatta da un agente viene
registrata a fini di audit. Si veda Strumenti MCP.