IMPORTANT: The main
branch of this repo currently handles ICA V1.
For ICA V2, see the v2 branch.
Node.js Express app that interacts with the Illumina Connected Analytics (ICA) API.
Supports only GET
endpoints.
Step 1: Install Node.js
from https://nodejs.org/en/download if not already done.
e.g.:
brew install node
# check that it works
node --version
# v17.4.0
Step 2: Clone illumination
repo (v2 branch) and install dependencies
(should take a minute max).
git clone https://github.com/umccr/illumination/tree/v2
cd illumination
npm install
Step 3: Check your ICAV2 environment variables:
export ICAV2_ACCESS_TOKEN=`cat ~/.icav2/.session.ica.yaml | grep access-token | sed -e 's/access-token: //'`
# export ICAV2_SERVER_URL="ica.illumina.com" # this is hardcoded as a fallback
You can also use a .env
file with your environment variables for convenience - see https://github.com/motdotla/dotenv
Step 4 (Optional): Adjust the utils/id2username.json
for better mapping of User IDs to User names.
npm start
# npm run devstart # for development
Open browser to https://localhost:3000.
Ctrl+C
to stop
Pull latest code changes and install/update newer dependencies:
cd illumination
git pull
npm install
(ICA v1)
(ICA v1)
Check out how to add/edit endpoints via the following commits:
- Express.js: https://expressjs.com/
- EJS: https://ejs.co/
- axios: https://github.com/axios/axios
// See app.js
const listEndpoints = require("express-list-endpoints");
console.log(listEndpoints(app));
[
'/projects',
'/projects/:projectid',
'/projects/:projectid/analyses'
'/projects/:projectid/data',
'/projects/:projectid/data/:dataid',
'/projects/:projectid/analyses/:analysisid',
'/projects/:projectid/analyses/:analysisid/steps',
'/projects/:projectid/analyses/:analysisid/inputs',
'/projects/:projectid/analyses/:analysisid/outputs',
'/projects/:projectid/analyses/:analysisid/rawOutput',
'/projects/:projectid/analyses/:analysisid/configurations',
'/analysisStorages',
'/users',
'/bundles',
'/workgroups',
'/regions',
'/samples',
'/pipelines',
'/pipelines/:pipelineid',
'/metadatamodels',
'/dataformats',
'/eventcodes',
'/eventlog',
'/notificationchannels',
'/storagebundles',
'/storageconfigurations',
'/storagecredentials',
'/connectors',
];