2.1 KiB
2.1 KiB
Vault Layout
Philosophy
Verstak's vault is designed to be human-readable. You can close Verstak, open your vault in any file manager, and find materials by browsing the folder structure.
Structure
vault/
.verstak/ # App data — not user-facing
vault.db
backups/
thumbnails/
cache/
sync/
trash/
history/
Проекты/ # User-created workspace nodes
Рабочие/
Разработка серверной/
Overview.md
Documents/
Notes/
Files/
Archive/
Клиенты/
ИТ-Вектор/
Projects/
LMS/
Overview.md
Documents/
Contracts/
Rules
- Every Node has a folder — the folder name matches the node title (sanitized).
- Nesting reflects parent-child relationships — if Node A is parent of Node B, B's folder is inside A's folder.
- Safe names — folder names preserve Cyrillic, spaces, and readable characters.
Illegal filename chars (
/\:*?"<>|) are replaced. Control chars are removed. - Uniqueness — if a folder already exists, a numeric suffix is added:
Project,Project (2),Project (3) - No UUIDs in user paths — UUIDs are stored in the database and in
.verstak/, never in the user-visible folder tree. - Template default files — templates may create default files like
Overview.mdinside the node folder. - Archive/Delete — archiving sets
archived = truebut doesn't move the folder. Deletion moves the folder to.verstak/trash/.
.verstak/ directory
Contains all application internal data:
vault.db— SQLite databasebackups/— automatic vault backupsthumbnails/— generated thumbnailscache/— temporary cachesync/— sync state and blobstrash/— moved here on deletionhistory/— file version history
Migration
Existing vaults can be migrated with the MigrateVaultLayout() command,
which computes fs_path for every node based on the parent-child tree
and creates the corresponding folders on disk.