Introduction

This document explains how to configure the Engineering Dashboard to generate your own custom Standard Compliance report, alongside the Standard Compliance reports provided by CAST. This procedure is advanced configuration and is only recommended for those that have good prior knowledge of report generation.

How it works

  • Custom report templates are defined in a .json file.
  • Each custom report template .json file is stored in <data>\config\ed\reports within your Engineering Dashboard installation folder.
  • Each custom report template must be declared in <data>\config\ed\ed.json within your Engineering Dashboard installation folder.
  • The Dashboard is restarted to ensure the changes are taken into account.
  • Custom report templates will be available in the report generation interface in the Engineering Dashboard, under the Standard Compliance category - see Engineering Dashboard - Report Generation.

Step by step instructions

Step 1 - define your custom report

Create a blank .json file (you can name it however you want, but CAST recommends keeping the file name short where possible) and then start building the template with a text editor. Store the .json file in <data>\config\ed\reports.

Define the reportDetail section

Paste in the following at the very start of the blank file:

{
  "reportDetail": {
    "reportName": "<full_name>",
    "firstName": "<first_part_name>",
    "lastName": "<second_part_name>",
    "qualityStandard": "<quality_standard>",
    "reportId": [
      "<business_id_category1>",
	  "<business_id_category2>"
    ],
  },

Where:

EntryDescription
reportNameThe full name of your report. This will be used in the PDF file name. For example "Custom ISO-5055 compliance report".
firstNameFirst part of the name of your report, for example: "Custom ISO-5055". This is displayed on the first page of your report.
lastNameLast part of the name of your report, for example: "compliance report". This is displayed on the first page of your report.
qualityStandard

Enter the name of your overall required quality standard, for example:

CWE

OWASP

C-CPP 

STIG

PCI

NIST

ISO-5055

reportId

Enter all the business IDs that will be referenced in the report, i.e. referenced in a section in the contents section.

"reportId": [
   "1061001",
   "1061002",
   "1061003",
   "1061004"
],

Define the content section

Under the reportDetail section, the content of the report is defined in the contents section:

{
  "reportDetail": {
    "reportName": "<full_name>",
    "firstName": "<first_part_name>",
    "lastName": "<second_part_name>",
    "qualityStandard": "<quality_standard>",
    "reportId": [
      "<business_id_category1>",
	  "<business_id_category2>"
    ],
  },
  "contents": [

Each chapter in the resulting PDF is equal to one entry in the contents section. Chapters are numbered sequentially in the report in the order they appear in the template. For example for an initial "introduction" section in the report:

 "contents": [
    {
      "name": "Introduction",
      "key": "introduction",
      "values": [
        "This assessment is an effort to determine the overall quality of the said applications against ISO-5055 rules and measure the overall health of the application. This assessment uses the CAST Application Intelligence Platform (AIP) to automatically scan the implementation of these applications to review the architecture, design, and code against current industry best practices and known design flaws that may impact performance.",
        "CAST AIP adapts the quality rules from best-in-class industry standards (OWASP, CWE, CISQ, STIG, PCI, NIST, ISO-5055). With its unique ability to perform dataflow and system-level analysis (From Presentation layer to Database layer), CAST provides the most accurate security findings, reducing a lot of false positives."
      ],
      "url": "https://some.url.com"
    },

Where:

EntryDescription
nameEnter the name of the chapter in the report.
keyAn identifier. CAST recommends using the same entry as "name".
valuesA free text field.
urlUsed to create a clickable link when the words "Click here" are entered in the values field. If "Click here" is entered multiple times, only the first entry will become a link.

For a subsequent chapter containing data:

    {
      "name": "My Summary",
      "key": "summary",
      "values": [
        "This section provides a summary of the ISO-5055 specified vulnerability identified in the structural quality analysis and measurement by CAST AIP. Click here to get more details about ISO-5055 Standard.",
        "Findings summary for CAST under ISO-5055 Standards."
      ],
      "url": "https://some.url.com",
      "isSummary": true,
      "hasTableInfo": true,
      "id": "ISO-5055",
      "businessId": "1061000"
    },

Where:

EntryDescription
nameEnter the name of the chapter in the report.
keyAn identifier. CAST recommends using the same entry as "name".
valuesA free text field.
urlUsed to create a clickable link when the words "Click here" are entered in the values field. If "Click here" is entered multiple times, only the first entry will become a link.
isSummarySet to true for summary sections.
hasTableInfoSet to true for sections that will contain a table
id

The name of your overall required quality standard, for example:

CWE

OWASP

C-CPP 

STIG

PCI

NIST

ISO-5055

businessId

Enter the business ID that this section is reporting on. For example for the ISO-5055 qualityStandard, you could enter:

"businessId": "1061000",

Sections can also contain one or multiple subInfo sections, and in which you must declare "isSubInfo": true,:

{
      "name": "Appendix",
      "key": "appendix",
      "values": [],
      "subInfo": [
        {
          "name": "About CAST Software Intelligence",
          "key": "aboutCastIntelligence",
          "isSubInfo": true,
          "url": "https://www.castsoftware.com/software-intelligence",
          "values": [
            "Software Intelligence creates understanding into software architecture, end to end transaction flows, data access patterns and more, helping teams work confidently and faster. Hundreds of companies rely on CAST Software Intelligence to improve end-user satisfaction and time-to-market, prevent business disruption and reduce cost, enabling them to move past today’s obstacles and to tackle the next wave of innovation.",
            "Click here for more information about CAST Software Intelligence."
          ]
        },
        {
          "name": "About ISO-5055",
          "key": "aboutISO",
          "isSubInfo": true,
          "url": "https://www.iso.org/standard/80623.html",
          "values": [
            "ISO-5055 is a standard that is published ISO: https://www.iso.org/standard/80623.html.",
            "These measures were developed from coding rules covering some of the most serious violations of good architectural and coding practices that should be avoided and can be detected through static code analysis. Each measure counts the number of violations of the architectural and coding rules related to that quality characteristic, and then can be used in creating metrics for defect density, etc."
          ]
        }
      ]
    }

Example functioning template:

{
  "reportDetail": {
    "reportName": "Green IT Index Report",
    "type": "ISO",
    "firstName": "Green IT Index",
    "lastName": "Compliance Report",
    "reportId": [
      "20140522"
    ],
    "qualityStandard": "ISO-5055"
  },
  "contents": [
    {
      "name": "Introduction",
      "key": "introduction",
      "values": [
        "This assessment is an effort to determine the overall quality of the said applications against ISO-5055 rules and measure the overall health of the application. This assessment uses the CAST Application Intelligence Platform (AIP) to automatically scan the implementation of these applications to review the architecture, design, and code against current industry best practices and known design flaws that may impact performance.",
        "CAST AIP adapts the quality rules from best-in-class industry standards (OWASP, CWE, CISQ, STIG, PCI, NIST, ISO-5055). With its unique ability to perform dataflow and system-level analysis (From Presentation layer to Database layer), CAST provides the most accurate security findings, reducing a lot of false positives."
      ],
      "subInfo": [
        {
          "name": "Application Characteristics",
          "key": "characteristics",
          "isSubInfo": true,
          "hasTableInfo": true,
          "values": [
            "This assessment is focused solely on the technical implementation of the said application (user interface to database), with no investigation of the functionality."
          ]
        }
      ]
    },
    {
      "name": "Green IT Index Summary",
      "key": "summary",
      "isSummary": true,
      "hasTableInfo": true,
      "id": "ISO-5055",
      "businessId": "20140522",
      "url": "https://www.omg.org/spec/ASCQM/",
      "values": [
        "This section provides a summary of the ISO-5055 specified vulnerability identified in the structural quality analysis and measurement by CAST AIP. Click here to get more details about ISO-5055 Standard.",
        "Findings summary for CAST under ISO-5055 Standards."
      ]
    },
    {
      "name": "CAST Findings For Green IT Index Security",
      "key": "Green IT Index",
      "id": "Green IT Index ",
      "businessId": "20140522",
      "hasTableInfo": true,
      "values": [
        "List of ISO Technical Debt regarding ISO-5055 Security."
      ]
    },
    {
      "name": "Appendix",
      "key": "appendix",
      "values": [],
      "subInfo": [
        {
          "name": "About CAST Software Intelligence",
          "key": "aboutCastIntelligence",
          "isSubInfo": true,
          "url": "https://www.castsoftware.com/software-intelligence",
          "values": [
            "Software Intelligence creates understanding into software architecture, end to end transaction flows, data access patterns and more, helping teams work confidently and faster. Hundreds of companies rely on CAST Software Intelligence to improve end-user satisfaction and time-to-market, prevent business disruption and reduce cost, enabling them to move past today’s obstacles and to tackle the next wave of innovation.",
            "Click here for more information about CAST Software Intelligence."
          ]
        },
        {
          "name": "About ISO-5055",
          "key": "aboutISO",
          "isSubInfo": true,
          "url": "https://www.iso.org/standard/80623.html",
          "values": [
            "ISO-5055 is a standard that is published ISO: https://www.iso.org/standard/80623.html.",
            "These measures were developed from coding rules covering some of the most serious violations of good architectural and coding practices that should be avoided and can be detected through static code analysis. Each measure counts the number of violations of the architectural and coding rules related to that quality characteristic, and then can be used in creating metrics for defect density, etc."
          ]
        }
      ]
    }
  ]
}

Step 2 - declare your custom report

Each custom report template must be declared in <data>\config\ed\ed.json within your Engineering Dashboard installation folder. Edit this file with a text editor, and locate the "reportTemplates":[ section under "id":"industryCompliance",:

      "reportCategory":[
         {
            "id": "industryCompliance",
            "label": "Standard Compliance Reports",
            "reportTemplates":[

Enter two new lines to declare your template .json file:

      "reportCategory":[
         {
            "id": "industryCompliance",
            "label": "Standard Compliance Reports",
            "reportTemplates":[
				{
                  "templateLabel": "Custom Report",
                  "templateId": "custom-report"
				},

Where:

EntryDescription
templateLabelThe name that will be used to display the report in the Engineering Dashboard interface.
templateIdThe name of the corresponding .json file. For example if your .json file is called "custom-report.json", enter "custom-report".

Step 3 - Restart the dashboard

Restart the dashboard, either by restarting the Microsoft Windows service, or by relaunching the batch file if you are using it, to ensure the changes are taken into account.

Step 4 - Generate report from your template

Custom report templates will be available in the report generation interface in the Engineering Dashboard, under the Standard Compliance category - see Engineering Dashboard - Report Generation: