Skip to content

.restorm projects and files

A Restorm project lives on your disk. There is no remote workspace and no proprietary sync: you open a file, you save it, you commit it.

A Restorm project is a single file (File ▸ New, then Save as), YAML by default. Two other serialisation formats are available: json and json5.

  • the tree: folders, environment folders, requests of every protocol, scenarios;
  • environments and their variables, including sub-environments;
  • custom value lists and imported enumerations;
  • tags and their colours;
  • the API documentation attached to environment folders;
  • the quick settings saved “in the project”;
  • a project identifier (_projectUuid) and a format version.

Deliberately, so that the file can be shared:

DataWhere it lives
SecretsA secrets .env file next to the project — see Secrets
Response historyA <project>.responses.zip archive placed next to the project
”User” quick settingsYour local settings
FavoritesThe application’s local storage, indexed by project identifier
Workbench layoutYour local settings, indexed by project
Workspace settings<project-folder>/.restorm/settings.json

Practical consequence: you can commit a .restorm file without leaking a token, and your colleague does not inherit your tab layout.

Two guarantees, which exist purely to make version control usable:

  1. Canonical key order. Identity keys come first (id, name, key, type, folderType, method, url), the rest is sorted. Array order, on the other hand, is never touched: it is your order.
  2. Stably derived identifiers. An entity’s identifier is computed from its semantic path, not drawn at random. Two people adding the same request in the same place produce the same identifier, which lets merging pair entities correctly.

The result: opening a project and saving it again without changing anything produces no diff at all. See Built-in git.

File ▸ Recent files lists the last ten projects you opened; paths that have become invalid are removed automatically. The same list feeds the welcome screen.