Ir para o conteúdo

Visão geral da arquitetura

As superfícies que compõem o Orvienm e onde fica a fronteira entre elas.

Duas coisas com que você interage

O Orvienm é um engine de linha de comando que opera sobre um workspace. São dois artefatos e um programa.

  • A especificação — um arquivo YAML que declara um nome de estrutura e os diretórios que ela deve conter. Você a escreve e a versiona.
  • O workspace — a árvore de diretórios que o engine cria e inspeciona, mais o arquivo .orv.lock que registra a especificação a partir da qual ela foi construída.

O engine lê o primeiro, reconcilia o segundo em direção a ele e encerra. Nada roda em segundo plano.

Fluxo de dados

você ── escreve ──▶ .orvienm.yaml
                       │
                       ▼
                 orvienm CLI
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼
     validate        plan          apply
      (só o        (somente         (cria
    arquivo)       leitura)      diretórios)
                       │              │
                       ▼              ▼
                  workspace  ◀──  .orv.lock
                       │
                       ▼
        verify · status · doctor

Superfícies

  • Engine — o pacote Python e seu comando orvienm. Este é o produto: parse, validação, planejamento, aplicação, verificação e fingerprint vivem todos aqui. Distribuído como Alpha a partir do código-fonte.
  • Platform — este site. Ele documenta o engine e não contém lógica de produto.
  • Studio — uma superfície interativa separada, em desenvolvimento ativo em Alpha. Não está disponível publicamente e não é necessária para usar o engine.

As superfícies são independentes. Tudo o que está documentado em Recursos é comportamento do engine, alcançável apenas pela CLI.

Onde ficam as responsabilidades

  • A especificação governa a intenção — quais diretórios devem existir e sob qual nome.
  • O engine governa a criação e a comparação. Ele escreve apenas os diretórios que lhe mandaram criar.
  • O lock file governa o registro de qual especificação um workspace foi construído, e nada além disso.
  • Você governa tudo o que a especificação não menciona. O engine reporta diretórios não declarados, mas nunca os remove.

Limites deliberados

O engine gerencia diretórios. Ele não gerencia conteúdo de arquivos, permissões ou propriedade; não executa builds; não observa o sistema de arquivos; e não guarda histórico além do único lock file.

Para a visão em nível de módulo do próprio engine, veja Projeto do Engine.