Fs.FilePermission
eff FilePermissionSourceAn effect used to check file permissions (readable, writable, executable).
Operations
Returns true if the given file f is executable.
Returns true if the given file f is readable.
Definitions
Handles the FilePermission effect of the given function f.
In other words, re-interprets the FilePermission effect using the IO effect.
Handles the FilePermission effect of the given function f using the FileStat effect.
@DefaultHandler Runs the FilePermission effect of the given function f.
In other words, re-interprets the FilePermission effect using the IO effect.
def withAllowGlob(patterns: Nel[String], f: Unit -> a \ ef): a \ (ef - FilePermission) + FilePermission§ SourceMiddleware that intercepts the FilePermission effect, validating that all file paths
match at least one of the given glob patterns. Rejects paths that do not match
with a PermissionDenied error.
def withAllowList(allowedDirs: Nel[String], f: Unit -> a \ ef): a \ (ef - FilePermission) + FilePermission§ SourceMiddleware that intercepts the FilePermission effect, validating that all file paths
resolve within one of the given allowedDirs. Rejects paths outside the
allow list with a PermissionDenied error.
def withBaseDir(baseDir: String, f: Unit -> a \ ef): a \ (ef - FilePermission) + FilePermission§ SourceMiddleware that intercepts the FilePermission effect, resolving all file paths
relative to the given baseDir using Java's Path.resolve semantics.
Absolute paths are passed through unchanged.
def withChroot(chrootDir: String, f: Unit -> a \ ef): a \ (ef - FilePermission) + FilePermission§ SourceMiddleware that intercepts the FilePermission effect, validating that all file paths
resolve within the given chrootDir. Rejects paths that escape the chroot with
a PermissionDenied error.
def withDenyGlob(patterns: Nel[String], f: Unit -> a \ ef): a \ (ef - FilePermission) + FilePermission§ SourceMiddleware that intercepts the FilePermission effect, validating that all file paths
do not match any of the given glob patterns. Rejects paths that match a denied
pattern with a PermissionDenied error.
def withDenyList(deniedDirs: Nel[String], f: Unit -> a \ ef): a \ (ef - FilePermission) + FilePermission§ SourceMiddleware that intercepts the FilePermission effect, validating that all file paths
do not resolve within any of the given deniedDirs. Rejects paths inside a
denied directory with a PermissionDenied error.
Middleware that intercepts the FilePermission effect, resolving all file paths
to their real filesystem targets by following symlinks.
Bool ops (isReadable, isWritable, isExecutable): resolve path; return Ok(false) for dangling symlinks.