Pular para o conteúdo

Projetos e ficheiros .restorm

Um projeto Restorm vive no seu disco. Não existe área de trabalho remota nem sincronização proprietária: abre um ficheiro, guarda-o, faz-lhe commit.

O modo predefinido (Ficheiro ▸ Novo, seguido de Guardar como). Todo o projeto cabe num único ficheiro, em YAML por predefinição. Estão disponíveis outros dois formatos de serialização: json e json5.

Ficheiro ▸ Abrir pasta. O projeto é distribuído por uma árvore no disco, o que dá diffs muito mais finos nos projetos grandes:

  • um ficheiro de configuração restorm.conf na raiz, que contém apenas o formato (format: yaml | json | json5);
  • um ficheiro de índice por diretório (index.yaml, index.json…);
  • as pastas e os ficheiros com o nome <index> - <name>, sendo o índice preenchido com zeros à largura da fratria, para que a ordem no ecrã seja a ordem no disco. Os caracteres proibidos (<>:"/\|?*) são substituídos por _ e o nome é truncado a 100 caracteres.

Em modo pasta, Ctrl+S escreve apenas a subárvore do separador ativo; Ctrl+Shift+S (Guardar tudo) escreve o conjunto.

Um projeto aberto em modo pasta: a árvore à esquerda reproduz a hierarquia da pasta, e a barra de estado aponta para uma pasta — não para um ficheiro .restorm.

  • a árvore: pastas, pastas de variáveis, pedidos de todos os protocolos, cenários;
  • os ambientes e as suas variáveis, incluindo os subambientes;
  • as listas de valores personalizadas e as enumerações importadas;
  • as etiquetas e as suas cores;
  • a documentação de API associada às pastas de variáveis;
  • as definições rápidas guardadas “no projeto”;
  • um identificador de projeto (_projectUuid) e uma versão de formato.

Deliberadamente, para que o ficheiro seja partilhável:

DadosOnde vivem
SegredosUm ficheiro .env de segredos ao lado do projeto — ver Segredos
Histórico de respostasUm ficheiro comprimido <project>.responses.zip colocado ao lado do projeto
Definições rápidas “utilizador”As suas definições locais
FavoritosO armazenamento local da aplicação, indexado por identificador de projeto
Disposição do workbenchAs suas definições locais, indexadas por projeto
Definições da área de trabalho<project-folder>/.restorm/settings.json

Consequência prática: pode fazer commit de um .restorm sem exfiltrar um token, e o seu colega não recebe a sua disposição de separadores.

Duas garantias, que existem unicamente para que o controlo de versões seja utilizável:

  1. Ordem de chaves canónica. As chaves de identidade vêm à cabeça (id, name, key, type, folderType, method, url), o resto é ordenado. A ordem dos arrays, por seu lado, nunca é alterada: é a sua ordem.
  2. Identificadores derivados de forma estável. O identificador de uma entidade é calculado a partir do seu caminho semântico, não é sorteado ao acaso. Duas pessoas que adicionem o mesmo pedido no mesmo lugar produzem o mesmo identificador, o que permite à fusão emparelhar corretamente as entidades.

Resultado: abrir e voltar a guardar um projeto sem alterar nada não produz nenhum diff. Ver Git integrado.

Ficheiro ▸ Ficheiros recentes lista os dez últimos projetos abertos; os caminhos que se tornaram inválidos são removidos automaticamente. A mesma lista alimenta o ecrã de boas-vindas.