Skip to content

Permissions ​

An extension can always read and write its own types: the ones it brings, the ones it adds fields to, or the person's own types they mapped it onto. Everything else, it asks for in uses:

json
"uses": ["pages.read", "assets"]
UseAllowsShown at install as
objects.readReading every object and typeEvery object
pages.readReading pagesPages
pages.writeReading and writing pagesPages
entries.readReading the day logDay log
entries.writeReading and writing the day logDay log
calendar.readReading events and tasksCalendar
calendar.writeReading and writing events and tasksCalendar
assetsUploading and reading filesFiles

Ask for the least you need. The person sees the list before installing, marked read or read and write.

What each call needs ​

Sorus checks each call where it runs, whichever tier the extension is in.

CallsNeed
workspace.get, types.listNothing. Without objects.read, types.list returns only your types.
objects.create, objects.upsertThe object is of one of your types.
objects.update, trash.moveThe object is of one of your types.
objects.batchEach write passes on its own.
objects.getOne of your types, or objects.read.
objects.queryquery.type is one of your types, or objects.read.
Other object reads (list, links, resolve, referrers)objects.read.
pages.*pages.read, or pages.write to change them.
entries.*entries.read, or entries.write to change them.
calendar.*calendar.read, or calendar.write to change them.
assets.*, upload, downloadassets.

Anything else, such as changing types, saved views or templates, is refused.

Network ​

Hosts in network, and the hosts of connections, are approved with the rest. See Jobs, network and connections.

Updates ​

An update that asks for more than the version before (a new use, host, or connection) doesn't run until the person approves again. What's new is marked New. So does an extension that arrives on another device through sync: each device approves on its own.

Extensions loaded from a folder are approved for what they ask, without a prompt.