CASS

CaSS

Competency and Skills Service – Competency Management

Release Candidate: 1.5.69 Build Status
Supported: 1.4 Build Status
Supported: 1.3 Build Status
Supported: 1.2 Build Status

High level documentation
Developer documentation

Purpose of this Document

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:

CaSS Libraries

From GitHub

https://github.com/cassproject/cass-npm

NPM

https://www.npmjs.com/package/cassproject

Installation

Ubuntu/Fedora Linux:

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

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

Post Installation

To support open linked data, it is important that the objects created in CaSS have public, reliable URLs. For this:

Running Locally

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)

Getting things up and running

In a separate command line, if you want unit tests:

Generating documentation

Will be deposited in /docs

Running in myriad environments (requires Docker)

Where flavors are: ubuntu16, ubuntu18, ubuntu20, ubuntu18:13to15, standaloneWindows, standalone, testReplication

Running it like it’s in prod

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.

A note on Elasticsearch and 1.5

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.

Release Process

FIPS:

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.