Note: expect this repo to be renamed to https://github.com/BlueBrain/nexus-fusion to match the new application name and Nexus component branding scheme.
Nexus Fusion (previously Nexus Web) is the interface of Blue Brain Nexus, the open-source knowledge graph for data-driven science.
Blue Brain Nexus Docs | Development | Studios
Learn how we use git in the wiki
Install dependencies: Please note you need npm v6.9.0 or above or yarn. Currently, does not work with yarn 2.
yarn
To start the Nexus in development mode, run:
yarn start
Lint code:
yarn lint
Run unit tests:
yarn test
Run end to end tests:
- Ensure you have the
cypress.env.json
file locally.
a. To run the tests in headed mode:
yarn cy:open
If you encounter issues with project:setup
or resources:create
tasks because of SSL or certificate errors when running the tests locally, try the following:
NODE_TLS_REJECT_UNAUTHORIZED=0 yarn cy:open
b. To run the tests in headless mode:
yarn cy:run
Compile app in dist/
folder.
yarn build
You can run the app with:
node dist/server.js
docker build . --tag=nexus-web
BASE_PATH
: The base of the app: i.e./staging/web
if hosted onhttps://bbp-nexus.epfl.ch/staging/web
(default is/
)HOST_NAME
: name of host where application is available from: i.e.https://bbp-nexus.epfl.ch
(default is protocol + host where server is running from)CLIENT_ID
: The application name used for OpenID Connect authentication (default isnexus-web
)API_ENDPOINT
: The URL pointing to Nexus API. Default is '/'SERVICE_ACCOUNTS_REALM
: The realm that is configured for service accounts that should be hidden for Login. Default is 'serviceaccounts'.GTM_CODE
: The Google Analytics Identifier. GA won't be present unless an ID is specified.SENTRY_DSN
: The sentry URL Nexus Fusion needs to report errors to. Default is undefined.STUDIO_VIEW
: The location of the aggregate elastic search view that contains all the projects:orgLabel/projectLabel/viewId
LOGO_IMG
: Url for an image to be used as Fusion logo in the Header, for example,https://drive.boogle.com/jnsjdnsjs
LOGO_LINK
: Url for the logo, for example,https://www.epfl.ch
FORGE_LINK
: Url for the Forge Templates button, for example,https://some-url.hi
DATA_MODELS
: The location of the data models to be used in Activity lists in Workflow:orgLabel/projectLabel
The following concern Plugins. See how to manage plugin deployments
PLUGINS_MANIFEST_PATH
: Remote end point where plugins and manifest can be found. for example,https://bbp-nexus.epfl.ch/plugins
You can find out how to deploy a build in the wiki
The documentation for Nexus Fusion can be found in the product docs.
Read more about the Fusion Architecture.
Resource-level Plugins
A core component of Studio is the ability for data curators to develop a domain-specific presentation layer for their resources in Nexus Fusion. This allows data consumers to visualize their datasets using graphs, charts, or 3D visualizations, and to present the relevant metadata to the user.
Plugins are developed using Javascript and are loaded into the Nexus Fusion instance from the /plugins folder.
Studios Subapp
Studios space allows data curators to display their data using customisable, persistent queries. Using custom plugins developed with JavaScript, data curators can format the presentation of the query results any way they like.
Admin Subapp
The Nexus Fusion admin app allows you to manage your Nexus Delta instance.
Learn how to Add Your Own App
Issue tracking is centralized into the main Blue Brain Nexus repository.
There are several channels provided to address different issues:
- Feature request: If there is a feature you would like to see in this application, please first consult the list of open feature requests. In case there isn't already one, please open a feature request describing your feature with as much detail as possible.
- Bug report: If you have found a bug, please create an issue here.
- Never use
@id
as an absolute nexus address. - avoid using
nexus.httpGet()
, instead, use the specific API methods available
- Don't add the basePath in a URL, it will be added automatically by react-router.
The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government's ETH Board of the Swiss Federal Institutes of Technology.
Copyright © 2015-2023 Blue Brain Project/EPFL