Egress sob
contrato.
Política de rede centralizada, proxy corporativo, certificados próprios e um bundle offline para máquinas sem internet. O MVCode foi endurecido para operar onde a rede é uma decisão, não um acaso.
01Política de rede Implementado
Todo egress do runtime passa por um serviço central de política — inclusive webfetch, websearch e a busca do catálogo de modelos. Três modos:
| Modo | Comportamento |
|---|---|
| allow-all | Padrão — sem restrição. |
| whitelist | Só os destinos listados; o resto falha de forma limpa e explícita. |
| deny-all | Nenhum egress — o modo do air gap. |
{
"network": {
"mode": "whitelist",
"whitelist": ["localhost", "*.maxvision.dev", "https://mcp.exa.ai"],
"proxy": "http://proxy.local:8080"
}
}Equivalentes por ambiente: MVCODE_NETWORK_POLICY_MODE, MVCODE_NETWORK_POLICY_WHITELIST (separada por vírgula) e MVCODE_NETWORK_POLICY_PROXY — ideais para config gerenciada e CI.
02Bundle offline Implementado
Para máquinas air-gapped, o bundle empacota dependências pré-resolvidas — catálogo de modelos, binários auxiliares, web UI — e um manifesto que o runtime consome:
{
"offline": { "bundle": "/opt/mvcode/offline-bundle" },
"fallback_model": "/opt/mvcode/offline-bundle/models/models.json"
}Com offline.bundle presente, os defaults endurecem sozinhos:
MVCODE_DISABLE_MODELS_FETCH=1— catálogo só do bundle.MVCODE_DISABLE_LSP_DOWNLOAD=1— nenhum download de LSP.MVCODE_NETWORK_POLICY_MODE=deny-all— a menos que você já tenha definido outro modo.
O modelo, nesse cenário, é local (Ollama/LM Studio) ou um gateway interno alcançável pela whitelist.
03Proxy corporativo
export HTTPS_PROXY=https://proxy.example.com:8080 export NO_PROXY=localhost,127.0.0.1
A TUI conversa com um servidor HTTP local. Sem o bypass de localhost, o proxy cria um loop de roteamento e nada funciona.
Autenticação básica vai na URL (http://user:pass@proxy:8080) — de variável de ambiente, nunca hardcoded. NTLM/Kerberos? Prefira um gateway de LLM que fale a sua autenticação.
04Certificados próprios
export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pemVale para o proxy e para acesso direto a APIs com CA interna.
05Receita air gap, ponta a ponta
- Monte o bundle numa máquina com internet
Os scripts de bundle baixam e empacotam as dependências num diretório autocontido.
- Transporte e aponte
Copie o bundle para a máquina isolada e configure
offline.bundle. - Modelo local ou gateway interno
Configure o provedor local e adicione-o à whitelist se houver rede interna.
- Verifique o isolamento
mvcode debug configconfirma a política resolvida; umwebfetchde teste deve falhar com erro de política, não com timeout.
