Skip to content

The manifest ​

manifest.json, at the top of the extension's folder. Sorus checks it when it's loaded or installed, and refuses one that breaks a rule, saying which.

json
{
  "id": "dev.you.movies",
  "name": "Movies",
  "description": "Films you’ve watched, with posters, ratings and a diary.",
  "version": "1.0.0",
  "sdk": "1",
  "icon": "icon.svg",
  "types": [],
  "templates": [],
  "uses": ["assets"],
  "network": [],
  "apps": [],
  "views": [],
  "blocks": [],
  "commands": [],
  "jobs": [],
  "connections": []
}

Top level ​

KeyRequired
idyesA reverse domain name, lowercase: dev.you.movies. Identifies the extension everywhere, and its types' IDs come from it.
nameyesUp to 60 characters.
descriptionOne sentence, up to 280 characters, for the list of extensions.
versionyesA semantic version: 1.0.0, 1.2.0-beta.1.
sdkyes"1".
iconA path inside the folder, such as icon.svg.
typesTypes it brings or adds to.
templatesTemplates for its types.
usesWhat else it builds on. See Permissions.
networkHosts it may reach through Sorus. See Network.
appsIts apps, each with screens.
screensInstead of apps: one app's screens, named after the extension.
viewsViews for Objects.
blocksBlocks for pages.
commandsCommands for the palette.
jobsBackground jobs.
connectionsAccounts on other services.

It must bring at least one app, view or type. Give apps or screens, not both.

Keys and paths ​

  • Keys, such as a type's, a field's or a screen's id, start with a lowercase letter, then letters, digits or _, up to 64 characters: movie, watchedOn. Within a list they must be unique.
  • Paths, such as entry, are relative to the folder, with no .. and no leading /. The file must exist.
  • A module is a path to a .js or .mjs file. See Sandboxed and trusted.

Limits ​

An extension holds at most 2,000 files and 50 MB.