Overview

A NestJS mono-repo containing functionality-specific libraries, apps and customisations (using the aformentioned libraries).

Available Libraries

  1. @suite5/common is the cornerstone of our libraries. It provides common classes (base entities, validators, configuration options, etc.) reused in almost every other module.
  2. @suite5/core, as its name imply, is the core module of the backend, and it should be used in every application. It provides authentication, user, organisation and department management, locations and feature-toggling.
  3. @suite5/data-checkin is responsible for data collection. It provides everything needed to create a data-checkin job and configure each one of its steps.
  4. @suite5/asset is responsible for handling assets (datasets, applications etc.). It provides asset management as well as indexing of assets to Elasticsearch.
  5. @suite5/access-control provides a set of tools for defining and enforcing authorization policies for assets.
  6. @suite5/data-model is responsible for the whole lifecycle (creating, updating, deprecating, indexing) of common data model(s).
  7. @suite5/kafka handles the interaction with an external Kafka service (creating users, creating topics, etc).
  8. @suite5/minio proxies any interaction with the object storage layer (creating buckets, generating pre-signed urls, keeping track of files stored, etc).
  9. @suite5/orchestrator is responsible for orchestrating the execution of asynchronous tasks (i.e. data-checkin job steps) and scheduling tasks to be executed in the future.
  10. @suite5/predictor acts as a proxy to an external engine to predict and suggest how user's data can be mapped to the common data model.
  11. @suite5/search provides a set of tools for storing and retrieving user's search queries, and retrieving data using those queries.
  12. @suite5/retrieval provides a set of tools to retrieve data from stored datasets and workflow results.
  13. @suite5/vault adds a way to store credentials to an external Vault service.
  14. @suite5/contract has the necessary functionality to handle the data acquisition process.