Storage and sharing

When the Bloom client is used without the Bloom server plugin, Perspectives are stored locally on the user’s machine. This location depends on whether Bloom is running in Neo4j Desktop or in a web browser. In this setup, Perspectives cannot be shared between different users.

When the Bloom server plugin is used, Perspectives are stored in persistent storage (i.e. Neo4j database) provided by the server plugin. Therefore, they can be easily shared between different users who are accessing the same Neo4j server.

Perspective sharing can be explicitly controlled from the Sharing tab in the Perspective definition drawer. The best practice for assigning Perspectives is to create a custom role for each Perspective, and add that role to each user who should have access to the Perspective in question.

perspective sharing

Multi-user Perspective editing

When more than one user has access to a Perspective, there are cases when they want to edit the shared Perspective. To make sure that a shared Perspective is always up to date, Bloom frequently checks the database for changes. If any changes are found, they are merged, the current Perspective is refreshed, and a notification appears in the Perspective drawer. The notification tells you which user has made changes and when they were made.

multi user perspective refresh

Automatic Perspective refresh only applies to Perspectives stored with the Bloom server plugin.

Perspective actions by database privileges

The following table maps various Perspective actions available to a user according to the database privileges granted to the user. Note that this table is applicable for the Bloom plugin setup only, when storage is provided by the plugin and Perspectives may be shared across users. For setups without the plugin, Perspectives are stored locally on the user’s machine and thus the user can perform all relevant actions.

When using Bloom with Neo4j 4.1, Bloom is not able to recognize the fine-grained write permissions available in that version of the database. Granting WRITE to the perspective label specifically, will not enable perspective storage if WRITE to the DB is not granted. Further, granting WRITE to the DB but denying it specifically to the perspective label, means that Bloom will still think perspective sharing is possible. Consequently, it will fail with an error when trying to store a perspective. Therefore, make sure to grant the user WRITE privilege on the DB and don’t deny any of CREATE, SET LABEL, or SET PROPERTY on the Bloom_Perspective label.

Table 1. Database privileges (with plugin)
Actions Read only Write Write + list roles Write + list and create roles

Open Gallery

Yes

Yes

Yes

Yes

Select Perspective from Gallery

Yes

Yes

Yes

Yes

Allow local Perspective edits

Yes

Yes

Yes

Yes

Save edits to store

No

Yes

Yes

Yes

Delete Perspective

No

Yes

Yes

Yes

Create new/Generate Perspective

No

Yes

Yes

Yes

Sharing tab

No

No

Yes

Yes

See already mapped roles

No access

No access

Yes

Yes

See list of roles

No access

No access

Yes

Yes

Map to a role

No access

No access

Yes

Yes

Delete role mapping

No access

No access

Yes

Yes

Create new role

No access

No access

No

Yes

Export

No

Yes

Yes

Yes

Import

No

Yes

Yes

Yes

Users that have write access to the database, i.e. users that can create Perspectives, also have the ability to export and import Perspectives.

Starting in Bloom 1.3.2, there is an experimental feature to export all Perspectives. Additionally, with Bloom 2.0.0, there is an experimental feature that allows you to toggle if a Search phrase should be run as a write transaction. Both can be accessed from the Experimental drawer.
export all perspectives

As discussed in Bloom deployment modes, you can either connect to a Neo4j DBMS that uses the Bloom server plugin or one that does not. The deployment option you choose affects the Perspective gallery in different ways.

Using the Bloom server plugin
  • Perspectives are stored by the plugin in the Neo4j database.

  • Gallery shows only the Perspectives that the plugin returns from its storage.

  • In 4.x, if there are multiple databases, the gallery lets you select the database and then shows the Perspectives only for the current database.

Without using the Bloom server plugin
  • Perspectives are stored in the application’s local storage provided by hosting environment (Neo4j Desktop or the Web browser).

  • Perspectives maintain a reference to the database for which they were created.

  • Gallery shows the Perspectives that are assigned to current database.

  • There are some cases where a Perspective doesn’t have a reference to the correct database, e.g. a Perspective created in older versions of Bloom, or during a database move or upgrade where the database ID could have changed. In these cases, the Perspective isn’t lost. It can be found in Other Perspectives and manually moved to the current database.

other perspectives

The home database

The concept of a user’s home database is introduced in Neo4j 4.3. A home icon appears in the database dropdown in the Perspective Gallery to indicate the user’s home database. More details about the home database can be found in the Operations Manual → The default and home database.

home database