Pular para o conteúdo principal

Extensão do VS Code

Em construção

Esta página está em construção. O conteúdo pode mudar ou estar incompleto.

Sua arquitetura agora tem dezenas de manifests espalhados por uma pasta. Para descobrir quem acessa o catalog-db, você pode pedir ao agente que leia os arquivos e traga a resposta, ou abrir arquivo atrás de arquivo e buscar por conta própria. De qualquer forma, o mapa precisa ser refeito a cada vez. E só percebe que uma regra foi quebrada quando o pipeline falha dez minutos depois do push. O ideal seria ver a arquitetura enquanto edita, e ver o problema na linha que o causa.

A extensão do ASL para o VS Code faz exatamente isso, e mantém sempre à mão um catálogo da sua arquitetura, sem nada para refazer. Ela adiciona um painel ASL na barra lateral com todos os recursos da sua arquitetura e marca os erros no editor enquanto você digita, com as mesmas verificações do comando asl.

Instalar​

Por enquanto a extensão é distribuída como um arquivo .vsix. No VS Code, abra a view de Extensions, escolha ⋯ e depois Install from VSIX…, e selecione o arquivo. Pelo terminal:

code --install-extension asl-vscode-0.1.0.vsix

Abra uma pasta com arquivos *.asl.yaml. O ícone ASL aparece na barra de atividades.

O painel ASL​

O painel tem três views. No topo da primeira, Compile architecture executa as verificações sob demanda, e o botão ⓘ abre esta documentação.

O painel ASL no VS Code: a view Workspace com o catalog-db expandido e marcado em vermelho, a view Schemas com os kinds nativos e a view Extra com uma custom policy encontrada

Workspace​

Todos os manifests da pasta, agrupados por kind: Application, Database, Queue... Expanda um recurso para ver como ele se conecta ao resto, em até três grupos:

GrupoO que lista
IngressQuem acessa este recurso e as interfaces que ele expõe.
EgressO que este recurso chama, lê, escreve ou publica.
BidirectionalInterfaces que funcionam nos dois sentidos.

Cada conexão aparece como <Kind> <nome>, seguida do tipo da conexão em cor esmaecida, por exemplo Database catalog-db readsAndWrites. As interfaces aparecem como Interface public-api, seguidas do protocolo e do tipo. Um grupo só aparece quando tem algo para mostrar.

Clique em qualquer item para abrir o manifest no editor, na linha exata. Um recurso que é referenciado mas nunca declarado aparece como not declared.

Schemas​

Todos os kinds disponíveis para a pasta, com seus campos. O grupo built-in asl/* fica sempre no topo, seguido dos seus próprios grupos (por exemplo acme/v1). Um * marca um campo obrigatório. Clique em um kind para abrir a definição dele.

Extra​

É aqui que você aponta a extensão para as suas custom policies e custom schemas. Clique em uma linha e escolha a pasta, que pode estar em qualquer lugar da sua máquina. É o equivalente às opções --policies-bundle-path e --schemas-bundle-path do comando.

  • Se a pasta não existe, ou nada foi encontrado nela (as subpastas também são varridas), a linha fica vermelha.
  • Caso contrário, a linha lista o que foi encontrado: as policies pelo nome, os kinds por grupo e versão. Clique em um para abri-lo.

Problemas no editor​

Quando um manifest quebra uma regra, a extensão mostra isso onde você está trabalhando:

Um manifest no VS Code com fundo vermelho no Database que quebra a regra, e a mensagem no painel Problems

  • a linha com o problema fica sublinhada, com a mensagem e o nome da policy ao passar o mouse;
  • o manifest inteiro ganha fundo vermelho (amarelo no caso de warning), e a barra de rolagem mostra uma marca;
  • o mesmo problema aparece no painel Problems;
  • no painel ASL, o recurso, a conexão e o kind ficam vermelhos (ou amarelos).

As verificações executam quando você abre a pasta, a cada edição de um manifest e a cada save. Uma custom policy que você alterar é reconhecida ao salvar. Não há nada para configurar.

Ícones dos kinds​

Cada kind tem um ícone no painel: um servidor para Application, um banco de dados para Database, um megafone para Topic, e assim por diante. Um kind seu que não define um ícone aparece com um ?, e a view Schemas mostra quais são.

Para escolher o ícone, adicione x-asl-codicon-icon no topo da definição do kind, com o nome de qualquer ícone da lista de ícones do VS Code:

schemas-bundle/acme/v1/Team.yaml
x-asl-codicon-icon: organization
allOf:
- $ref: ../../asl/v1/Manifest.yaml
- type: object
required: [spec]
properties:
apiVersion:
const: acme/v1
kind:
const: Team
spec:
type: object
additionalProperties: false
required: [email]
properties:
email:
type: string
unevaluatedProperties: false

O ícone fica guardado junto com a definição, então todo mundo que carregar o seu bundle vê o mesmo. O comando asl ignora essa linha.

Configurações​

ConfiguraçãoSignificado
asl.policiesBundlePathUm arquivo ou pasta com as suas custom policies. Um caminho relativo é resolvido a partir da pasta do workspace.
asl.schemasBundlePathUma pasta de custom schemas, organizada como <group>/<version>/<Kind>.yaml.

A view Extra grava as duas configurações para você.