Skip to main content

Module FileSystemProvider

Module FileSystemProvider 

Source
Expand description

FileSystemReader/Writer: async file-system read and write operations.

§FileSystemProvider (Environment)

Implements FileSystemReader and FileSystemWriter for MountainEnvironment, providing secure, validated filesystem access with workspace trust enforcement. Handles read, write, stat, delete, rename, copy, and directory traversal; detects symbolic links.

§Security model

All operations call Utility::PathSecurity::IsPathAllowedForAccess before touching the filesystem. Access is sandboxed to registered workspace folders, path normalization blocks ../ traversal, and symbolic links outside the workspace are not followed.

§Implementation

The trait impl is split across two sub-modules loaded via #[path]:

  • FileSystemProvider/ReadOperations.rs - FileSystemReader impl
  • FileSystemProvider/WriteOperations.rs - FileSystemWriter impl

§VS Code reference

  • vs/workbench/services/files/electron-browser/diskFileSystemProvider.ts
  • vs/platform/files/common/files.ts
  • vs/base/common/network.ts

§Planned Work

  • Filesystem change watching
  • Path normalization enforcement
  • Atomic writes via temp+rename
  • File permissions/ownership metadata
  • Extended attributes
  • Trash API (not delete)
  • Encoding detection
  • Case-sensitivity handling
  • Filesystem usage statistics
  • Metadata caching

Modules§

ReadOperations 🔒
FileSystemProvider - Read Operations
WriteOperations 🔒
FileSystemProvider - Write Operations