The core set of Bloom features can be visualized as shown in this picture.
Watch the Bloom video series to see these product features in action.
The Bloom application consists of two components:
The Bloom client provides you with the user interface to define Perspectives, search your graph, visualize graph results, and refine/explore/interact with the graph visualization to get insights. You can also inspect property details about the nodes and relationships returned, as well as make edits directly to the underlying graph data, assuming you have the requisite permissions.
Starting in version 1.1, Bloom client can be hosted on a server and accessed via a web browser. You can also use it in Neo4j Desktop as a graph app.
In this option, the Bloom client is available as a web app that is hosted by a web server and accessed using a web browser. This setup requires no local install on your user machine. This option is most convenient if you prefer web-based apps, have restrictions on installing applications locally, or have strict firewall security in your network that may interfere with local applications.
Bloom client is available for free in Neo4j Desktop for local databases (from Bloom 1.3.0 onwards) and does not require installation. This setup may be desirable if you already run Neo4j Desktop, prefer using native apps, and like the convenience of automatic updates for new versions.
Starting in version 1.1, there is a Bloom server component which installs as a Neo4j database plugin (see the Installation guide for more details).
The Bloom server supplies the necessary runtime procedures for the Bloom client to store, manage and retrieve Bloom Perspectives in a persistent store. This persistent storage is necessary to allow for sharing, reliable access and backup of the stored information. Thus, the Bloom server enables sharing and collaboration between users in and across project teams.
By default, the Bloom server will store Perspective data in the Neo4j database, where the plugin is installed. Perspectives are stored as nodes with specific properties to capture their definition and other metadata. This data is stored alongside your business data in the property graph, although it is separated using Bloom-specific labels added to the Perspective nodes. If applications other than Bloom have access to the same property graph, such Perspective information can be accessible to other applications depending on the queries they run on the property graph.
If you prefer not to mix Perspective information with your other business data in the graph, the Bloom server can be configured to store Perspective information in a separate Neo4j instance.
Neo4j Bloom relies on the security features of the Neo4j database for users, roles, authentication and authorization.
User authentication is managed by the Bloom client. In a web-hosted mode, Bloom asks you for your user credentials and in a Desktop-hosted mode, Bloom gets your user credentials from the Desktop. In either case, Bloom sends the credentials to be authenticated in the database layer. Neo4j Bloom can be configured to support all database authentication providers as described in Authentication providers, except for Kerberos. Kerberos based authentication and single sign-on is not currently supported by Bloom.
Using the Bloom server, an administrator can configure which roles are authorized to use Bloom in their environment. The roles can be any combination of native and/or custom roles, including roles used for mapping to LDAP groups. A user must have at-least read access to a database in order to connect Bloom to it.
In addition, the Bloom server provides the ability to authorize Perspectives to be accessed only by certain roles.
As discussed in the Web server hosted section, the Bloom client can be hosted by a web server. The Neo4j database provides a web server that already hosts Neo4j Browser, another web client app. The Bloom client can be similarly hosted by the Neo4j web server. The Bloom server packages all the Bloom client files with it, and using a couple of configuration settings, can be setup to work with the Neo4j web server to provide Bloom to users on a web browser. This is the easiest and most convenient setup to get started with server-hosted Bloom.
Alternatively, you can stand up your own web server and host the Bloom client using it. While this setup requires a bit more work, it may be preferable if you would like an extra layer of security between the client browser and the database, or if you would like a clustered setup for the web server with a load-balancer up front.
Refer to Deployment modes section to learn more about the various ways in which Bloom can be deployed in your environment.