diff --git a/docs/doxygen-user/command_line_ingest.dox b/docs/doxygen-user/command_line_ingest.dox
index dc61708ee4..c5f77def58 100644
--- a/docs/doxygen-user/command_line_ingest.dox
+++ b/docs/doxygen-user/command_line_ingest.dox
@@ -37,7 +37,7 @@ The table below shows a summary of the command line operations. You can run one
Generate Reports | --generateReports | | --generateReports |
-Create List of Data Sources | --listAllDataSources | &nbps; | | --listAllDataSources
+Create List of Data Sources | --listAllDataSources | | | --listAllDataSources
diff --git a/docs/doxygen/modReport.dox b/docs/doxygen/modReport.dox
index 6199ce7560..5799314acf 100644
--- a/docs/doxygen/modReport.dox
+++ b/docs/doxygen/modReport.dox
@@ -58,7 +58,7 @@ As when generating table module reports, Autopsy will iterate through a list of
\subsection report_create_module_general Creating a General Report Module
-If you implement GeneralReportModule, the overriden methods will be:
+If you implement GeneralReportModule, the overridden methods will be:
- org.sleuthkit.autopsy.report.GeneralReportModule.generateReport(String reportPath, ReportProgressPanel progressPanel)
- org.sleuthkit.autopsy.report.GeneralReportModule.getConfigurationPanel()
@@ -125,4 +125,47 @@ Report modules developed using Jython are installed in Autopsy by placing them i
directory. A window into the python_modules directory can be opened through the Autopsy's Tools -> Python Plugins menu item.
Create a folder in this directory and create or place your Python scripts in this folder.
+
+\subsection report_create_module_persistence Persisting your Report Module Configuration
+
+Both Java and Python report modules can have their configurations persisted to disk. In order to do so, the report module must do
+two things:
+
+- The report module must have a class that defines the configuration for the module (for example, org.sleuthkit.autopsy.report.modules.html.HTMLReportModuleSettings). This class
+must implement the ReportModuleSettings interface. Note that the ReportModuleSettings interface extends Serializable, therefore the report
+settings class must contain serialVersionUID variable:
+
+\code
+class HTMLReportModuleSettings implements ReportModuleSettings {
+
+ private static final long serialVersionUID = 1L;
+
+ HTMLReportModuleSettings() {
+ }
+
+ @Override
+ public long getVersionNumber() {
+ return serialVersionUID;
+ }
+}
+\endcode
+
+
- The report module implementation class (e.g. ReportHTML) must implement the following methods of the ReportModule interface:
+- getDefaultConfiguration()
+- getConfiguration()
+- setConfiguration(ReportModuleSettings settings)
+
+
+The use case scenario for this API when the configuration of a report module is occurring is as follows (using HTMLReport as example):
+
+- User clicks "Generate Reports" button in the Autopsy UI.
+
- Report Configuration UI attempts to load the persisted reporting configuration from disk.
+
- For each existing report module, if a persisted ReportModuleSettings (i.e. HTMLReportModuleSettings) configuration exists, Configuration UI calls HTMLReport.setConfiguration() with the persisted settings; Otherwise the Configuration UI calls HTMLReport.getDefaultConfiguration(), then HTMLReport.setConfiguration().
+
- Configuration UI calls HTMLReport.getConfigurationPanel(). The report module loads the settings into its configuration panel and returns the panel.
+
- Configuration UI presents the panel to the user.
+
- User interacts with the panel to modify the current settings of the report module.
+
- Configuration UI calls HTMLReport.getConfiguration() and obtains the latest report module configuration.
+
- Configuration UI persists the module settings.
+
+
*/