Competency and Skills Service – Competency Management
Experimental: 1.6.6
Release Candidate: 1.5.73
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 docsWhere 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 installnpm run testWithCoveragenpm 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.txtdocker-compose up --build to ensure the container can build.docker scout cves cass-cass > scan-node.txtdocker-compose -f docker-compose-alpine.yml up --build to ensure the container can build.npm run mochadocker scout cves cass-cass > scan-node.txtFIPS is supported both client-side and server-side in CaSS. Here is the relevant compatibility table.
Sources: https://openssl-library.org/post/2025-03-11-fips-140-3/
| –> Server –> | < 1.5.35 | >= 1.5.35 with OpenSSL 3.1.2 and –force-fips |
>= 1.5.35 with OpenSSL 3.1.2 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.