Permissions
Permissions are used to control what applications can do or not.
Level of Permissions
Permissions are divided into the following categories:
- Basic (
B
): basic permissions, like window creation, which are granted automatically by default - Implicit (
I
): ermissions implied by the usage of an application, like opening a file with an application grants it an access while the application is running - Global (
G
): accessing and modifying non-critical parts of the state of the system, like controlling the global volume or reading - Sensitive (
S
): accessing sensitive informations, like filesystem or network access - Privacy (
P
): accessing privacy-related data, like microphone or webcam access
If applications request permission from the user to get sensitive and privacy permissions while using them, a popup will shown:
- Only one time
- For the active application
- For the current session
- Forever
User Privileges
Some permissions require the user to have specific privileges,
such as being administrator. These permissions are marked
in this document with an {A}
.
List of Permissions
Devices
- (P)
devices.enum
: enumerate devices - (P)
devices.subscribe
: subscribe to devices - (P)
devices.register_driver
: register a device driver - (P)
devices.ask_driver
: ask a device's driver to perform a method
Filesystems
- (S)
fs.filesystems.mounted
: check if a given filesystem is mounteds - (S)
fs.filesystems.metadata
: get metadata on a given filesystem - (S)
fs.filesystems.list
: enumerate mounted filesystems - (S)
fs.filesystems.mount
: mount an existing filesystem - (S)
fs.filesystems.unmount
: unmount filesystems mounted by other applications - (S)
fs.filesystems.watch
: be notified when a filesystem is (un)mounted - (S)
fs.filesystems.format
: format an existing filesystem
Filesystem Elements
- (S)
fs.items.exists
: check if an item exists at a given path - (S)
fs.items.metadata
: get metadata on a given item - (S)
fs.items.create
: create new filesystem elements - (S)
fs.items.move
: rename and move existing filesystem elements - (S)
fs.items.remove.trash
: send items to the current user's trash - (S)
fs.items.remove
: delete items permanently
Flows
- (S)
flow.list
: list flows opened by all applications - (S)
flow.metadata
: get metadata on flows - (B)
flow.create
: create flows - (S)
flow.read
: read from flow - (S)
flow.write
: write to flow
Network
- (S)
net.fetch
: fetch a resource - (S)
net.expose
: listen to a specific port
System
- (B)
system.clock.date.read
: get the current date - (B)
system.clock.time.read
: get the current time - (B)
system.clock.timezone.read
: get the current timezone - (S)
system.user.name.read
: get the current user's name - (S)
system.user.avatar.read
: get the current user's avatar - (B)
system.hw.cpu.count
: get the number of CPUs - (G)
system.hw.cpu.list
: list CPUs - (B)
system.hw.mem.total
: get the amount of total memory - (B)
system.hw.mem.available
: get the amount of available memory - (G)
system.hw.mem.slots
: get the number of RAM slots - (G)
system.hw.mem.list
: list RAM slots
Programs
- (S) + {A}
programs.running.processes
: get the list of running processes - (S)
programs.running.apps
: get the list of running applications
System-reserved Permissions
sys.process.kill
: suspend or kill external processessys.process.signal
: send a signal to an external process