Przejdź do głównej zawartości

Sekrety

Projekt Restorm jest stworzony do commitowania. Sekrety natomiast nigdy nie powinny do niego trafiać. Odpowiedzią na tę potrzebę jest typ wartości Sekret: zmienna zapisuje odwołanie do źródła, nigdy samą wartość.

Dla zmiennej należy wybrać typ Sekret, a następnie źródło. Plik projektu zawiera wtedy jedynie identyfikator źródła i jego parametry. Wartość jest rozwiązywana w procesie głównym, w momencie wykonania.

Dwie zmienne środowiskowe typu Sekret (petstore_auth_token, api_key): w komórce widnieje znacznik $= oraz przyciski odświeżania, edycji pobierania i blokowania — obok zmiennej typu ciąg znaków

Sekret pozostaje widoczny z poziomu aplikacji: edytor środowisk, widoki rozwiązanej wartości, konsola wewnętrzna oraz fragmenty kodu wyświetlają jego wartość. To sekret użytkownika, który zna go już wcześniej — typ Sekret nie ma za zadanie ukrywać go przed nim.

Gwarantuje natomiast, że wartość:

  • nigdy nie trafia do plików opuszczających maszynę — nie jest zapisywana w projekcie .restorm, a więc nie zostaje ani zacommitowana, ani wypchnięta do repozytorium, ani zawarta w eksporcie;
  • nie jest przekazywana nieuprawnionej usłudze zewnętrznej — miejsca docelowe ruchu wychodzącego przechodzą przez zaporę.

Odczytuje zmienną środowiskową systemu operacyjnego. Jeden jedyny parametr: nazwa zmiennej.

To źródło zalecane w ciągłej integracji: sekret zostaje wstrzyknięty przez sejf danego systemu CI, a Restorm jedynie go odczytuje.

Terminal window
export API_TOKEN=""
restorm --open projet.restorm --run "Tests" --headless

Odczytuje — i zapisuje — plik restorm.env umieszczony obok projektu. To tryb lokalny: plik pozostaje na danej maszynie i należy dopisać go do .gitignore.

W przeciwieństwie do poprzedniego źródła to jest zapisywalne: wartość można wprowadzić z aplikacji Restorm, a zostanie ona zapisana w pliku sekretów, nie w projekcie.

Rozwiązane wartości są zapisywane w pamięci podręcznej. Po zmianie sekretu z zewnątrz (rotacja tokenu, modyfikacja pliku .env) należy użyć polecenia Odśwież środowisko, aby wyczyścić pamięć podręczną i ponownie odczytać wszystkie źródła.

Restorm wymazuje sekrety z tego, co zapisuje na dysku:

Narzędzia MCP otrzymują natomiast rozwiązaną wartość, tak samo jak reszta aplikacji: agent steruje Restormem w imieniu użytkownika, na jego własnych sekretach. Powyższe gwarancje pozostają niezmienione — wartość nie jest zapisywana ani w projekcie, ani w eksporcie, i nie trafia do nieuprawnionej usługi zewnętrznej.

  1. Warto dodać restorm.env oraz *.responses.zip do swojego .gitignore.
  2. W CI lepiej używać envVar niż pliku sekretów.
  3. Hasło protokołu natywnego (MQTT, AMQP, Redis, Kafka) także przyjmuje wartość typu Sekret — nie należy zapisywać tych haseł jawnym tekstem w żądaniu.