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).
A Local Workspace is simply composed of its own PouchDB database. 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.
You can also 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.
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, 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.
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:
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.
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.
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.
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.