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:
| Rule | Detail |
|---|---|
| HTTPS | On the usual port (443) |
| No private addresses | Checked after DNS, on every redirect |
| Redirects | Up to 3, and only on the same origin |
| Time | 5 seconds |
| Size | Manifest up to 64 KB; picture up to 100 KB |
| Answer | Status 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:
| Code | When |
|---|---|
MANIFEST_UNREACHABLE | It couldn't be fetched, or didn't answer 200 |
MANIFEST_PRIVATE_ADDRESS | It's on a private network |
MANIFEST_NOT_JSON | It isn't JSON |
MANIFEST_INVALID | It doesn't follow the manifest's rules, or it redirected off its origin |
APP_ID_TAKEN | Another origin's app with the same id is installed |
TOO_MANY_APPS | The 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.