Competency and Skills Service – Competency Management
Release Candidate: 1.5.69
Supported: 1.4
Supported: 1.3
Supported: 1.2
High level documentation
Developer documentation
This document is intended to act as a technical guide to the installation of CaSS.
This installation of CaSS will provide several components that operate to provide a working system. It is composed of:
https://github.com/cassproject/cass-npm
https://www.npmjs.com/package/cassproject
wget https://raw.githubusercontent.com/cassproject/CaSS/master/scripts/cassInstall.sh
chmod +x cassInstall.sh
sudo ./cassInstall.sh
During the installation, you will be asked to select a version to install. Versions are listed at the top of this document.
Docker images for standalone instances (based on Ubuntu) and distributed/scalable instances (based on Alpine Linux) can be found at:
https://hub.docker.com/r/cassproject/cass
To support open linked data, it is important that the objects created in CaSS have public, reliable URLs. For this:
After cloning this repository (ensure you use git clone with –recurse-submodules!), you can run CaSS locally.
Dependencies: Docker (will pull and run elasticsearch on port 9200)
git clone --recurse-submodules -b <branch> https://github.com/cassproject/CASS
- Get the code.npm i
- Install dependencies.npm run dev
- Starts server, restarts server on-save.npm run automocha
- Runs both cass-npm and cass unit tests, runs them again on-save.npm run automochafast
- Runs cass unit tests, runs them again on-save.npm run mocha
- Runs cass-npm and cass unit tests.npm run mochafast
- Runs cass unit tests.Will be deposited in /docs
npm run docs
Where flavors are: ubuntu16, ubuntu18, ubuntu20, ubuntu18:13to15, standaloneWindows, standalone, testReplication
npm run buildRun:<flavor>
- Wipes previous test container, builds and starts flavor container.npm run buildRun:kill
- Stops the running container.npm run run:cassbase
- Starts PM2 on localhost:8080/cass (used by cassInstall.sh)npm run run:standalone
- Starts PM2 on localhost/ (used by Docker installs)npm run run
- Starts PM2 on localhost:8080/npm run logs
- Tails logs.npm run stop
- Stops all PM2 services.To get the process to restart when your linux machine restarts, run npm run pm2startup
, run the command the process tells you to, and run npm run pm2save
. For Windows, an additional library is needed to configure this.
Due to the performance improvements in the 1.5 version of CaSS, we highly recommend using Elasticsearch 7 with it as it’s better configured to handle the load than previous versions.
npm upgrade --save
Review dependencies, autocomplete version numbersnpm install
npm run testWithCoverage
npm run test:mocha
- Must not fail any tests.npm run openapi:validate
- Must not fail any tests.ctrl+c
. Record the output of the code coverage for the tests in codeCoverage.md.npm run buildRun:standaloneTest
to ensure the container can build.docker scout cves cass-test > scan-standalone.txt
npm run test:mocha
- Must not fail any tests.docker-compose up --build
to ensure the container can build.docker scout cves cass-cass > scan-node.txt
npm run test:mocha
- Must not fail any tests.FIPS is supported both client-side and server-side in CaSS. Here is the relevant compatibility table.
Sources: https://www.openssl.org/blog/blog/2023/05/29/FIPS-3-0-8/
–> Server –> | < 1.5.35 | >= 1.5.35 with OpenSSL 3.0.8 and –force-fips |
>= 1.5.35 with OpenSSL 3.0.8 and –force-fips and env REJECT_SHA1=true |
---|---|---|---|
Client/Library | |||
< 1.5.35 | SHA-1 (no FIPS) | SHA-1 (Verify only) | Incompatible |
< 1.5.35 and OpenSSL 3.0.8 and env FIPS=true |
SHA-1 (partial FIPS) | SHA-1 (Verify only) | Incompatible |
>= 1.5.35 | SHA-1 (no FIPS) | SHA-1 (Verify only*), SHA-256 (FIPS) | SHA-256 (FIPS) |
>= 1.5.35 and env FIPS=true |
SHA-1 (partial FIPS) | SHA-1 (Verify only*), SHA-256 (FIPS) | SHA-256 (FIPS) |
>= 1.5.35 and –force-fips |
Incompatible | SHA-256 (FIPS) | SHA-256 (FIPS) |
To get FIPS, it is recommended to use the docker container builds.
Partial FIPS means that we are still violating FIPS by using SHA-1 hashing. All other cryptographic operations are using the FIPS module.
Verify only uses the exception that permits SHA-1 verification but not generation.
Verify only* may fall back to SHA-1 verification if SHA-256 negotiation failed, but typically will not use SHA-1.