Przejdź do głównej zawartości

Projekty i pliki .restorm

Projekt Restorm żyje na własnym dysku. Nie ma zdalnego obszaru roboczego ani zamkniętej synchronizacji: plik się otwiera, zapisuje i commituje.

Tryb domyślny (Plik ▸ Nowy, następnie Zapisz jako). Cały projekt mieści się w jednym pliku, domyślnie w formacie YAML. Dostępne są też dwa inne formaty serializacji: json i json5.

Plik ▸ Otwórz folder. Projekt zostaje rozłożony na dysku w postaci drzewa katalogów, co w dużych projektach daje znacznie drobniejsze diffy:

  • plik konfiguracyjny restorm.conf w katalogu głównym, który przechowuje wyłącznie format (format: yaml | json | json5);
  • po jednym pliku indeksu na katalog (index.yaml, index.json…);
  • foldery i pliki o nazwie <index> - <name>, gdzie indeks jest dopełniany zerami do szerokości całego rodzeństwa, tak aby kolejność na ekranie odpowiadała kolejności na dysku. Znaki zabronione (<>:"/\|?*) są zastępowane przez _, a nazwa jest skracana do 100 znaków.

W trybie folderu Ctrl+S zapisuje tylko poddrzewo aktywnej zakładki; Ctrl+Shift+S (Zapisz wszystko) zapisuje całość.

Projekt otwarty w trybie folderu: drzewo po lewej odwzorowuje hierarchię folderu, a pasek stanu wskazuje na folder — nie na plik .restorm.

  • drzewo: foldery, foldery zmiennych, żądania wszystkich protokołów, scenariusze;
  • środowiska i ich zmienne, w tym podśrodowiska;
  • własne listy wartości oraz zaimportowane wyliczenia;
  • tagi i ich kolory;
  • dokumentację API dołączoną do folderów zmiennych;
  • szybkie ustawienia zapisane „w projekcie”;
  • identyfikator projektu (_projectUuid) i wersję formatu.

Celowo, aby plik nadawał się do udostępniania:

DaneGdzie się znajdują
SekretyPlik sekretów .env obok projektu — zob. Sekrety
Historia odpowiedziArchiwum <project>.responses.zip umieszczone obok projektu
Szybkie ustawienia „użytkownika”Lokalne ustawienia danej osoby
UlubioneLokalna pamięć aplikacji, indeksowana identyfikatorem projektu
Układ workbenchaLokalne ustawienia, indeksowane według projektu
Ustawienia obszaru roboczego<project-folder>/.restorm/settings.json

Praktyczna konsekwencja: plik .restorm można commitować bez wyprowadzania tokenu, a współpracownicy nie otrzymują cudzego układu zakładek.

Dwie gwarancje, które istnieją wyłącznie po to, aby wersjonowanie było użyteczne:

  1. Kanoniczna kolejność kluczy. Klucze tożsamości występują na początku (id, name, key, type, folderType, method, url), pozostałe są sortowane. Kolejność tablic natomiast nigdy nie jest zmieniana: pozostaje ona taka, jak ją ustawiono.
  2. Identyfikatory wyprowadzane w stabilny sposób. Identyfikator encji jest obliczany na podstawie jej ścieżki semantycznej, a nie losowany. Dwie osoby, które dodadzą to samo żądanie w tym samym miejscu, otrzymają ten sam identyfikator, co pozwala scalaniu poprawnie sparować encje.

Efekt: otwarcie i ponowne zapisanie projektu bez żadnej zmiany nie daje żadnego diffa. Zob. Wbudowany git.

Plik ▸ Ostatnie pliki wymienia dziesięć ostatnio otwartych projektów; ścieżki, które przestały być poprawne, są automatycznie usuwane. Ta sama lista zasila ekran powitalny.