System Diagram
Each component of the system provides specific functionality that together provide the SaltMiner system.
Component Descriptions: Synchronization applications (Sync) The Sync applications are a set of programs that synchronize data between the various testing solutions and the internal elastic indices used by the ETL applications. These applications are specific to the testing solution as all solutions provide data in different formats and have different meanings to their data. The purpose of the Sync code is simply to get the data into the SaltMiner indices so that the ETL applications can transform it into the standard SaltMiner format. ETL applications A note on the Sync and ETL applications These applications are written in a combination of Python and .Net Core and are run as schedule jobs to keep data in sync. For security reviews the following may be worth noting: • All Sync application are run as schedule jobs and do not run as services. • As they are not services, they make only outbound HTTP(s) calls to the various testing solutions and to Elastic. • All credentials are stored in a settings file and are encrypted when the application is run the first time. Elasticsearch Kibana Kibana is used as the standard reporting system for SaltMiner. While other reporting interfaces can be used the default reports and user security work best with Kibana. Kibana architecture and security are fully documented at https://www.elastic.co Data Structure, Sharding and Disaster Recovery Elastic Indices SaltMiner has two core sets of indices, the ones that are used for Sync operations between the external scanning solutions, i.e. Fortify SSC, WhiteSource, and indices that are created and populated by the ETL applications. Sync indices: All indices used for sync operations start with the product as a prefix, for example the Sync indices that are used with Fortify SSC information start with “ssc”, the WhiteSource indices start with “ws”. SaltMiner reporting indices The indices that are created and updated during the ETL process begin with app-