Pular para o conteúdo principal
Versão: 0.14.0

Diagrama C4 de Contexto do Sistema (C1)

Este diagrama mostra o Invowk no nível mais alto - os limites do sistema, usuários e sistemas externos com os quais ele interage.

Diagrama

Diagram: architecture/c4-context

Atores Principais

AtorDescrição
DesenvolvedorUsuário principal que cria arquivos invowkfile.cue e executa comandos. Define implementações de comandos em diferentes runtimes.
Membro da EquipeConsome módulos compartilhados (diretórios .invowkmod) e executa comandos definidos por outros. Beneficia-se de comandos portáteis e reproduzíveis.

Sistemas Externos

SistemaPropósitoProtocolo
Docker EngineRuntime de container para execução isolada de comandos. Fornece ambientes reproduzíveis.Docker CLI
Podman EngineRuntime de container alternativo sem root. Preferido para ambientes com foco em segurança.Podman CLI
Repositórios GitFonte para dependências de módulos remotos. Permite compartilhamento e versionamento de módulos de comandos.Protocolo Git (HTTPS/SSH)
Shell do HostExecução nativa de comandos. Usa bash/sh no Unix, PowerShell no Windows.Process exec/spawn
Sistema de ArquivosArmazenamento para configuração, invowkfiles, módulos e scripts.I/O de Arquivos
Provedores LLM OpcionaisAnálise com LLM para invowk audit e autoria de comandos com invowk agent cmd create via Claude, Codex/OpenAI, Gemini ou Ollama local.APIs HTTP compatíveis com OpenAI / CLIs locais

Limites Principais

O Que o Invowk Possui

  • Descoberta e resolução de comandos
  • Seleção e execução de runtime
  • Gerenciamento de dependências de módulos
  • Parsing e validação de configuração

O Que o Invowk Delega

  • Execução real de comandos (para shells ou containers)
  • Gerenciamento de imagens de container (para Docker/Podman)
  • Operações de controle de versão (para Git)
  • Operações de sistema de arquivos (para SO)

Decisões de Design Visíveis Neste Nível

  1. Suporte a Múltiplos Runtimes: O Invowk não impõe um único ambiente de execução. Usuários escolhem shell nativo para velocidade, virtual-sh para scripts shell portáteis, virtual-lua para scripts Lua embarcados, ou containers para isolamento.

  2. Abstração de Engine de Container: Tanto Docker quanto Podman são suportados com fallback automático, reduzindo vendor lock-in.

  3. Distribuição de Módulos Baseada em Git: Módulos remotos usam Git para versionamento e distribuição, aproveitando infraestrutura existente ao invés de criar um registro personalizado.

  4. Configuração Centrada no Sistema de Arquivos: Toda configuração usa arquivos locais (formato CUE), permitindo controle de versão e compartilhamento entre equipes.

Diagramas Relacionados