Components
The QuickCase solution is built following a microservice architecture with loosely coupled components interacting with each other:
Internal components
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.