Ir para o conteúdo

Arquitetura ​

O Ogma é um aplicativo desktop local com backend em Rust, frontend em Vue, shell do Electron, armazenamento local de projetos, ambiente de execução de plugins e integração opcional com MCP.

Componentes principais ​

ComponenteLocalizaçãoResponsabilidade
Backend de proxy/API em Rustcrates/proxyProxy MITM, API REST, armazenamento, scanners, reenvio, automação, plugins, MCP, OAST e endpoints de controle do navegador.
Frontend em Vuefrontend/srcInterface do espaço de trabalho, stores, rotas, editores, scanners, iframes de plugins, espaço de trabalho de IA e utilitários.
Shell de desktop do ElectrondesktopAplicativo desktop empacotado, integração de janelas do navegador, ponte de configurações e ciclo de vida do aplicativo.
DocumentaçãodocsSite de documentação do VitePress.
Diretório de dadosogma-data ou diretório de dados de aplicativos da plataformaBanco de dados SQLite, material da CA, plugins, exportações, backups e arquivos.

Backend ​

O backend expõe uma API REST e um serviço de escuta do proxy. Os principais módulos do backend incluem:

  • proxy_server.rs: interceptação e encaminhamento HTTP.
  • intercept.rs e intercept_rules.rs: fila de interceptação e correspondência de regras.
  • store.rs e store_actor.rs: acesso ao banco de dados do projeto e referência assíncrona ao armazenamento.
  • api.rs: roteamento e handlers da API.
  • replay.rs, automate.rs e workflows.rs: execução repetível de requisições.
  • passive_scanner.rs e active_scanner.rs: mecanismos de varredura.
  • plugins.rs e plugin_runtime.rs: metadados de plugins, ambiente de execução em sandbox, permissões e eventos.
  • mcp.rs: recursos e ferramentas MCP.
  • ca.rs, tls_cert.rs, client_cert.rs: suporte a certificados e TLS.
  • ws_history.rs, ws_replay.rs e sse.rs: suporte a tráfego de streaming.
  • oast.rs: serviços de callback fora de banda.

Frontend ​

O frontend é um aplicativo Vue que usa carregamento sob demanda por rota para a maioria das visualizações do espaço de trabalho.

Áreas principais:

  • router/index.ts: rotas do espaço de trabalho e das configurações.
  • components/NavSidebar.vue: navegação principal do produto.
  • stores/*: stores do Pinia para histórico, reenvio, automação, achados, fluxos de trabalho, plugins, escopo, shell, IA e outros estados.
  • api/client.ts e api/types.ts: interface tipada do cliente da API.
  • views/*: páginas de funcionalidades do espaço de trabalho.
  • components/WorkspacePanel.vue: painel do espaço de trabalho de IA e shell reverso.
  • views/PluginsView.vue e views/PluginPageView.vue: instalação e gerenciamento de plugins e hospedagem dos iframes de frontend.

Shell de desktop ​

O shell do Electron oferece a experiência de desktop empacotada e funções nativas de ponte:

  • Abertura e controle da janela do aplicativo.
  • Persistência das configurações de desktop no armazenamento local do frontend.
  • Abertura de janelas do Navegador Ogma e visualizações de navegador incorporadas.
  • Empacotamento de recursos e binários para distribuição em desktop.

Modelo de armazenamento ​

O Ogma mantém os dados das avaliações localmente. As migrações do backend definem tabelas restritas a cada projeto para:

  • Histórico HTTP e corpos de mensagens.
  • Tráfego WebSocket e SSE.
  • Sessões e tentativas de Reenvio.
  • Sessões, execuções e resultados de Automação.
  • Achados e links para evidências.
  • Fluxos de trabalho e suas execuções.
  • Predefinições de escopo.
  • Plugins e suas permissões.
  • Arquivos, exportações, backups e configurações.

Ambiente de execução de plugins ​

Os plugins podem incluir componentes de backend, componentes de frontend ou ambos.

Os plugins de backend são executados em um sandbox de JavaScript e recebem um objeto sdk. Os plugins de frontend são executados em iframes com isolamento de sandbox e se comunicam por uma ponte controlada pelo Ogma.

Limites importantes:

  • Os plugins de frontend não podem acessar o DOM da página principal.
  • Os comandos da ponte são validados no servidor.
  • As ações protegidas do backend exigem permissões declaradas e concedidas.
  • Os pacotes instalados são copiados para o diretório de plugins gerenciado pelo Ogma para garantir um comportamento estável durante a execução.

Consulte Sistema de plugins.

Integração com MCP ​

O servidor MCP expõe o contexto dos projetos do Ogma a assistentes externos. Por padrão, ele inicia em modo somente leitura. As capacidades de escrita, exportação, envio de requisições, execução de fluxos de trabalho e controle de interceptação exigem permissões explícitas.

Consulte Configuração do MCP.

Princípios de design ​

  • Prioridade ao funcionamento local por padrão.
  • Achados vinculados a evidências.
  • Escopo antes da automação.
  • Controles explícitos de permissão para IA, plugins, envio de requisições e exportações.
  • Navegação rápida para fluxos de trabalho recorrentes do profissional de testes.
  • Compatibilidade com fluxos de trabalho de proxy estabelecidos, mantendo o Ogma extensível.

Software proprietário. Todos os direitos reservados.