Lifelines webshop
Install
cp .lifelinesrc.example .lifelinesrc
yarn install
yarn run serve
-
i18n For development and testing you can add your translations to
i18n.schemas.js
For production make sure to add the translations to the molgenis entityLocalization
usinglifelines-webshop
as a namespace.tip: Use
i18n.schemas.js
to create theLocalization
entities. Formsgid
add the schema key (for example: "lifelines-webshop-sidebar-header") The namespace should belifelines-webshop
and than add all of the needed translations.
Common commands
yarn build # Compile and minify
yarn test # Run your tests
yarn lint # Lints and fixes files
yarn test:e2e # Run your end-to-end tests
yarn test:unit # Run your unit tests
Deployment (Kubernetes)
Ask Ops for help to setup kubectl and Rancher if you don't have them setup yet.
-
Deploy the
lifelines-webshop
Helm chart on Rancher. Write down the generated Molgenis token in theTRANSFORM
section. -
Install Molgenis commander
-
Add
deployment/datasets
directory to thedataset_folders
section of~/.mcmd/mcmc.yaml
-
Add
deployment/resources
folder to theresource_folders
section of~/.mcmd/mcmc.yaml
-
Configure Molgenis commander to run on the lifelines server
mcmd config add host mcmd config set host
-
Set the ll_admin password in the lifelines script
cp ./deployment/lifelines ~/.mcmd/scripts/ vim ~/.mcmd/scripts/lifelines add user ll_admin --set-password *******
-
Proxy the Molgenis instance and follow the commander script to setup the server:
kubectl port-forward svc/molgenis 8080:8080 --namespace lifelines-catalog-test mcmd run lifelines -i
-
Login as admin to Molgenis and add the
TRANSFORM
Molgenis token you generated earlier the Helm chart. -
Go to the Transform pod on Rancher and test the Transform with:
kubectl create job manual-transform --from cronjob/transform --namespace lifelines-catalog-test
Dataflows
To transform the raw data to a format that can be used by this app, use the molgenis-py-lifelines-transform tool.
Workflow of the catalog
Order process
Production settings
A couple of things have to be configured in order to run this app in production:
-
vue.config.js Add a public path to specify the path on which the app is served.
const packageJson = require('./package.json') ... module.export ... publicPath: process.env.NODE_ENV === 'production' ? packageJson.name + '/dist/' : '/',
-
package.json Add a scope for the package name to publish to a organisation scope on NPM.
"name": "*scope*/molgenis-app-lifelines-webshop",
Add the publish config with scope public, otherwise you cannot publish to NPM.
"publishConfig": { "access": "public" },
Add a target for webservers to resolve to.
"main": "dist/index.html",
Add directories to pick up when building for production.
"files": [ "dist", "src" ],
-
route.ts Change the default base when you want to serve your app on a path other than
/
export default new Router({ ... base: process.env.NODE_ENV === 'production' ? packageJson.name : process.env.BASE_URL,