Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Monolith is licensed on a per user per year basis.
Pricing information for Monolith can be found here: Pricing Page
When you purchase Monolith - your purchase includes a limit on how many active users you can have at any one time.
For Example: If you purchase Monolith with 5 active users, this means that you can have 5 active user accounts in Monolith. The users associated with these accounts can log into Monolith from anywhere and from as many different devices as they want.
Inactive users will not be able to access Monolith.
Account sharing is not allowed in our licensing terms, however, exceptions to this rule can be made on a case-by-case basis.
If you choose not to renew your Monolith subscription, your Monolith access will revert to "Read-Only" mode. You will still have access to your Monolith data, but you will no longer be able to add new data or edit current data.
Your data will remain in Monolith for up to a year, after a year, we may permanently destroy any data still stored within our servers.
An export of your data in Monolith can be requested at any time by making a request to support@monolithforensics.com.
The data export will consist of a SQL dump file and a ZIP file that contains files uploaded to Monolith.
Please allow up to 2 weeks to receive your data export.
Webinars every Wednesday at 10 AM CT!
Office hours are a weekly webinar hosted by Monolith Forensics owner and founder Matt Danner.
Feel free to join to ask questions, get some training, or request a demo of Monolith or specific feature.
The webinar is conducted over Zoom - you can register at this link:
There are a couple of steps to setup Monolith Desktop.
To download Monolith Desktop, go to the System section of the settings page and download the appropriate installer for you operating system (Windows or MacOS)
After installing Monolith Desktop and running it for the first time, you will be presented with an "API Mode" selection screen.
This screen allows you to connect Monolith Desktop to your Monolith Tenant, whether it is in the Cloud or On-premises:
For cloud hosted Monolith Tenants/Customers - keep the default selection as "Cloud". The region is defaulted to US/North America, but if you are a UK customer, change the region to "United Kingdom" and select submit.
This option ensures that Monolith Desktop will connect to the correct Monolith Server for your cloud deployment or region.
Additional Cloud regions may be added in the future.
For on premises customers - change the "API Mode" to "On-Premises". This mode allows Monolith to connect to an on-premises Monolith server that is running within your organization and network.
When you select the On-Premises option, you then need to enter your Monolith Server's API endpoint. This will typically be the IP address of your Monolith server, or a custom domain if you have one setup in your network.
The API endpoint must meet the following formats:
If Monolith Desktop can successfully reach the Monolith server, you will see a green check mark populate and the Monolith Login screen will load.
To reset Monolith's API connection settings, click the "Reset Monolith" button located on the Monolith Login screen. This will return you to the API mode selection.
Monolith can be accessed in two ways: Web Browser and Monolith Desktop.
Monolith can be accessed from web browsers such as Google Chrome, Firefox, and Microsoft Edge via one of the following URLs:
Note: All new trials start in the US/NA Monolith server, so if you are trialing Monolith from Europe, you should use the US/NA server. Once you become a customer, we will deploy your Monolith tenant to our UK server.
Monolith be used as a desktop application called "Monolith Desktop". This app can be installed on MacOS and Windows Operating Systems.
You can download Monolith Desktop here:
You can log into Monolith using your account email and password.
By default, all cloud users are required to use 2-Factor Authentication to login to their Monolith accounts. Monolith utilizes TOTP based 2FA, which means that users must have an authenticator application to use 2FA with Monolith. The following authenticator apps are recommended:
Google Authenticator
Microsoft Authenticator
On you first login to Monolith, you will be prompted to setup 2FA with the authenticator app of your choice. Open the authenticator app and scan the QR code presented by Monolith:
Once you have scanned the QR code, type in the 6-digit code generated by the authenticator app into the box at the Monolith Login screen.
For subsequent logins, you will be presented with a 2FA screen and asked to enter a 6-digit code generated by you authenticator application of choice.
If you have lost your 2FA device or replaced it, a Monolith admin user can reset the 2FA device on your account. Once reset, Monolith will prompt you to connect a new 2FA device at your next login.
For cloud customers, you can request that 2FA be disabled for your account - please make a request to support@monolithforesics.com.
For on-premises customers, you can disable 2FA from your user profile page.
2FA is a very important and standard security measure - we highly recommend you do not disable this feature.
Monolith can be deployed on-premises and in your IT environment
Log into Monolith using your organization's Single Sign On provider.
If your organization has purchased and setup SSO with Monolith, you will be able to log in with your SSO account.
When you type your email into the Monolith Login screen, Monolith checks your email domain and resolves it to your SSO provider. When you click the "Log In" button, you will be redirected to your SSO provider to authenticate. After authentication, you will then be redirected back to Monolith and given access to your Monolith Tenant.
Monolith utilizes Docker for on-premises deployments
Docker is a platform that uses OS-level virtualization to deliver software in packages called "containers". Docker is used to deploy, manage, and run containers within a variety of environments.
Monolith is deployed in on-premises environments using containers and Docker is recommended as the container management system to run and manage Monolith.
Monolith runs in a server-client configuration where users access and manage data via the Monolith desktop client or web application. A Monolith API server runs on a centralized host and handles HTTP requests from the desktop clients and web application. The API server communicates with a database to create, update, delete, and read data from the database.
The image above illustrates the basic setup of containers within an on-premises deployment. The containerized nature of Monolith allows for flexible and scalable on-premises deployment options.
This is a web server container that handles incoming requests from clients and proxies traffic to one of 3 containers: Monolith Web App,Monolith API, or the Relay App. This container can be configured to include custom domain TLS certificates.
This is the Monolith web application that can be access via a web browser. To access this application, you just need to navigate to the host system IP address or assigned domain name in a web browser - Ex: https://192.168.1.12
This container hosts an API server that can send authenticated requests for data to and from the Monolith and Relay web applications. This container connects directly to the MySQL server to store data and a file system to store files uploaded to Monolith.
The Relay app container runs the Relay application. Relay is a web-based request system that allows non-monolith users to submit requests for forensic services.
This container runs a MySQL database that stores data accessed and managed by users of Monolith and Relay. The MySQL database does not have to be a container inside Docker. You can use an external hosted MySQL database if you wish.
This is not a container, it represents your chosen file system component to store files that are uploaded to Monolith and Relay. This can be the file system on the host system, AWS S3 object storage, or a network file share.
Watchtower is an optional container that manages automatic updates for the other containers. Watchtower checks for container updates every 30 seconds. When an update is available, Watchtower downloads the new container images and replaces the current containers with new containers built from the updates container images.
How to manage your on-premises licensing for Monolith
Currently, your on-premises license to Monolith is managed within the ".env" file that is within your Monolith package deployment folder.
There are two values within the ".env" file that related to your Monolith License:
When the Monolith server starts up, it derives your license from one of these two values.
When both values are present, the MONOLITH_LICENSE_TOKEN value takes precedence.
The Monolith license token is a long string that is a securely signed token that contains your licensing information.
This method works in both online and offline environments and does not use the internet to operate.
The Monolith server derives your license details from this token.
This is the preferred method, because it does not rely on our licensing server to work and will keep your Monolith deployment operational even during internet outages.
A license token must be provided to you from Monolith support. These tokens expire on your annual renewal date and must be refreshed each year. Contact support@monolithforensics.com to get a new token.
The Monolith license key is a short, unique string that is associated with your Monolith customer account. Monolith uses this value to retrieve your licensing information from our online licensing server on the internet.
This licensing method will not work in air-gapped environments
To update your license, simply replace the License key or token value in your ".env" file with a new one and restart your Monolith Docker deployment.
You can restart your Monolith Docker deployment with the following commands:
Be sure to run these commands from the same directory as your ".env" file and "docker-compose.yml" file
When first logging into Monolith, here are the first steps you should take to get Monolith ready for your forensic work and evidence:
Setup your Organization Info.
Create user accounts for your team.
Set the formatting for case numbers, evidence numbers, & storage numbers.
Create & Customize form selection options:
Customize your Case Type selections.
Customize your Case Status selections.
Customize your Case Progress selections.
Customize Evidence Type Selections.
Customize Evidence Progress selections.
Customize Time Entry Categories to use with the Task Management System.
Customize Quality Assurance Issue Type selections.
Create and customize Quality Assurance checklists.
Create and upload evidence & storage labels with DYMO.
Create evidence locations.
Enter existing storage items.
Enter Forensic software.
These are the basic requirements for hosted Monolith on-premises
Docker or Docker Desktop is required for Monolith on-premises deployments. Installation instructions can be found .
The following hardware is required to properly run the Monolith API backend within Docker:
Microsoft Windows 10/11, MacOS, or Ubuntu 20 system
4GB of RAM
2-core CPU
At least 100 GB of storage (>500 GB recommended)
Monolith is not currently supported for Windows Server operating systems. This is due to lack of support for Docker installation on Windows Server.
To enable Monolith’s email capabilities, an email account is required with SMTP credentials:
SMTP host
SMTP port
SMTP user
SMTP password
These values are supplied to the Monolith API server/Docker container at run-time.
If you want to store Monolith files in AWS S3, you will need to have the following to integrate S3:
AWS Access Key
AWS Secret Key
AWS Region & Endpoint
Once you have purchased Monolith and are ready to deploy - you will be provided with a Monolith On-premises deployment package. This package will contain configuration files necessary to run the deployment.
The package will contain the following items:
.env
This is an environment file that will contain variables that are injected into your Monolith deployment at run time. This is where your licensing information will be location along with other settings.
docker-compose.yml
This is a Docker deployment configuration file. This file dictates how the various Monolith containers will be built and deployed.
This allows you to use a pre-defined configuration so that you don't need to build the Monolith Docker deployment from scratch.
init folder
This contains additional configuration files needed for successful deployment.
Docker configuration and deployment file
This file is used to define the deployment options for the various Docker containers that make up the Monolith on-premises deployment.
Unless you require an advanced deployment, you will not need to modify this file.
Note: Indentation matters in this file - if the indentation is not set properly, you may see errors when trying to deploy Monolith.
This file is used with the following commands to build, re-build, and remove the containers that run Monolith.
These commands can be used together to conduct a "hard" restart of Monolith.
Restarting Monolith in this way does not cause any data loss and should be used when you need to update your licensing from a license token.
Additional Docker commands can be reviewed on Dockers official documentation pages:
https://docs.docker.com/engine/reference/run/
Additional Docker compose commands can be reviewed on Docker's official documentations pages:
This is an environment variables file that is loaded into the Monolith Docker deployment at build/run time. These values determine various setup options and licensing information for your Monolith deployment.
The values are typically set for you when you purchase Monolith.
Make sure the file name is changed to ".env" from "env.txt".
This is a license key that allows for your Monolith deployment to get licensing information from our online license server. Using this value ensures that your Monolith deployment always has up to date license info.
This key will be provided to you upon purchase.
This is a signed token that contains licensing information for your Monolith purchase. This can be used to utilize cached license info without needed to query our licensing server for license info.
This is a good option for Monolith deployments that exist in air-gapped environments.
If this value is provided, Monolith will use this instead of the license key value.
This should be a long alphanumeric string. This value is used for various cryptographic operations related to access tokens, encryption, and session management.
This should be a long alphanumeric string. This value is used for various cryptographic operations related to access tokens, encryption, and session management.
This is the name of the MySQL schema that the Monolith API server should connect to.
This is the domain or IP address of the MySQL database host that the Monolith API server should connect to.
This is the MySQL user name that should be used for database connections.
NOTE: This should only be root if you are using the default MySQL container. If using an external MySQL database, you should provision a user account other than root to use here.
The port that should be used for database connections. The default MySQL port is 3306.
MySQL password used to establish database connections.
First name of initial Monolith user. Only required for first time setup/deployment.
Last name of initial Monolith user. Only required for first time setup/deployment.
Email of initial Monolith user. Only required for first time setup/deployment.
Password of initial Monolith user - this will be used for firs time login to Monolith. Only required for first time setup/deployment.
Initial tenant name for your Relay deployment. Only required for first time setup/deployment.
Organization name for your Relay deployment. Only required for first time setup/deployment.
URL slug for your Relay deployment. Only required for first time setup/deployment.
Initial tenant email for your Relay deployment. Only required for first time setup/deployment.
The Monolith API server runs in "cluster" mode. This allows multiple instances to run at the same time, which increases scalability. This value defaults to 1 and is disabled by default. You will likely not need to use this value, but contact support if you think this is needed.
This value determines whether Monolith will use a local file system or Amazon S3 to store Monolith files. Allowed values are "S3" or "Local". The default value is "Local". If you set this to "S3", you will also need to set the S3 access key values.
This value configures Monolith to use the correct AWS region with your S3 bucket.
The S3 bucket where you would like to store files uploaded to Relay.
The S3 bucket where you would like to store files uploaded to Monolith.
AWS access key to use S3 APIs for file storage.
AWS secret key to use S3 APIs for file storage.
Email host domain to enable email capabilities in Monolith.
Email port to enable email capabilities in Monolith. This value is typically 587.
User value to enable email capabilities in Monolith. May not be required if you are using an SMTP relay.
User password to enable email capabilities in Monolith. May not be required if using an SMTP relay.
These are the documented methods of installation for Docker
To Install Docker on Windows, you need to install Docker Desktop for Windows. This installer can be downloaded from here:
https://www.docker.com/products/docker-desktop/
To deploy Monolith on Windows, you will need to install the WSL package for Windows. This allows Windows to run Linux containers. During the Docker Desktop install, Docker typically prompts you to install this. If not, here is a direct link to download and install WSL:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
To Install Docker on MacOS, you need to install Docker Desktop for MacOS. This installer can be downloaded from here:
https://www.docker.com/products/docker-desktop/
To install Docker on a Linux OS, refer to the following Docker documentation for Linux installations:
Monolith On-premises deployments do not include a native backup solution.
The customer is responsible for creating and managing backups for data stored in the Monolith deployment.
The customer should set up a backup system that creates backups of the "data" folder maintained by the Monolith server. A backup solution for the MySQL Monolith database should also be implemented. The MySQL backup process should create something similar to SQL dumps of the databases stored by Monolith in MySQL.
This section will cover restoring a database backup of your Monolith MySQL database.
This restore process assumes you have previously created a SQL dump of your Monlith databse from MySQL. A SQL dump file is a plain text file that contains your database data in a SQL format.
MySQL has a concept called "schemas". Schemas are the data segements within MySQL that store tables and data. You can have any number of schemas within a MySQL database. Your Monolith data is stored within a single schema within MySQL.
Schemas are the data object that we will backup and restore from backups.
Recommended Tools:
MySQL Workbench
This is a free tool provided by the MySQL team to access and manage MySQL databases. It also has several useful utilities including database backup and backup import services.
Open MySQL Workbench
Ensure that Workbench has a connection to your Monolith database.
Open your Monolith database in MySQL workbench.
Select "Server >> Data Import" from the Workbench menu bar.
The import wizard should start at the "Import from Disk" tab - select this tab if its not selected.
Under "Import Options", check the radio button for "Import from Self-Contained file".
Use the file select browser to locate and choose your Monolith database backup, which should have a ".sql" extension.
(Optional) Select a default target schema or create a new one.
This is optional because your SQL dump file likely already has a directive to create a new schema with the correct name.
Click the "Start Import" button.
This process will create a new "schema" and populate it with tables and data from your Monolith database backup.
If the new schema has a different name from your original Monolith schema (database), then you may need to update your Monolith deployment configuration.
Setting up a custom domain for Monolith requires just a couple of item and steps:
Setup the domain that you want to use.
Create SSL certificates with any necessary intermediate certs that are required for the domain.
Add those SSL certificates to your Monolith deployment.
Update the docker-compose.yml file
Copy the SSL certs to your Monolith deployment folder.
If you require a more complex setup, contact us at support@monolithforensics.com.
This process will be different for everyone, but usually your IT department can establish a specific Domain for you to use to access your Monolith deployment in a web browser.
This is helpful because it allows you to use domain resolution in your browser instead of a plain IP address that points at your Monolith server.
This also lets you setup SSL that can be verified by your browser and create secure and encrypted web traffic between your Monolith users and the Monolith server.
Again, this process varies, but you will need to generate two SSL certificates that are associated with your custom domain. These certificate file comprise of a certificate file and a key file.
This is also a process that your IT department can help you with.
Before we can use the new SSL certificates, we need to update our Monolith deployment config so that it will override the built in self-signed certificates that Monolith uses by default.
Under the "nginx" block of the docker-compose.yml file, add the following line under "volumes":
The entire "nginx" block should look like this:
When using custom SSL certs, Monolith is looking for certificates with specific names - rename your SSL certs to the following file names:
Copy the SSL certs to "data" folder within your Monolith deployment, the final cert locations should look like this:
In order for Monolith to start using the new certs, we need to redeploy/restart the Monolith server so that it will indest the cert files.
Open a terminal or command prompt in the location of the docker-compose.yml file.
Enter the following commands, in order, to re-deploy and restart the Monolith server:
Now, Monolith will start using these certs and your custom domain to create a secure and encrypted connection between the server and your clients systems; both in the web browser and the Monolith desktop client.
If you have deployed Monolith with the Watchtower container, the Monolith API server, Monolith web app, and Relay web app will automatically update if the host system has internet access.
Watchtower checks for updates to these container every 30 seconds.
You may disable these automatic updates by simply removing the Watchtower container from your Monolith deployment.
If you don't want to wait for Watchtower or if you want to buld updates into a recurring script, you can force an update with a couple of commands.
The following commands use Docker compose to pull down the latest Monolith images, and rebuild the entire Monolith deployment with the new images.
Be sure to run these commands from the same directory as your Monolith docker-compose.yml file.
You can imbed these commands within a bash or batch script if you would like to implement your own scheduled updates instead of using watchtower.
You can also update the Monolith server containers manually. This can be useful in air-gapped environments or if you do not wish to deploy with automatic updates.
Run the following commands to download the latest container images for Monolith deployment or updates:
Run the following commands to export the container images to TAR files that can be transferred to the the host running the Monolith server:
You can now transfer these TAR files to the host system that runs your Monolith deployment.
To import the TAR files, run the following commands on the host system that is using Docker to deploy the Monolith containers:
To restart Monolith with the new containers, run the following commands on your Monolith host and from the directory that includes your docker-compose.yml file:
Default Monolith deployments store files on the local file system of the host that is running Monolith's Docker containers.
If you want to use an external file share, you will need to adjust the docker-compose.yml file to include configuration settings for the file share you would like to use.
To connect to a basic Windows file share, add the following configuration to the bottom of your docker-compose.yml file:
Replace your_username
, your_password
, your_domain
with the appropriate credentials for accessing the CIFS share. your_domain
is not required if your share does not have a specific domain, so you can omit this value.
Replace //<SHARE_IP_ADDRESS>/share
with the network path to your CIFS share, but append the "/data" location at the end.
To utilize this new volume, we need adjust the current volumes listed in each service block of the docker-compose.yml file.
The following demonstrates the final docker-compose.yml file once a CIFS share has been configured:
Deploying Monolith with the default configuration is a simple matter.
Install Docker -
Pick a location to store your on-premises package files.
Open a command terminal.
Navigate to the location of your Monolith On-premises package files.
This is the folder that contains the .env and docker-compose.yml files.
Run the following command to download, deploy, and run the Monolith containers referenced in the docker-compose.yml file:
docker compose up -d
This will download the Monolith container images which may take a few minutes.
Once downloaded, the containers will launch and build the initial Monolith system.
You can then navigate to Monolith in a web browser using the IP address of the host system running Monolith:
https://{host_server_ip}
To remove the docker containers, you can use the following command:
docker compose down
NOTE: If deploying Monolith inside of a virtual machine, you must enable "nested virtualization" for Docker to work.
Once deployed, Monolith will store data in a folder called "data". This folder contains log files, files uploaded to Monolith, files uploaded to Relay, and database files generated by MySQL.
This data folder is important to maintain and create backups as the data that you store in Monolith will reside in this location.
When running MySQL in Docker or as a container, you may need to update the version of MySQL from time to time.
To update MySQL within Docker using Docker compose, you need to update your "docker-compose.yml" file.
Find this line in the MySQL block:
Update the MySQL version in this line to the next version:
This will tell Docker which version of MySQL to use when deploying Monolith.
Redeploy Monolith using the standard Docker compose command syntax:
This will stop the current Monolith deployment and restart it fresh containers. You should see the new version of MySQL download as a Docker image during this process.
Once redeployed, MySQL will go through a breif process of updating itself that may last a minute or two, so it may take a minute or two for Monolith to be available for use.
After completing steps 1 and 2, you should have a new version of MySQL installed and deployed for use with your Monolith deployment.
All of the standard tables in Monolith have several features to help users find and export data quickly.
To sort rows within a Monolith table, click the column header. Monolith will then sort the data based on that column.
Table columns can be resized by hovering over the edge of the column that you wish to resize. Then just click and drag the column to the desired width.
Columns can be reordered by clic and dragging the column header to the desired position in the table.
Columns can be hidden or shown by using the "Column Selector" which is a button that is typically located in the top right menu of a table. This button has an icon that looks like 3 vertical columns.
Most tables in Monolith are "paginated" which means that only a certain number of records are loaded at one time. The default is 20, but you can use the page size selector to increase that amount to 100.
The table may also have a Page Selector that allows you to navigate to specific pages within the table data.
Table data may be searched if there is a search box associated with it. To search the table data, just enter your search string into the text box and press enter.
Most tables can be exported to a Microsoft Excel document. to export the table data, use the table export button which is usually located in the top right table menu.
The table export is a "What you see is what you get" export, which means that the only columns and rows included in the export are based on the filters and table orientation.
All pages are included with the export.
The Query Filter is a system used throughout Monolith that allows you to create complex queries for data using a simple user interface.
The filter uses conditional logic to construct a query that will result in records that match the filter.
Example:
The above filter has three conditions:
Open Date is sometime after January 1, 2023
The Case Lead is Matt Danner
The Case Type is Consultation
This filter combines those three conditions into an "exclusive" filter, which means that a record must match all three conditions. This can also be referred to as an "AND" statement:
"Show me all cases WHERE the open date is after January 1, 2023 AND the case lead is Matt Danner AND the case type is Consultation."
The query filter options are defined based on the type of records that your are filtering. So case data will have different filter options from evidence data.
Each condition within the filter may have different options as well.
The following condition filters are available"
Date filters
Text Filters
Multi-select Filters
If a user's email has changed and you need to update it in Monolith, the change must be made directly in the Monolith database.
Here are the steps to make that change.
Install MySQL Workbench, open it, and create a connection to your Monolith database.
Open the Monolith database connection in MySQL workbench.
Navigate to your Monolith Database under the "schemas" tab and expand the schema and tables list. The Monolith db is usally called "monolith_db".
Scroll to the "users" table and open the table in Workbench to reveal the user records.
Find the user record that you want to update and click into that user's email column. Then type in the new email.
Click the "apply" button at the bottom right in Workbench, then click apply again in the confirm dialog that appears.
Once this is completed, the user's email has been updated and they can start logging into Monolith with that email address.
Filtering a table is handled by the Monolith Query Filter, which is discussed .
To use an external database instead of using the MySQL Docker container that is included with the default Monolith deployment, just set the following values in the .env file to the connection details for your external MySQL database:
Monolith works exclusively with DYMO printers to print labels. Here are printer model recommendations:
Monolith supports integration with various hardware devices such as Signature pads, USB barcode scanners, and Dymo Label Printers
Monolith works well with USB based scanners. Here is the scanner we recommend to use with Monolith.
Tera Pro 8100 Wireless Barcode Scanner
This scanner conectst via Bluetooth or USB dongle, works with Windows and MacOS, scans barcodes and QR codes, and has several other useful features.
The first step of configuring your DYMO printer with Monolith is to ensure you have the latest DYMO software installed on the machine that is using Monolith.
Latest versions of the DYMO software can be downloaded here.
MacOS:
After install, ensure that the DYMO.WebAPI.Mac.Host software is running in your menu bar (it is a small blue DYMO connect icon on the menu bar on the top of your screen.
If it is not running, find "DYMO.WebAPI.Mac.Host" in your Applications folder and launch the program.
Once running, when you go to print labels in Monolith you will see your DYMO printer as an available printing option.
When troubleshooting DYMO issues, we have found a complete uninstall and re-install fixes most issues. It's essential to remove all of the supporting files and certificates before re-installing the DYMO software.
Remove printer(s)
Open System Preferences > Printers & Scanners. Click the – button to remove the printer. (Do this for each DYMO printer shown)
Delete Application and Folder
Go to your Applications folder and delete all instances of DYMO applications
Open the Library/Extensions folder and Delete DYMOUsbPrinterClassDriver.kext, if found.
Open the Library/Frameworks folder and Delete the DYMO folder, if found.
Open the Library/LaunchAgents folder and Delete com.DYMO.dls.webservice.plist, if found.
Open the Library/LaunchDaemons folder and Delete com.DYMO.pnpd.plist, if found.
Open the Library/Printers folder and Delete the DYMO
Delete all DYMO Certificates from Keychain
Open the Utilities folder (Finder>Go>Applications>Utilities)
Double-Click Keychain Access to open keychain
Type “DYMO” in the search field on the upper right
Right-Click the certificate item (if found) and select Delete
Type “localhost” in the search field on the upper right
Click any item that appears and verify its properties show “issued by DYMO …” If so, then Right-Click and select Delete
After these steps are complete, re-install your DYMO software and try printing from Monolith.
All customers are assigned a Monolith "Tenant" - a tenant is a logical unit that separates every set of customer data into their own silos.
In Monolith, each customer is given thier own database and logical file storage area in our block storage. This means that data you enter into Monolith is not commingled with data from other customers.
The same idea applies to files uploaded into Monolith. Files stored in Monolith are stored in thier own logical silo based on the cutsomer tenant.
This Multi-tenant infrastructure also means that it is very easy to get a copy of your data - just make a support request!
All data stored in Monolith is encrypted at rest using AES-256 bit encryption algorithms. This includes data stored in databases, on servers, and in file object storage.
All data in transit to, from, or wihtin Monolith is also encrypted using HTTPS and TLS encryption standards/protocols.
While this data is encrypted, the encryption is controlled by us, which means a few select people from the Monolith team have access to customer data. This access is only granted for support and maintenance purposes.
Monolith has an internal Security Operations Policy and Data Management Policy that covers our internal standards in more detail. If you would like to see it, please submit a request to support.
Our Monolith infrastructure is currently hosted in AWS.
More specifically, we currently have 3 cloud infrastructure endpoints, which are all hosted on AWS: US East, London (UK), and Sydney (Australia)
Our United States endpoint is currently hosted in the AWS GovCloud East Region.
The AWS GovCloud infrastructure has some specific security policies in place that differs from normal AWS regions. These policies can be reviewed at the link below:
Monolith data within our databases is backed up every 24 hours. We keep a 30 days of backups which allows us to recover data from up to 30 days in the past.
We also typically create manual database backups for any major updates that require database maintenance.
These backups are stored in an encrypted format within a separate region from the current database. This allows for recovery of data in the event of an AWS region outage.
Files uploaded to our Object Storage system implement typical object storage versioning. This means that a deleted file can be recovered by restoring one of its versions. A new file version is created and stored in the event of a file overwrite, which can occur when a file with the same name and path of another file is uplaoded.
These file versions are kept for up to 90 days after deletion.
The following diagram illustrates the basic cloud infrastructure of the Monolith cloud environment. This is just an illustration to show how nodes communicate and share data/information:
The Monolith cloud infrastructure has network and system level scans that occur every 24 hours to test for network and system vulnerabilities. These scans produce reports that can be review for any issues or characteristics that are not inline with our security baseline.
All of our endpoints, including employee systems, are monitored using Crowdstrike Falcon. This provides continious 24/7 monitoring of our endpoints for threat detetion and allows for immediate remediation.
We conduct annual pentests of Monolith that test for common infrastructure vulnerabilities, configuration issues, and application vulnerabilities. These pentests are conducted by an independent 3rd party. The testing targets our development and staging environments and not the customer facing production system to avoid interrupting services and prevent any potential access to customer data.
Customer may request a copy of our latest pen test reports by contacting support at support@monolithforensics.com
Various system logs are currently managed by logging services within AWS and Datadog. These logs are currently aggregated within Datadog, which allows for periodic review.
Single sign on is an authentication process that allows a user to log into Monolith using thier organization's authentication mechanism and identity management system. This authentication process is used in place of Monolith's default login system.
For example, if configured, a user may login into Monolith using Microsoft Azure AD credentials instead of using the default Monolith user credentials.
SSO integration with Monolith uses the SAML 2.0 open standard to connect to your identity provider.
Identity and service provider are common terms used when configuring an SSO connection. The identity provider is the service your organization uses to manage it's employees' credentials to provide access to IT resources.
The service provider is the vendor or software that relies on the identiity provider ro authentication and identification.
In this case, Monolith is the service provider.
When logging in with SSO, the Monolith MFA process is not used - MFA is passed onto the identity provider that is used in the SSO process.
When a user authenticates into Monolith via SSO, a Monolith session is created that matches our default session standards.
To integrate SSO with Monolith, you must have purchased an Enterrpise license to Monolith.
In order to setup SSO with Monolith, your organization should provide a SAML metadata file that is in XML format. This metadata file will contain specific information related to the SSO connection with Monolith that we need for integration.
Monolith will then provide your organization with 2 key pieces of information to complete the SSO connection:
ACS URL:
https://monolith-app.monolithforensics.com/api/auth/saml/acs/{{UNIQUE ORG ID}}
Service Provider Entity ID:
https://monolith-app.monolithforensics.com/{{UNIQUE ORG ID}}
These values are used by your identity provider to create an SSO connection with Monolith.
In order for Monolith to properly identify the user after SSO authentication, we need the user's email to be included with the SAML response.
This is typically included as a "NameID", but may also be added as an "email" attribute.
To setup SSO with your Monolith account, please contact support: support@monolithforensics.com
Monolith can be integrated with Topaz Signature tablets.
Topaz T-S460-HSB-R model signature pad
Other Topaz pads may work, but have not been tested.
You must install the Topaz SigWeb software on the host system to use this feature. You can download the software from the Topaz website: https://topazsystems.com/sdks/sigweb.html
This feature only works on Windows systems.
This is an example of the standard report that Monolith has generated automatically. This is the templated form. It contains examples of how to use template variables, loop syntax, tables, and evidence photos.
Monolith allows you to make use of report templates, so you can create any reports you wish based on data within a Monolith case.
The template document must be a Microsoft Word document (DOCX).
In order to use a template, you must insert placeholders that Monolith recognizes as case variables that can be replaced with case data:
Be mindful of the placement of spaces within the template syntax - spaces matter.
Here is standard syntax for inserting basic values into a template -
Please ensure that there is a space at the start and end of the variable name.
At the time of report generation, Monolith will replace this template variable with the chosen data from the case:
Some data in a Monolith case consists of a list of items. For example, you may want to reference data from evidence items associated with a case. You may have ten evidence items in a case and you want that evidence data to be included in your templated report.
To do this, we need to use some special syntax to loop through the list of evidence items and output each item's data into the template report.
Here is the basic syntax to loop through a list of items in a template document:
The above syntax will loop through a list of evidence items (stored in the "evidence" variable} and output a vertical list of evidence numbers.
Loops are a very powerful way to create complex report templates and display just about any data that you want.
There is special syntax used to iterate through table rows - similar to the looping syntax above, you may want to iterate through a list and create table rows with data.
Lets create a table that contains rows for each evidence item and columns for the evidence number and evidence provider (manufacturer, make, etc...)
Given the following evidence data passed to the template from a case:
Template Syntax for table -
Generated Document Result -
The "tr" prefix denotes that we are creating a loop through table rows.
You'll notice that the table rows that have the start loop syntax and end loop syntax are not included in the final rendered table.
Using this syntax you can create tables with templated lists pulled in from Monolith.
There is more syntax available for templates, but the item listed about are the most common. If you need help with this or have more questions, reach out to us at support@monolithforensics.com.
In Monolith, storage items are considered to be devices that are used for the purpose of storing forensic data that has either been collected, processed, or provided.
External Hard Drives
USB Drives
Network Attached Storage devices
FTP Servers
Cloud Storage Systems (AWS, Google Drive, etc...)
Forensic Images
Smartphone Extractions
Case Data
Forensic Reports
First, everything in Monolith is considered evidence, but for the puposes of organization and management Monolith tracks evidence and storage items separately.
Evidence typically represents the original source of forenisc evidence or data. Usually, this includes hard assets like smartphones or laptops and soft assets like email or cloud accounts. You should track anything that is considered as the original or "best" evidence as an evidence item.
Storage represents the vessel that collected forensic data is stored on. So when tracking storage items in Monolith, you are essentially tracking all the device you use to store forensic data.
Monolith tracks two categories of storage items: "General" and "Assigned".
General storage items are meant to represent large storage arrays that are used as a permenant cache for all case data. This is typically a NAS array that stores pristine copies of all your case data and forensic images. It is also a fixed asset that usually stays in the lab and does not move.
Assigned storage items represent storage that is associated with a specific case and stored very specific data. These devices are usually smaller and portable devices that move around a lot and may even be wiped, destroyed, or recycled at the end of a case or matter.
General Item Rules:
Cannot be assigned to a case.
Monolith does not track chain of custody for these items.
Tracks data from multiple cases.
Assigned Item Rules:
Must be assigned to a case to use.
Can only track data from one case.
Chain of custody is only logged when assigned to a case.
Can be removed from a case and reused/re-assigned.
Removing from a case will destroy its chain of custody and unlink any tracked acquisitions.
There are two ways to assign a storage item to a case: Create or Assign.
You an create a storage item from the "Storage Items" tab of a case. This will both create the new item and assign it to the case at the same time.
You can also assign a storage item that already exists to the current case. This option is available in the "Storage Items" tab of a case and in the "Actions" menu as shown in the screenshot below.
These variables represent data contained within a report instance of a case.
Currently, the summary and analysis variables do not include any rich text formatting like bold, bullets, or underline. Pasted images are also not included in the template when generated.
{{ report.summary }}
This is the report summary data that was entered into the summary tab of a Monolith case report.
{{ report.analysis }}
This is the analysis data that was entered into the analysis tab of a Monolith case report.
{{ report.name }}
This is the name of your report instance.
These are template variables that reference your organization information entered into Monolith.
{{ org.name }}
Name of your agency, company, or organization.
{{ org.address }}
Street address of organization.
{{ org.city }}
City location of your organization.
{{ org.state }}
State or province of your organization
{{ org.zipcode }}
Postal code of your organization
{{ org.email }}
Email set for your organization.
{{ org.website }}
Website URL set for your organization.
These are variables that reference the currently logged in Monolith user.
{{ user.first_name }}
First Name of user. (Jane)
{{ user.last_name }}
Last name of user. (Doe)
{{ user.full_name }}
First name and last name combined. (Jane Doe)
{{ user.email }}
User email address.
{{ user.title }}
User title set in Monolith.
{{ user.office }}
Office location that the user is assigned to.
{{ user.user_id }}
Integer based user id stored by Monolith.
These are variables that contain data related to the current case you are generated a report for.
{{ case.case_id }}
Number
Integer based, unique id set by Monolith for the case.
{{ case.uuid }}
String
String based, unique id set by Monolith for the case.
{{ case.case_number }}
String
Case number for the case.
{{ case.case_name }}
String
Case name/reference set for the case.
{{ case.case_open_date }}
Date
Case open date in the format "YYYY-MM-DD".
{{ case.case_closed_date }}
Date
Case closed date in the format "YYYY-MM-DD".
{{ case.last_activity_date }}
Date
Case last activity date in the format "YYYY-MM-DD".
{{ case.case_status }}
String
Current status of case.
{{ case.case_type }}
String
Current case type.
{{ case.case_progress }}
String
Current progress status of case.
{{ case.description }}
String
Description of the current case.
{{ case.case_lead }}
{user_id, first_name, last_name, full_name, email, title}
Properties related to the user assigned as a case lead.
{{ case.custom_field_id }}
{name, value}
Case custom field value - replace 'id' with custom field id number.
These are variables that contain data related to evidence items within a case.
Remember - the evidence object within a template is a list of evidence items. To use this data in a template, The values must be inside a loop:
Evidence photos are stored in an array/list and must be referenced within for loop syntax.
{{ item.evidence_id }}
Number
Unique ID of evidence
{{ item.uuid }}
String
Unique ID of evidence
{{ item.evidence_number }}
String
Item evidence number
{{ item.evidence_type }}
String
Type of evidence
{{ item.provider }}
String
Service provider/manufacturer
{{ item.item_name }}
String
Item name
{{ item.capacity }}
Number
Size of item
{{ item.capacity_unit }}
String
Size units: KB, MB, GB, TB
{{ item.size }}
Number
Size of item
{{ item.size_unit }}
String
Size units: KB, MB, GB, TB
{{ item.description }}
String
Description of item
{{ item.progress }}
String
Progress status of item
{{ item.created_on }}
Timestamp
Creation Timestamp
{{ item.linked_contact }}
String
Name of linked contact
{{ item.evidence_photos }}
[{name, image}]
Array/list of evidence photos
{{ item.custom_field_id }}
{name, value}
Custom field value - ID is a number that uniquely identifies a custom field.
{{ item.coc }}
List of chain of custody records for this evidence item.
The chain of custody records for an evidence item can be accessed by using the {{ item.coc }} variable listed above. The example below shows how to access COC records for each evidence item:
{{ record.type }}
string
Type of COC record: Intake, Release, Move, etc...
{{ record.custody_to }}
string
Person or location that received the item.
{{ record.custody_from }}
string
Person or location that provided the item.
{{ record.timestamp }}
string
UTC timestamp of COC event.
{{ record.reason }}
string
Notes or reason provided for COC event.
These are variables that contain data related to acquisition items within a case.
Remember - the acquisitions object within a template is a list of acquisition records. To use this data in a template, The values must be inside a loop:
{{ item.acquisition_id }}
Number
Unique ID of item.
{{ item.uuid }}
String
Unique ID of item.
{{ item.name }}
String
Name of item.
{{ item.description }}
String
Description of item.
{{ item.size }}
Number
Size of item in numbers.
{{ item.size_unit }}
String
Units of item size: KB,MB,GB,TB.
{{ item.format }}
String
Format of acquisition Ex. E01, DD, ZIP.
{{ item.type }}
String
Type of acquisition: Ex. File System, Physical, Chip-off.
{{ item.status }}
String
Active or Deleted.
{{ item.acquired_on }}
Date
Date of acquistion.
{{ item.created_on }}
Date
Date of record creation.
{{ item.acquired_by }}
{full_name, user_id, email, title}
The user that acquired this data.
{{ item.linked_contact }}
{name, contact_id}
The person that this acquisition is associated with.
{{ item.evidence }}
{evidence_id, uuid, evidence_number}
Evidence linked to acquisition.
{{ item.tool }}
{name, version}
Software uses to create acquisition.
{{ item.storage }}
{storage_id, uuid, storage_number}
Storage item where acquisition is stored.
{{ item.duration }}
{hours, mins}
Time spent creating acquisition.
{{ item.custom_field_id }}
{name, value}
Custom Field Value
Each of the status tabs can be used to navigate through the items being audited.
Auditing an item typically involves at least two procedures:
One type of audit requires the auditor to compare the location of the item listed in Monolith with its actual location in the forensic lab or designated evidence storage.
For Example, consider the following item:
According to Monolith, this item is currently located within the Calgary office, at the Evidence Room group, and at the AAA location.
Verify the location by finding the physical item in your posession and check if its actual location in reality matches the location recorded in Monolith.
The other type of audit requires the auditor to verify all the item's details and not just the location. This type of audit requires more work but can be useful in maintaining accurate data in your Monolith database.
If the item's location or other details are incorrect, use the status selector of the item to mark it as "Failed". This will open a meu where you can enter a note about why the item failed.
You can then fix the item right away by updating the location or details in Monolith, or you can wait until you have audited all items first.
Once the status update is submitted, the audit item card is moved to the "Failed" tab.
If you determine that the details and location of the item are correct, you can then mark the item as having passed its audit.
This may also occur after you have failed the item and then updated the item with accurate information.
The process to pass an item is identical to failing an item. You simply update its status to "Passed" and enter a note about why it passed.
When updating an audit item's status, the audit method will update whenever you pass or fail an item.
The audit methods currently used are "Manual" and "Scanned". Using the status selector to update the item's status will set the audit method to "Manual" as it represent that the auditor manually passed or failed the item without using a scanner.
The "Scanned" method is discussed in more detail here: Using a scanner
The audit logs record each time and audit item's status is updated. These logs include a timestamp, auditor, and the notes entered at the time of audit.
These logs can be used for documentation or to keep track of why items did not pass an audit and then repair the items as needed.
The audit logs can also be viewed within the audit items detail's page.
Here is an example of the audit logs from this evidence items details page:
View information about individual clients associated with your organization
On the left hand side of the clients page you can view and edit all of the details associated with your client.
At the top of the client details section you can also print labels using the information in client details
You can also see a table view all of the cases associated with this client in two views:
My Associated Cases: Cases associated with this client that you are assigned as a user.
All Associated Cases: Administrator view for all cases associated with this client.
Administrators can also delete a client from the client page.
View clients associated with your organization
In this section you can see a list of all clients associated with your organization in a table view.
From this view you can also create new clients by clicking the "New Client" button above the clients table.
The main audit view contains two tabs for navigation.
Audit Items - This is where the audit process takes place and contains the audit details and items.
Audit Logs - Contains a table of logs related to auditing items.
This sub-tab contains the details about the audit you are viewing.
This section shows you the current status of the audit, "Open" or "Complete", along with other details such as the audit due date, assignment, and filter used to select the audit items.
The remaining tabs: All, Pending, Passed, & Failed, list the audit items included with the audit. The items are group by thier current status.
These tabs are used when conducting the audit process.
Currently, audits are only accessible by Monolith user with the "Admin" role. This will likely be updated in the future.
Audits in Monolith can be viewed by clicking the "Audits" section in the Monolith sidebar under "Evidence Management".
Within the "Audits" section, audits are listed in a standard Monolith table.
An audits can be viewed and accessed by clicking the name of an audit within the table, which should be highlighted as a blue navigation link.
Use the "+ New Audit" button to begin creating a new audit.
The above screenshot shows the Audit Creation Menu:
Audit Name - This is the name of the audit, enter something simple and descriptive of the audit.
Assignee - This is the Monolith User/Person that will be assigned to run or administer the audit.
Start Date - This is anticipated start date of the audit.
Due Date - This is the expected due date of the audit.
Item Type - Select the type of items that will be included in this audit. Currently only Evidence and Storage items can be selected. You can only select one option.
Description - Provide a detailed description of the audit so that other users will know what this audit is for.
Cancel - Closes the menu and cancels the audit creation process.
Create Audit - Submits the completed form and creates a new audit with the supplied parameters.
When conducted an audit of items your organization is tracking, you will likely only want to audit a subset of all the items in Monolith. For example, you may only want to audit items from a specific year or quarter, or items of a specific type or location. The audit filter allows you to do this.
Upon making a selection within the "Item Type" field, a new section within the audit creation menu will appear:
This filter will match the query filter you have seen in the Evidence and Storage items tables. Depending on the item type you selected, the filter will contain fields for either evidence or storage items.
You can apply any filters that you want, and this will dictate which items will be included in the audit you are creating.
The example filter below will include any evidence items that are "Smartphones" and were created in 2023:
If you do not apply a filter, all items will be included in the audit.
Upon clicking the "Create Audit" button, the audit will be created and will appear in the audit table:
As you can see in the screenshot above, this audit includes 29 evidence items based on the filter that was applied.
Lab Management options allow you to manage lab equipment and software subscriptions for your forensic lab.
View, Edit, Delete and export a list of all of your software products
The Forensic Software table allows you to manage your software subscriptions including tracking details like purchase date, expire date, and cost. From this view you can also export the details of this table to an excel document.
Your equipment list to an excel document by selecting the Download option from the table menu.
All of the columns you have selected in your table view will be shown in your exported excel document.
You can add new software to your list by clicking the "New Software" button from the table view.
You can include details such as Vendor, Edition, Purchase Date, Expire Date, Cost, and Location.
You can also edit all of the details of your software items by opening a flyout menu from the table view.
From the flyout menu you can delete Software Items.
Customize your Monolith Account
In this section you can add additional details to your organization's profile including name, address details, contact information, and website.
Here you are also able to change the default Monolith logo to the logo of your organization.
Manage your lab equipment
The Equipment table allows you to manage your lab equipment including purchase date, costs, and locations. From this table you can also export the details of this table to an excel document.
Your equipment list to an excel document by selecting the Download option from the table menu.
All of the columns you have selected in your table view will be shown in your exported excel document.
You can add new equipment to your list by clicking the "New Equipment" button from the table view.
You can include details such as Vendor, Model, Serial Number, Purchase Date, Cost, and Location.
You can also edit all of the details of your equipment items by opening a flyout menu from the table view.
From the flyout menu you can delete Equipment Items.
Configure email notifications
Monolith supports email notifications for assignments of tasks and cases.
Manage your relay users
Relay can be used by any internal or external party interacting with your lab. Relay users do not need to be Monolith users and they do not require a Monolith user license. There is no limit to the number of Relay users you create.
You can view, invite, and search for current users from this view.
By selecting a user from this screen you can edit that user's details, remove that user from your Relay Tenant, and grant or remove admin permissions for that user.
You can invite new users by selecting the "Invite User" button from the "Relay Users" table. You will be prompted to enter that user's email address.
Below is an example of an email invite to relay.
After accepting an invite users will be directed to register as a Relay user. An invitee must set up their account to access Relay.
From the Access Requests tab, you can view all of your pending Relay user invites. They will remain pending until the invitee completes the user registration process.
Coming Soon
In this section you can configure the details that your Relay Tenant will display to users.
Tenant Logo: Select the logo that will display in Relay
Tenant Name: Name that will display for your organization in Relay
Relay URL slug: The URL identifier for your relay tenant. For example, if we use the slug "my-relay-slug" the Relay URL will be:
https://relay-app.monolithforensics.com/my-relay-slug
Tentant Email: The default email for your relay tenant. All notifications from Relay (new users, request, etc...) will be sent the this email.
Edit instructions for users making requests
In this section you can edit instructions that will be shown to the requester before they make any requests in Relay.
View account information, access desktop client, and set date, time, and currency formats
Organization profile: Information can be changed in the Organization Info section.
Subscription Info: This section gives details about your licenses, subscription expiration date and storage usage. In this view you can also see your relay URL and current workspaces connected to your account.
If you would like to use Monolith as a desktop application, it can be downloaded from this section. We currently offer desktop applications for Windows and MacOS.
Your selected format options will appear as the default throughout Monolith.
Set naming conventions for Case, Evidence, and Storage items
In this section, Monolith allows you to customize your Case number, Evidence number, and Storage number format.
Upload DYMO Labels to use with evidence, storage items, or for people
Click the "Add Label" button to upload a .dymo label file Monolith.
Monolith fields for your organization's info (set in Organization Info), Evidence, Storage, People (Clients and Contacts) can be used as variables for custom DYMO labels.
Audits allow your team to reconcile physical items under your control with their digital references in Monolith.
You can create audits to check and verify the locations and details of items currently recorded within your Monolith database.
View, Create, and Delete your Case Statuses
In this section you can view all of the Case Statuses associated with your organization. This is also where you can create new Case Statuses and delete your current Case Statuses.
The "Active" and "Closed" statuses are required by Monolith and cannot be altered or deleted.
Select the "Create Case Status" button and enter the name of the Case Status you would like to create.
You can also delete Case Statuses from this section.
When deleting a Case Status, you must re-assign the cases associated with that status to another pre-existing Case Status.
View, Create, and Delete custom Case Types
In this section you can view all of the Case Types associated with your organization. This is also where you can create new Case Types and delete your current Case Types.
Select the "Create Case Type" button and enter the name of the Case Type you would like to create.
You can also delete Case Types from the Case Types Section.
When deleting a Case Type, you must re-assign the cases associated with that Case Type to another pre-existing Case Type.
Customize your Evidence Progress Bar
Every Evidence Item in Monolith has a progress bar that illustrates the current stage of a particular evidence item. See also Case Progress.
The current progress status for an evidence item can also be found under the Evidence Details section on the left sidebar of that item's page.
In the Evidence Progress section you can reorder, add, and delete these evidence progress options to best reflect your organization's workflow.
You can reorder your current Evidence Progress Items by dragging and dropping them into place. Your timeline will display the order of items going from top to bottom.
Select the "Create Evidence Progress" button to create a new progress item. By default, this item will be added to the beginning of the list.
Select the Delete button to the right of the item you would like to delete.
When deleting a Progress Item, you will be required to reassign the progress status of the evidence items associated with the progress item you are deleting.
Customize your Case Progress Bar
Every case in Monolith has a progress bar that illustrates the current stage of a case. See also Evidence Progress.
In the Case Progress section you can reorder, add, and delete these case progress options to best reflect your organization's workflow.
In this section you can reorder your current Case Progress Items by dragging and dropping them into place. Your timeline will display the order of items from going from top to bottom.
Select the "Create Case Progress" button to create a new progress item. By default, this item will be added to the end of the list.
Select the Delete button to the right of the item you would like to delete.
When deleting a Progress Item, you will be required to reassign the progress status of the cases associated with the progress item you are deleting.
View, Create, and Delete custom Evidence Types
In this section you can view all of the Evidence Types associated with your organization. This is also where you can create new Evidence Types and delete your current Evidence Types.
Select the "Create Evidence Type" button and enter the name of the Evidence Type you would like to create.
You can also delete Evidence Types from the Evidence Types Section.
When deleting an Evidence Type, you must re-assign the evidence items associated with that type to another pre-existing Evidence Type.
Capture and track information that is unique to your organization.
From the custom fields section you can create, edit, delete, and enable custom fields for your Monolith tenant. Monolith currently supports custom field items for: Cases, Evidence, Acquisitions, Inquiries and Storage.
Open the collapsable section for the category of custom field you would like to create (for example Custom Cases Fields).
Creating Custom Fields Options
Field Name (Required): The display name of your custom field
Is Required (Required): A yes/no option to indicate whether this should be a required field in Create and Edit modals for this category.
Editor Type(Required): Select whether you want this field to be:
Textbox - Regular text field
Date - Provides a date selector dropdown
Drop Down Menu - User's can select an item from a dropdown list
Tag Box - User's can select multiple items from a dropdown list
Description: Populates placeholder text in the input box associated with your custom field in the category's Create and Edit modals.
Enable/Disable: Determines if custom field will appear in Create and Edit Modals.
Disabling a custom field will not remove it from items that have been assigned a value for that field. For example, if you have an Evidence Custom Field called "Agency ID" that has been disabled, the evidence item(s) that have been assigned an "Agency ID" value will still display it in their individual pages. To remove the custom field completely from all items, you must delete that field.
Edit: Edit custom field details.
Delete: Removes the field and its values from your Monolith tenant.
Each category's custom field sections can be re-ordered by dragging and dropping custom field components within their respective lists.
Manage your Time Entry Categories
In this section you can view all of the Time Entry Categories associated with your organization. This is also where you can create new Time Entry Categories and delete current Time Entry Categories.
These categories can help define the type of work conducted when recording billable time entries.
Select the "Create Category" button and enter the name of the Time Entry Category you would like to create.
You can also delete a Time Entry Category from the Time Entry Categories Section.
When deleting a Time Entry Category, you must re-assign the time entries associated with that category to another pre-existing Time Entry Category.
View, Create, and Delete your quality assurance issue types
In this section, you can manage your QA Issue Types to identify events that do not meet your organization's quality assurance standards.
Select the "Create Type" button and enter the name of the QA Issue Type you would like to create.
You can also delete a QA issue type in this section.
Admin log of user actions in Monolith
Users with administrative access will be able to view a log of user activity throughout the Monolith application.
The Admin Log table offers robust sort and filter functionality.
Total Logs: The total number of logs can be found to the right of the filter button at the top of the table.
Filters: Admin logs can be filtered by Timestamp, User, and/or Admin log
Search: Admin logs can also be searched to quickly find specific items
You can find more on filtering, searching, and customizing views in our Tables UI documentation.
Authenticating your API Requests
In order to submit an authenticated API request to the Monolith API, you need to include an API key in the following header value with the request.
This header must be present in all Monolith API HTTP requests and have a value that is a valid Monolith API key.
The Monolith API is still under development, so if you would like access, please reach out to support to request an API key.
Use the "info" endpoint to get details related to your API key. This example shows how to make a simple API request to Monolith using an API key in the headers of the request.
This endpoint retrieves basic details about your Monolith tenant and the API key currently being used.
Use the endpoint as a quick test to ensure your call to the API is working.
GET
/api/v1/info
This endpoint retrieves basic details about your Monolith tenant and the API key currently being used.
No parameters are required for this API.
Response
API Endpoint to retrieve list of Monolith cases.
GET
/api/v1/cases/:uuid?
Retrieve a list of cases from your Monolith database.
uuid
String
Unique value that identifies a specific case.
uuid
String
Unique value that identifies a specific case. This value will take precedence over the UUID URL param if passed.
This section describes the basic access requirements for using the Monolith REST API via HTTPS.
The following endpoints can be used to access the Monolith API
United States/North America
https://monolith-app.monolithforensics.com/api/v1
United Kingdom
https://monolith-app.monolithforensics.co.uk/api/v1
More regions will likely be added in the future.
POST
/api/v1/cases
Create a new case in Monolith
case_name
*
String
This is the name of the case.
case_number
String
Unique case number.
description
String
This is a basic description of the case.
case_status
String
This is the status of the case.
case_type
String
This is the type of case.
case_lead_id
Integer
This is the user id of the Monolith user you wish to set as the case lead for the case.
case_open_date
Date
The date the case was opened.
client_id
Integer
This is the id of the client that is associated with the case.
user_group_uuid
string | string[]
The UUID of the user group that you want assigned to a case during creation. Can be a single string value or an array of strings.
Enable custom fields you would like accessed in Relay requests
Monolith allows you to enable Custom Fields for Inquiry and Evidence Items for Relay users making request. Once a field is enabled, it is viewable by all Relay requesters.
Custom Inquiry Fields: Allows Relay requesters to provide additional inquiry details with their request
Custom Evidence Fields: Allows users to provide additional details about evidence items associated with their request.
POST
/api/v1/evidence
Use this API endpoint to create evidence items within Monolith.
Either case_id, case_uuid, or case_number is required.
If evidence_number is not provided, Monolith will automatically generate a value.
Request Body
case_id
number
Unique ID of a case to link evidence.
case_uuid
string
Unique ID of a case to link evidence.
case_number
string
Case number to link evidence.
evidence_number
string
Evidence number of the evidence being created.
item_name
string
Name of the evidence item.
type
string
The type of evidence item: (Smartphone, Server, Email, etc...)
location_id
number
Sets the location of the evidence item at creation. Location ID can be retreived from locations API.
provider
string
Service provider or manufacturer of evidence.
model_number
string
Evidence model number.
unique_id
string
Unique ID associated with the device - usually a serial number or account name.
size
number
Capacity of the evidence
size_unit
string
Unit of capacity: KB, MB, GB, TB, PB
description
string
Description of the item
custom_fields
array
Array of custom field objects
To create custom fields for your evidence in an API request, you must include a custom_fields
value that consists of an array of JSON objects in the following form:
field_id
integer
Unique id of the custom field
value
string
This is the value to be set for the custom field
The field_id
is the numeric identifier for the custom field you are setting a value for.
GET
/api/v1/evidence/:uuid?
Retrieves a list of evidence items. Calling with no parameters returns a paginated list of all evidence items in your Monolith database. Use the uuid
query param to get details for one item or use the case_uuid
param to get a list of evidence items for one Monolith case.
Query Params
uuid
string
Monolith unique identifier for evidence item.
evidence_id
number
Monolith unique identifier for evidence item.
case_uuid
string
Monolith unique identifier for a Monolith case.
case_id
number
Monolith unique identifier for a Monolith case.
user_id
number
Unique identifier for a user.
location_id
number
Unique identifier for an evidence location.
include_coc
boolean
Attaches chain of custody records to each evidence item as an array.
created_on
ISO Date
Date that the evidence was entered into Monolith.
created_before
ISO Date
Evidence items that were created before this Date.
created_after
ISO Date
Evidence items that were created after this Date.
updated_on
ISO Date
Evidence items that were created on this Date.
updated_before
ISO Date
Evidence items that were created before this Date.
updated_after
ISO Date
Evidence items that were created after this Date.
intake_date
ISO Date
The initial intake date of the evidence.
intake_before
ISO Date
Evidence items that were initially received before this Date.
intake_after
ISO Date
Evidence items that were initially received after this Date.
GET
/api/v1/locations/:location_id?
Retrieve a list of locations from your Monolith tenant.
Path Parameters
Example Response Body
location_id
number
This is the numeric id of the location - will return a single location item.
POST
/api/v1/evidence/migrate
Use this API endpoint to migrated chosen evidence items from one case to another.
Request Body
uuid
*
array
Array of evidence item UUIDs that are to be migrated. REQUIRED
case_uuid
*
string
The UUID of the case that the evidence items will be migrated to.
REQUIRED
Use this API to manage evidence and storage locations within Monolith.
PUT
/api/v1/evidence/:uuid?
Use this API endpoint to update evidence items within Monolith.
uuid
is required.
Request Body
uuid
string
Unique ID of the evidence to be updated. REQUIRED
evidence_number
string
Evidence number of the evidence being created.
item_name
string
Name of the evidence item.
type
string
The type of evidence item: (Smartphone, Server, Email, etc...)
location_id
number
Changes the location of the evidence item. Location ID can be retrieved from the Locations API.
provider
string
Service provider or manufacturer of evidence.
model_number
string
Evidence model number.
unique_id
string
Unique ID associated with the device - usually a serial number or account name.
size
number
Capacity of the evidence
size_unit
string
Unit of capacity: KB, MB, GB, TB, PB
description
string
Description of the item