edu_proxy

3.31.0 • Public • Published

Purple

Purple is an electron-based javascript bridge between the cloud application and the native software.

It is build up around multiple services that each translate changes in the database to local API calls.

Table of Contents generated with DocToc

Running purple on an NRC/NUC in dev mode

Configure the device now

Use canopener: https://git.barco.com/projects/ED/repos/canopener-gui/browse

Before running the app, the file in /etc/hosts should be changed so that the device can locate the server. If the server e.g. will run on dev.barco.com, then the following entry should be added:

[YOUR-IP-ADDRESS-HERE]  dev.barco.com [my-institute-slug].dev.barco.com [my-other-institute-slug].dev.barco.com

Remote development using VSCode on a device using SSH

Make sure you can setup a SSH connection to the device first. Then VSCode SSH remote development can be used, see here.

Access Barco servers

To access the Barco git and artifactory servers (e.g. when installing the packages), the hosts file needs to be updated with following values:

10.197.195.201  bin.barco.com
10.197.192.83   git.barco.com
10.197.195.56   knddebian.barco.com

Also, if working from home a VPN connection may be needed. openconnect can be used to setup a VPN connection. If not installed yet, install it on the device with sudo apt install openconnect.

Then following command can be used to initiate the VPN connection: sudo openconnect -b https://kndvpn.barco.com. Select token and enter you credentials to start the VPN connection.

Running the app

Using the correct node version

It is recommended to use nvm to manage the correct node version. This tool makes it a lot easier to handle multiple node version on the same machine. There is a .nvmrc file in the root which can help with loading the correct version. Just use the nvm use command in any of the directories to load the correct node version.

Setup the environment variables

To run the application the environment needs to be setup first. To do this, direnv should be used. See ./.envrc.example for more details how to set this up.

Install packages

Go to projects/edu and run:

npm run barco:install

Error 404 is caused by not having correctly set the npm-virtual npm registry, ensure you have setup the environment variables correctly. Note that the npmrc file is not used by meteor, so setting the variables in this file is not enough.

Then the app can be started by:

npm start

If you get errors, try running sudo apt install libxss1 and retry the previous step.

Note that after pairing the process exits. In production mode it will be automatically restarted, during development you have to do this manually.

Debug with VSCode

To debug the application in VSCode:

  • Go to the vscode debug pane and run the Launch purple configuration

Making a PR in purple

This section will give you some guidelines on what to do to make a proper Pull Request in this repository. If you want more ( like guidelines for review and qa, you can find them here

content

  • it fixes only 1 problem or implements only one feature
  • versionnumber in package.json is not bumped manually (use release script for that)
  • Code builds and runs without errors on a development machine
  • Logging should be meaningful and limited for production devices
  • Unit tests if possible (might be problematic depending on Bridge/Service)
  • Debt file completed where useful

pr-overview

  • It should be clear in the PR description if there are dependencies upon blue (eg. you need to run a special branch of blue in order to test)
  • PR should refer to the corresponding itrack issue number (via branchname) and mention if there are discrepancies wrt. to itrack issue (eg. not everything implemented for some reason).
  • In case of no itrack (small issue) the description should point out what issue should be fixed by this.

git-practice

  • Commits are squashed to a reasonable amount so that each commit is relevant in the endresult
  • Branch is rebased on target
  • Dependencies on different debian versions should be taken into account where applicable (changing debian version)

other

  • Breaking backwards compatibility with blue should be very well documented (Release notes --> mention if minimum compatible version should be updated + what will happen)
  • At least tested in single device scenario applicable to story/fix

Releasing purple

Pushing purple to debian 11

Make sure you've enough access rights to push things into the rc branch without doing a PR. Another thing that can be done is to run the release.js script by enabling the DEGUG env var, to check if everything is OK. You can run node ./release.js [M.m.p]

IMPORTANT:

  • For this script to work fine, your local debian/nrcdeb11100 branch must track the remote one
  • It's strongly recommended to first run the script in simulation mode DEBUG=1 node ./release.js [M.m.p], which will show the commands that it would execute.

M.m.p for the Major, minor and patch version respectively. If not provided, a new build of the current version will be released.

You can also run with --patch, --minor, --major arguments to bump & release the current version respectively in patch, minor, major version.

See RELEASE.MD for more information

Creating an ISO

Before creating an ISO, make sure the last purple version is properly built (https://git.barco.com/projects/ED/repos/purple/commits?until=refs%2Fheads%2Fdebian%2Fnrcdeb11100&merges=include). You can find a detailed explanation here You can verify that the new version of the barco-edu-proxy package has been published at the following location (subject to change):

  1. Go to Jenkins job
  2. Login with barco credentials
  3. Click Build with Parameters
  4. Select distribution (nrcdeb11100)
  5. Click Build
  6. Successful job execution will trigger another job which will build an actual ISO.
  7. After an hour you can download ISO from artifactory. If the ISO is not available, you can have a look at the logs from here (and/or maybe re-trigger this job) : http://korjnk01.barco.com/jenkins/job/NRC/job/debian/job/Build/job/nrc-iso%20autobuild/job/debian%252Fnrcdeb11100/

Publishing an ISO

  1. Go to artifactory and find a link to the latest ISO for the release you're looking to publish.
  2. Go to Repository Uploader Job:
    • Click Build with Parameters
    • Paste in ISO url and click Build

At the end of the job, if it finishes with success, it provides an url like http://repository-tst01.edu.barco.cloud/repository/aws-test/Barconrc-3.0.1-b53

To test if it's really deployed/available, suffix the url received with /version (it should download a version file)

If the version file above is not available and the job succeeded, it might be necessary to restart the following deployment edu-repository-tst01

Readme

Keywords

Package Sidebar

Install

npm i edu_proxy

Weekly Downloads

2

Version

3.31.0

License

SEE LICENSE IN eula.txt

Unpacked Size

8.54 MB

Total Files

360

Last publish

Collaborators

  • arcgup