Skip to main content

Workspaces

A workspace is essentially a database. Under the hood, BOMIST uses the NoSQL databases PouchDB and CouchDB. PouchDB is stored on your file-system, being one instance created for every workspace you open on your computer. On the other hand, CouchDB runs on a remote server and is used to sync data between multiple PouchDBs (only on Team Workspaces, explained next).

The are two types of workspaces: Local Workspaces and Team Workspaces.

Local Workspaces

A Local Workspace is essentially an instance of a PouchDB database, running on your own computer. You can see it as a folder that you keep on your file-system and that contains all your data. This database cannot be accessed from multiple instances of the app at the same time as that could lead to data corruption. Hence, Local Workspaces are better suited for individuals rather than teams.

Local Workspace

You can create as many Local Workspaces as needed. Sometimes it might be useful to create a separate Local Workspace just to test some features or some script you are developing which integrates with the API.

Sharing local workspaces

Even though Local Workspaces are meant for individual use (i.e. not in a team or by different users), you can still use if from different computers by making sure the folder where you keep it is accessible from other computers (e.g. a Dropbox folder or some other network shared folder)

Team Workspaces

Team Workspaces, as the name implies, are meant for teams and the reason for that is that a central database (CouchDB) allows data to be synced between users.

Users still keep their own local copy of the database (PouchDB) but data is synced through a central database. In simple terms, whenever a user changes some data, that data is pushed into a remote CouchDB which in turn pushes it to the other users in the team so they can see those changes in real-time.

Team Workspace

The CouchDB is hosted by us and to have access to a Team Workspace you'll need a subscription of the TEAM plan. A subscription gives you access to a single Team Workspace. If you'd like to get access to more Team Workspaces or to be able to host everything yourself, please get in touch.

In a Team Workspace you also have access to role-based permissions so you can configure what users in the team can view and/or edit.

Team Workspaces are independent. In other words, two Team Workspaces cannot share data between each other.

Managing team members

Team members with the admin role can add and remove other team members as well as changing their permissions. By default, the owner of the subscription is the admin of the Team Workspace. To manage team members open the Account & Team dialog:

account & team

When inviting a team member, you can also pick a role for it. Role-based permissions can be defined through Setting - Workspace - Permissions.

Features on other (local) workspaces

The account associated with the TEAM subscription has access to all features in all types of workspaces.

Other team members have access to all features on both the Team Workspaces they belong to (as long as their role allows it), as well as on the sample Local Workspace that comes with the app. The sample workspace might be used to test some features without having to use your own data in the Team Workspace.

In all other cases, each user is limited by its own subscription (or lack of it). In other words, to have access to paid features on other Local Workspaces, the user must have a paid subscription of its own.

Recycling a Team Workspace

Recycling a workspace means creating a new one from scratch.

This might be useful when you've been using a Team Workspace just for testing purposes and then decide you want to start from scratch with real production data.

Data loss

All data is lost when recycling a Team Workspace. Make sure you really want to create a new one from scratch or, if in doubt, make sure to create a backup first.

Admin-only

Only users with the admin role can recycle a Team Workspace.

Since in Team Workspaces there is a central database, removing your own (local) database wouldn't be enough to remove the whole Team Workspace as, as soon as you'd run the app again it would still sync with the most up-to-date data that's available in the remote server. Manually and completely removing all data from a Team Workspace is also not possible as by design some data is not meant to be ever removed (e.g. history logs). Hence the need for this recycle operation.

Switching between workspaces

You can switch between workspaces by clicking on the folder button on the top right corner of the app which opens the Workspace Selection dialog:

Creating new workspaces

From this same dialog (see pictures above) you can also create new Local Workspaces. Remember: you can create as many Local Workspaces as you need. The Team Workspaces however are fixed, based on your TEAM or ENTERPRISE subscription. A TEAM subscription gives you access to a single Team Workspace while an ENTERPRISE license can provide access to multiple ones.

Moving data between workspaces

If you want to move data from one workspace to another, all you have to do is to export the workspace and import it into the other one. See Import & Export for more details. Importing a workspace into another doesn't delete any data on the destination. Instead, it just incrementally adds up data.

moving from Local to Team workspaces

If you've been working on a Local Workspace but have since then created a Team Workspace (e.g. by subscribing to the TEAM plan) you'll have to export the Local Workspace you've been working on and import it in the newly created Team Workspace.