IaC Architecture Visualizer (VS Code Extension)
Extensão VS Code para visualizar arquitetura AWS a partir de arquivos Terraform (.tf) com foco em entendimento de recursos e dependências.
Visão Geral
O fluxo atual do MVP é:
- Scanner encontra arquivos
.tf no workspace.
- Parser extrai recursos
resource "aws_*" "name" e dependências.
- Builder monta grafo (
nodes/edges) com metadados.
- Webview renderiza preview interativo no VS Code.
Instalação Local
Pré-requisitos:
- Node.js 20+
- npm
- VS Code 1.90+
Passos:
npm install
npm run compile
Como Usar
Modo desenvolvimento (F5)
- Abra este projeto no VS Code.
- Pressione
F5 para abrir o Extension Development Host.
- Na janela nova, abra uma pasta contendo
.tf.
- Execute
IaC Architecture Visualizer: Show AWS Architecture Preview via Ctrl+Shift+P.
Recursos disponíveis no preview
- Realce de dependências ao clicar em nó/ligação.
Refresh no próprio painel.
Open source por recurso para abrir arquivo e linha no editor.
Exemplo de Entrada
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
}
resource "aws_subnet" "public" {
vpc_id = aws_vpc.main.id
}
resource "aws_security_group" "web" {
vpc_id = aws_vpc.main.id
}
Exemplo de Saída (MVP)
- Cards para cada recurso AWS detectado.
- Categoria visual por tipo (networking, security, compute etc.).
- Lista de dependências (explícitas e implícitas) com realce interativo.
- Navegação para origem do recurso (
Open source).
Limitações do MVP
- Suporte somente para provider
aws.
- Foco em blocos
resource.
- Sem render de arestas desenhadas entre caixas (lista interativa no estado atual).
- Sem agrupamento hierárquico completo (ex.: VPC/Subnet como containers aninhados).
- Sem geração/reversão de
.tf a partir da interface visual.
Scripts Úteis
npm run compile
npm run watch
npm run lint
npm run test
npm run package
Estrutura Principal
src/extension.ts: comando da extensão e integração VS Code.
src/previewWorkflow.ts: fluxo principal testável (status/preview).
src/tfScannerCore.ts: scanner com decode UTF-8 estrito e issues.
src/tfParser.ts: parser de recursos AWS e dependências.
src/graphBuilder.ts: construção e normalização do grafo.
src/preview.ts: webview HTML/CSS/JS.
test/fixtures/: cenários de validação (small, medium, partial-invalid).
Status do Projeto
MVP em desenvolvimento incremental por etapas (ver docs/ETAPA_*.md).
| |