Tabs & Spaces Developers

Build

Installing and updating

Workspace owners and admins install apps. Everyone in the workspace sees the installed apps in Settings → Apps.

What an admin sees first

When an admin pastes your manifest's address and chooses Check, they see:

  • your app's name, picture, description and developer;
  • the tabs it adds, with their descriptions;
  • what it's told: "The name of whoever opens its tab, and the workspace, space and tab it's in. Nothing else.";
  • what it keeps: each of your collections, where it's kept, and whether agents can read it;
  • what it does: each of your actions, and whether it changes things (agents ask first) or only reads;
  • where it loads from: your origin.

Nothing is kept until they choose Install.

How your manifest is fetched

The workspace's server fetches your manifest, and your app's picture, with care:

RuleDetail
HTTPSOn the usual port (443)
No private addressesChecked after DNS, on every redirect
RedirectsUp to 3, and only on the same origin
Time5 seconds
SizeManifest up to 64 KB; picture up to 100 KB
AnswerStatus 200, JSON

For development on your own machine, the workspace's operator can allow private addresses, http and any port with APPS_PRIVATE_NETWORKS=true. See Quickstart.

The workspace keeps your picture itself, so showing it in the workspace never tells your server who's looking.

When it's refused

The admin sees why, in your manifest's own terms. For example, tabs.deals.url must be on the manifest's origin. The reasons:

CodeWhen
MANIFEST_UNREACHABLEIt couldn't be fetched, or didn't answer 200
MANIFEST_PRIVATE_ADDRESSIt's on a private network
MANIFEST_NOT_JSONIt isn't JSON
MANIFEST_INVALIDIt doesn't follow the manifest's rules, or it redirected off its origin
APP_ID_TAKENAnother origin's app with the same id is installed
TOO_MANY_APPSThe workspace has 50 apps

Updates

Workspaces don't follow your changes by themselves. When you change your manifest (a new tab, a new name), an admin chooses Check for updates on your app, and the workspace fetches it again. An update must keep your app's id and origin. A manifest at the same address with another id, or another origin, is refused: that's a different app.

Your pages, though, are yours. Change them whenever you like, and the next time someone opens your tab they get the new version.

Removal

When an admin removes your app, its tabs stay in their spaces, saying the app isn't installed, until someone removes them or the app is installed again. So does its data, unless the admin chooses to delete it too. If it's reinstalled (the same id, from the same origin), its tabs and data work again.