Skip to main content

Components

The QuickCase solution is built following a microservice architecture with loosely coupled components interacting with each other:

Diagram picturing QuickCase's 5 components and their interactions with external componentsDiagram picturing QuickCase's 5 components and their interactions with external components

Internal components

Tip

For Kubernetes-based deployments, a Helm chart is provided to deploy QuickCase as a single unit instead of individual components.

Definition store

Java application, exposing a Rest API, responsible for the management and storage of case type definitions. Storage is achieved using a provided PostgreSQL database instance.

The definition store is called by the data store to read definitions and by the admin UI to create and update definitions.

Data store

Java application, exposing a Rest API, responsible for the storage, progression and secured access of all case data. Storage is achieved using a provided PostgreSQL database instance.

The data store is called by the case UI for users to securely read and progress cases.

Attachment store

Lightweight NodeJS application, exposing a Rest API acting as a facade over the blob storage provider and enforcing access control requirements.

The attachment store is called by the case UI when users request the upload or download of a file.

Admin UI

NodeJS application, exposing a user interface for the management of definitions.

Case UI

Angular and NodeJS application, exposing a user interface for reading and progressing cases.

External components

For QuickCase Self-Hosted to operate, a few external components like databases and Identity providers are also needed. These requirements are exhaustively described on the next page.