Health Results Resources - 1.24

On this page:

Glossary

TermDefinition
ResultAn assessment result of an application or a module.
Result DetailAdditional values, indicators, related to a result: • intermediate calculation results • breakdown of a measure • related quantitative values
Quality Standard ReferenceA reference to a Quality Standard such as CWE-352

Assessment Result

URI Templates & Parameters

HTTP ActionMedia TypeURI TemplatesDescription
GET


application/json
{Domain}/results{?parameters}
Array of results of a domain split by snapshots, by applications


text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
PUTtext/csvCreate or update background facts values in a AED or AAD domain for several applications in the last snapshot
GETapplication/json
{Domain}/applications/{ApplicationID}/results{?parameters}
Array of results for a given application
text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
GET 


application/json
{Domain}/applications/{ApplicationID}/snapshots/{SnapshotID}/results{?parameters}
 


 


Array of results for a given application and snapshot 


text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
PUTtext/csvCreate or update background facts values in a AED or AAD domain for a given application and snapshot
GETapplication/json
{Domain}/modules/{ModuleID}/results{?parameters}
Array of results for a given module
text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
GET 


application/json
{Domain}/modules/{ModuleID}/snapshots/{SnapshotID}/results{?parameters}
 


Array of results for a given module and snapshot


 


text/csv

application/vnd.openxmlformats-

officedocument.spreadsheetml.sheet
GETapplication/json
{Domain}/transactions/{TransactionID}/results{?parameters}
Array of results for a given transaction
URI ParameterDescriptionValuesValue ModifiersDefault value
quality-indicators



Specify a list of quality indicators

Quality Indicators identifiers or keywords, separated by a comma

Ex: .../results/?quality-indicators=(business-criteria)
Ex: .../results/?quality-indicators=(technical-criteria)
Ex: .../results/?quality-indicators=(quality-rules)
Ex: .../results/?quality-indicators=(quality-distributions)
Ex: .../results/?quality-indicators=(quality-measures)

use 'c:' modifier to specify direct grade contributors of a Quality Indicator or a Quality Stantard reference( aka tag)

Ex: c:61027

Ex: c:CISQ

Note: this list is based on the union set of targeted snapshots

60017 (Total Quality Index) is used if quality-indicators, sizing-measures and background-facts parameters are not set



use 'cc:' modifier to specify critical grade contributors of a Quality Indicator

Ex: cc:61027

Note: the critical contributors of a Business Criterion (eg. cc:61027) are the BC's critical children, union the TCs' critical children. A Quality Rule is said to be critical if it is critical for at least one of its parents. In the Assessment Model, some metrics have multiple parents therefore a Quality Rule can be critical for parent A, and non-critical for parent B. In other words, using the "cc" modifier can return non-critical Quality Rules.

use 'nc:' modifier to specify non-critical grade contributors of a Quality Indicator

Ex: nc:61027

Note: the non-critical contributors (nc) of a Business Criterion (eg. nc:61027) are the BC's non-critical children, union the TCs' non-critical children. A Quality Rule is said to be critical if it is critical for at least one of its parents. In the Assessment Model, some metrics have multiple parents therefore a Quality Rule can be critical for parent A, and non-critical for parent B.

quality-standardsSpecify a list of quality standards references

Quality Standards references, separated by a comma

Ex: .../results/?quality-standards=(CISQ,CISQ-Maintainability)

Must be requested with the option in URL: select=(evolutionSummary) to retrieve the counts of violationsNone
sizing-measuresSpecify a list of sizing measures

Sizing measures identifiers or keywords, separated by a comma

Ex: .../results/?sizing-measures=(technical-size-measures)
Ex: .../results/?sizing-measures=(functional-weight-measures)
Ex: .../results/?sizing-measures=(critical-violation-statistics)
  Ex:   .../results/ ?sizing-measures=(violation-statistics)
Ex: .../results/?sizing-measures=(technical-debt-statistics)
Ex: .../results/?sizing-measures=(run-time-statistics)

NoneNone
background-factsSpecify a list of background facts

Background Facts identifiers, separated by a comma

Ex: .../results/?background-facts=(66061)

NoneNone
metricsSpecify a list of metricsAny metric identifier (quality-indicator, sizing-measure or background-fact) or keyword, separated by a commac:
cc:
nc: 
60017
applicationsSpecify a list of applications

Keyword $all or application names separated by a comma

Ex: .../results/?applications=($all)
Ex: .../results/?applications=(name1,name with space 2) 

None$all (all applications)
modulesSpecify a list of modules

Keyword $all or module names separated by a comma

Ex: .../results/?modules=($all)
Ex: .../results/?modules=(name1,name with space 2) 

NoneNone
technologiesSpecify a list of technologies

Keyword $all or technology names separated by a comma

Ex: .../results/?technologies=($all)
Ex: .../results/?technologies=(name1,name with space 2) 

NoneNone
snapshotsSpecify a list of snapshotsThe input value can be one of the following:
  • a positive or negative integer
    Ex: .../results/?snapshots=(-1)
    Ex: .../results/?snapshots=(1)

    A negative number matches snapshots from the end (eg. -1 matches the last snapshot, -2 matches the last and previous snapshots).
    A positive number matches snapshots from the beginning (eg. 1 matches the first snapshot, 2 matches the first and second snapshots).
  • the keyword $all
    Ex: .../results/
    ?snapshots=($all)

    This means all snapshots.

  • a snapshot date
    Ex: .../results/?snapshots=(2012-10-01) 

    The date format is the standard W3C Date format: YYYY-MM-DD

    If there is a snapshot at this date, select this snapshot, otherwise select the oldest snapshot after this date, otherwise select the most recent snapshot before this date.
None-1 (last snapshot)
snapshot-idsspecify a list of snapshot ids

The input value is a list of snapshot ids separated by commas.

Ex: .../results/ ?snapshot-ids=(5,12,3)

NB. The 'snapshot-ids' and 'snapshots' parameters are exclusive. You cannot use both in the same request.

nonenone
selectspecify result options to be displayedThe input value can be one of the following:
  • violationRatio
    Ex .../results?quality-indicators=(quality-rules)&select=(violationRatio)
    It must be used along with a Quality Indicator parameter specifying Quality Rules.
    ViolationRatio can apply to applications, modules and technologies.
  • evolutionSummary
    Ex: .../results?quality-indicators=(business-criteria,technical-criteria,quality-rules)&select=(evolutionSummary)
    It must be used along with a Quality Indicator parameter specifying one or more Business Criteria, Technical Criteria or Quality Rule.
    EvolutionSummary can apply to applications, modules and technologies.
  • categories
    Ex: .../results?quality-indicators=(quality-distributions)&select=(categories)
    It must be used along with a Quality Indicator parameter specifying one or more Quality Distributions.
    Categories can apply to applications, modules and technologies.
  • aggregators
    Ex: .../results?sizing-measures=(c:10202)&select=aggregators 
    Add gradeAggregators on each result. An aggregator is an indicator impacted by the result.
  • improvementGap
    Ex .../results?quality-indicators=(quality-rules)&select=(improvementGap)
    It must be used along with a Quality Indicator parameter specifying Quality Rules.
  • omgTechnicalDebt
    Ex: .../results?metrics=c:1062100&select=omgTechnicalDebt
    It must be used along with a CISQ Quality Indicator (Business Criterion, Technical Criterion, or a rule). See also: The com.castsoftware.cisq-index documentation
Nonenone
unselectspecify result options to be hidden
  • grade
    Ex: .../results?quality-indicators=(business-criteria)&unselect=(grade)
    It prevents the grade parameter to be displayed for a Quality Indicator.
    It applies to applications, modules and technologies. 
nonenone
formatspecify output format options
  • snapshotsAsRows
    Ex: .../results?snapshots=(-2)&format=(snapshotsAsRows)
    For CSV and Excel output, this displays the values for different snapshots on new rows instead of new columns (default behaviour).  
nonenone
orderspecify result sorting options

Possible sorting parameters are:

  • improvementGap
  • rule-pattern-name
  • rule-id
order=(asc(param1),desc(param2))order=(asc(rule-id))

Excel/CSV Representation (Output)

ColumnsDescriptionType

Application Name

Application nameString

Module Name

Module name.

If specified then assessment results are in the scope of this module

String

Technology

Technology name.

If specified then assessment results are in the scope of this technology

String

Metric Name

Associated name of the metric keyArray

Snapshot Date #N

Date of the assessment result. Assessment results are ordered from the most recent (N=1), to the less recent (N > 1).

Effective selected snapshots depends on the snapshot query parameter.

Date
Result #NAssessment result as a grade for a quality indicator, or an integer for other resultsNumber

Violations (Result #N)

Number of failed checks when query parameter "select" is set with "violationRatio"Number

Total Checks (Result #N)

Number of total checks when query parameter "select" is set with "violationRatio"Number

Added Critical Violations (Result #N)

Number of added critical violations when query parameter "select" is set with "evolutionSummary"Number

Critical Violations in New and Modified Code (Result #N)

Number of critical violations in new and modified code when query parameter "select" is set with "evolutionSummary"Number
Removed Critical Violations (Result #N)Number of removed c ritical violations when query parameter "select" is set with "evolutionSummary"Number
Total Critical Violations (Result #N)Number of total c ritical violations when query parameter "select" is set with "evolutionSummary"Number
CategoryName (Result #N)Result for a category of a distribution when query parameter "select" is set with "categories"Number

CSV Representation (Input)

Columns TitlesTypePut Payload
ADG DatabaseStringIf AAD domain, the adgDatabase property of the application. If AED domain, this value is optional. If set, it must match the adgDatabase property of the application.
Application NameStringName of the application to set Background Facts to
Module NameStringName of the application modules to set Background Facts to. For a given background fact id and application name, this column must contain each application module, plus the empty value (referring to the application itself)
Metric IdIntegerA Background Fact id
ResultDoubleValue of the Background Fact for an application or one of its modules

CSV Examples

ADG Database;Application Name;Module Name;Metric Id;Result
ADG_GACD;DIDD Diccionarios;;2666003;21
ADG_GACD;DIDD Diccionarios;DIDD_CAPP_ESQUEMAS;2666003;9
ADG_GACD;DIDD Diccionarios;DIDD_J2EE;2666003;12   
ADG_GACD;DIDD Diccionarios;;66061;2.0
ADG_GACD;DIDD Diccionarios;DIDD_CAPP_ESQUEMAS;66061;3.0
ADG_GACD;DIDD Diccionarios;DIDD_J2EE;66061;4.0
ADG Database;Application Name;Module Name;Metric Id;Result
;DIDD Diccionarios;;2666003;21
;DIDD Diccionarios;DIDD_CAPP_ESQUEMAS;2666003;9
;DIDD Diccionarios;DIDD_J2EE;2666003;12
;BO;;2666003;17
;BO;BO full content;2666003;17
;CastOld;;66061;4.83
;CastOld;Adg;66061;3.2
;CastOld;Central;66061;4.7
;CastOld;DssAdmin;66061;0.8
;CastOld;Pchit;66061;10.5
;DIDD Diccionarios;;66061;2.0
;DIDD Diccionarios;DIDD_CAPP_ESQUEMAS;66061;3.0
;DIDD Diccionarios;DIDD_J2EE;66061;4.0

JSON Representations & JSON Examples

Result Item

PropertiesDescriptionTypeOccurs
numberOrder number of the application snapshotInteger1
dateDate of the application snapshotDate1
applicationReferenceURI1
applicationSnapshotReference to get an application snapshotURI1
applicationResultsAll resultsArray1
applicationResults[ ]See application resultStructure0..*

Application Result

Case of a Business Criterion

Properties

Description

Type

Occurs

type

Value is "business-criterion"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result stuctureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundariesReservedStructure0..1

result.evolutionSummary

See Evolution Summary structure

Structure

0..1

modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Business Criterion






Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortNameString1
reference.keyInteger1
transactionResultsResults Breakdown by transactionArray0..1
transactionResults[ ]See Transaction Result stuctureStructure0..*
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "business-criteria",
				"technologiesResults": [],
				"result": {
					"grade": 3.04528,
					"boundaries": null,
					"evolutionSummary": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/60017/snapshots/5",
					"name": "Total Quality Index",
					"shortName": "TQI",
					"key": "60017",
					"gradeAggregators": null
				},
                "transactionResults": []
			}
		]
	}
]
Case of a Technical Criterion

Properties

Description

Type

Occurs

type

Value is "technical-criterion"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result structureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundariesReservedStructure0..1
result.violationRatioReservedStructure0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result structureStructure0..*

reference

Reference to a Quality Indicator







Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName String

reference.key

Integer

1

reference.gradeAggregators

Indicators computed with this result

Array

1

reference.gradeAggregators[].key

A parent Quality Indicator key

String

0..*

reference.gradeAggregators[].weightContribution weightInteger1
reference.gradeAggregators[].criticity"N/A"String1
transactionResultsResults Breakdown by transactionArray0..1
transactionResults[ ]See Transaction Result stuctureStructure0..*
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "technical-criteria",
				"technologiesResults": [],
				"result": {
					"grade": 4,
					"boundaries": null,
					"violationRatio": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/61007/snapshots/5",
					"name": "Documentation - Bad Comments",
					"shortName": null,
					"key": "61007",
					"gradeAggregators": null
				},
                "transactionResults": []
			}
		]
	}
]
Case of a Quality Rule

Properties

Description

Type

Occurs

type

Value is "quality-rules"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result structureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundariesReservedStructure0..1
result.violationRatioSee Violation Ratio StructureStructure0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result structureStructure0..*

reference

Reference to a Quality Indicator







Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

reference.gradeAggregators

Indicators computed with this result

Array

1

reference.gradeAggregators[].key

A parent Quality Indicator key

String

0..*

reference.gradeAggregators[].weightContribution weightInteger1
reference.gradeAggregators[].criticityContribution criticityBoolean1
transactionResultsResults Breakdown by transactionArray0..1
transactionResults[ ]See Transaction Result stuctureStructure0..*
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "quality-rules",
				"technologiesResults": [],
				"result": {
					"grade": 3.59457,
					"boundaries": null,
					"violationRatio": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/5080/snapshots/5",
					"name": "Avoid Procedure Paragraphs that contains no statements",
					"shortName": null,
					"key": "5080",
					"gradeAggregators": null
				},
                "transactionResults": []

			}
		]
	}
]
Case of a Quality Distribution

Properties

Description

Type

Occurs

type

Value is "quality-distributions"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result stuctureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundariesReservedStructure0..1

result.categories

See Category Structure

Array

1

modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Quality Indicator







Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

reference.gradeAggregators

Indicators computed with this result

Array

1

reference.gradeAggregators[].key

A parent Quality Indicator key

String

0..*

reference.gradeAggregators[].weightContribution weightInteger1
reference.gradeAggregators[].criticityContribution criticityBoolean1
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "quality-distributions",
				"technologiesResults": [],
				"result": {
					"grade": 2.91687,
					"boundaries": null,
					"categories": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/65105/snapshots/5",
					"name": "Size Distribution",
					"shortName": null,
					"key": "65105",
					"gradeAggregators": null
				}
			}
		]
	}
]
Case of a Quality Measure

Properties

Description

Type

Occurs

type

Value is "quality-measures"

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result stuctureStructure0..*

result

Application snapshot own result

Double

0..1

result.gradeGrade value between 1.0 and 4.0Double0..1
result.boundariesSee Boundaries StructureStructure0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Qualilty Indicator







Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

reference.gradeAggregators

Indicators computed with this result

Array

1

reference.gradeAggregators[].key

A parent Quality Indicator key

String

0..*

reference.gradeAggregators[].weightContribution weightInteger1
reference.gradeAggregators[].criticityContribution criticityBoolean1
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "quality-measures",
				"technologiesResults": [],
				"result": {
					"grade": 3.03494,
					"boundaries": null
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/66067/snapshots/5",
					"name": "Avoid High Volume of Copy Pasted Code",
					"shortName": null,
					"key": "66067",
					"gradeAggregators": null
				}
			}
		]
	}
]
Case of a Sizing Measure

Properties

Description

Type

Occurs

type

Value is among

  • technical-size-measures
  • functional-weight-measures
  • critical-violation-statistics
  • technical-debt-statistics
  • run-time-statistics
String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result stuctureStructure0..*

result

Application snapshot own result

Double

0..1

result.valueSizeDouble0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Sizing Measure




Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "technical-size-measures",
				"technologiesResults": [],
				"result": {
					"value": 225727
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/sizing-measures/10151/snapshots/5",
					"name": "Number of Code Lines",
					"shortName": "kLOCs",
					"key": "10151",
					"gradeAggregators": null
				}
			}
		]
	}
]
Case of a Background Fact

Properties

Description

Type

Occurs

type

background-fact

String1

technologiesResults

Results Breakdown by technology

Array

0..1

technologiesResults[ ]See Technology Result structureStructure0..*

result

Application snapshot own result

Double

0..1

result.valueFactDouble0..1
modulesResultsResults Breakdown by moduleArray

0..1

modulesResults[ ]See Module Result stuctureStructure0..*

reference

Reference to a Sizing Measure




Structure

1

reference.href

URI

1

reference.name

String

1

reference.shortName

reference.key

Integer

1

[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "background-facts",
				"technologiesResults": [],
				"result": {
					"value": 1
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/background-facts/66061/snapshots/5",
					"name": "Business Value",
					"shortName": "Biz Value",
					"key": "66061",
					"gradeAggregators": null
				}
			}
		]
	}
]

Optional Quality Indicator Result Detail

Violation Ratio (option coming with Quality Rules)

Properties

Description

Type

Occurs

violationRatio

For a quality rule, this ratio in an input value required
to compute the grade according to 4 thresholds.


Structure

0..1

violationRatio.totalChecks

Total number of checked items in the current scope

Integer

1

violationRatio.failedChecks

Total number of failed items in the current scope

Integer

1

violationRatio.successfulChecks

Result of totalChecks - failedChecks

Integer

1

violationRatio.ratio

Compliance Ratio, i.e. successfulChecks / totalChecks

Double

1

[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "quality-rules",
				"technologiesResults": [],
				"result": {
					"grade": 3.59457,
					"boundaries": null,
					"violationRatio": {
						"totalChecks": 267,
						"failedChecks": 7,
						"successfulChecks": 260,
						"ratio": 0.9737827715355806
					}
				},
				"modulesResults": [],
				"reference": {
					"href": "DEMO/quality-indicators/5080/snapshots/5",
					"name": "Avoid Procedure Paragraphs that contains no statements",
					"shortName": null,
					"key": "5080",
					"gradeAggregators": null
				}
			}
		]
	}
]
Evolution Summary (option coming with Business Criteria)
PropertiesDescriptiontypeOccurs
evolutionSummaryEvolution summary between this snapshot and the previous oneStructure0..1
evolutionSummary.removedCriticalViolationsNumber of critical violations removed since the previous snapshotInteger1
evolutionSummary.addedCriticalViolationsNumber of critical violations added since the previous snapshotInteger1
evolutionSummary.criticalViolationsInNew AndModifiedCodeNumber of critical violations in new and modified code since the previous snapshotInteger1
evolutionSummary.totalCriticalViolationsTotal Number of critical violationsInteger1
evolutionSummary.addedViolationsNumber of violations added since the previous snapshotInteger1
evolutionSummary.removedViolationsNumber of violations removed since the previous snapshotInteger1
[
	{
		"number": 1,
		"date": {
			"time": 1338328800000
		},
		"application": {
			"href": "DEMO/applications/6",
			"name": "Application  006"
		},
		"applicationSnapshot": {
			"href": "DEMO/applications/6/snapshots/5",
			"name": "Application  006"
		},
		"applicationResults": [
			{
				"type": "business-criteria",
				"reference": {
					"href": "DEMO/quality-indicators/60014/snapshots/5",
					"name": "Efficiency",
					"shortName": "Effy",
					"key": "60014",
					"gradeAggregators": null
				},
				"result": {
					"grade": 2.67281,
					"evolutionSummary": {
						"criticalViolationsInNewAndModifiedCode": 5,
						"totalCriticalViolations": 5,
						"addedCriticalViolations": 5,
						"removedCriticalViolations": 0,
						"addedViolations": 13,
						"removedViolations": 280
					},
				},
				"technologyResults": [],
				"moduleResults": []
			}
		]
	}
]
OMG Technical Debt (option coming with Business Criteria, Technical Criteria, Quality Rules)
PropertiesDescriptionTypeOccurs
totalTotal Technical DebtInteger1
numberOccurrencesNumber of violation occurrences (number of bookmarks for example)Integer1
addedTechnical Debt of added violationsInteger1
removedTechnical Debt of removed violationsInteger1
...
                "result": {
                    "grade": 4,
                    "omgTechnicalDebt": {
                        "total": 11040,
                        "numberOccurrences": 176,
                        "added": 0,
                        "removed": 0
                    },
                    "violationRatio": {
                        "totalChecks": 7411,
                        "failedChecks": 33,
                        "successfulChecks": 7378,
                        "ratio": 0.9955471596275807
                    }
                },
Category (option coming with Quality Distributions)
PropertiesDescriptionTypeOccurs
categoriesCategories resultsArray1
categories[ ]A category resultStructure1..4
categories[ ].keyA category idString1
categories[ ].nameA category nameString1
categories[ ].valueA category measureInteger1
[
	{
		"number": 4,
		"date": {
			"time": 1279144800000
		},
		"application": {
			"href": "wow7010/applications/12",
			"name": "IFPUG"
		},
		"applicationSnapshot": {
			"href": "wow7010/applications/12/snapshots/15",
			"name": "IFPUG"
		},
		"applicationResults": [
			{
				"type": "quality-distributions",
				"reference": {
					"href": "wow7010/quality-indicators/66010/snapshots/15",
					"name": "Reuse by Call Distribution",
					"shortName": null,
					"key": "66010",
					"gradeAggregators": null
				},
				"result": {
					"grade": 1,
					"categories": [
						{
							"key": "66014",
							"name": "Low Reuse by Call",
							"value": 478
						},
						{
							"key": "66013",
							"name": "Average Reuse by Call",
							"value": 17
						},
						{
							"key": "66012",
							"name": "High Reuse by Call",
							"value": 3
						},
						{
							"key": "66011",
							"name": "Very High Reuse by Call",
							"value": 1
						}
					],
					"boundaries": null
				},
				"technologyResults": [],
				"moduleResults": []
			}
		]
	}
]

Technology Result Detail

PropertiesDescriptionTypeOccurs
technologyTechnology nameString1
resultSee result structureStructure1

Module Result Detail

PropertiesDescriptionTypeOccurs
moduleReference to a module snapshotStructure1
module.hrefModule snapshot URIURI1
module.nameModule snapshot nameString1
module.numberModule snapshot numberInteger1
resultSee Result Item StuctureDouble0..1
technologiesResultsResults Breakdown by technologyArray0..1
technologiesResults[ ]See Technology Result DetailStructure0..*

Transaction Result Detail

PropertiesDescriptionTypeOccurs
transactionReference to a transaction snapshotStructure1
transaction.hrefTransaction snapshot URIURI1
transaction.nameTransaction snapshot nameString1
resultSee Result Item StuctureDouble0..1

Quality Standards

URI Templates & Parameters

HTTP ActionMedia TypeURI TemplatesDescription
GET



application/json

{Domain}/quality-standards-categories/{QualityStandardCategory}
Array of all quality standard references (aka tags)  for a given category (OWASP-2017, STIG-V4R8-CAT1, etc.)
{Domain}/applications/{ID}/quality-standards

Array of quality standard references for an application. Only quality standard references with violations are reported.

{Domain}/applications/{ID}/snapshots/{SnapshotID}/quality-standards

JSON Representation

PropertiesDescriptionTypeOccurs
standardQuality Standard nameString1
idReference name (aka tag)String1
nameReference labelString1
descriptionreservedString1
applicableSpecify whether this Quality Standard is applicable to static code analysis. Some Security Standards recommendations may be out of the scope of static code analysis.Boolean1

JSON Example

[
  {
	"standard": "CISQ",
    "id": "ASCMM-MNT-6",
    "name": "Commented Code Element Excessive Volume"
   },
  {
	"standard": "CISQ",
    "id": "ASCSM-CWE-681",
    "name": "Numeric Types Incorrect Conversion"
   }
}

Custom Quality Tags

URI Templates & Parameters

HTTP ActionMedia TypeURI TemplatesDescription
GET


text/csv
{Domain}/custom-quality-tags

Download CUSTOM TAGS mapping

Example of curl command line:

C:\>curl --header "Accept: text/csv" http://localhost:8080/CAST-RESTAPI/rest/{Domain}/custom-quality-tags
PUTtext/csv{Domain}/custom-quality-tags

Add rule/CUSTOM TAGS mapping. If the mapping already exists, it is left unchanged.

The tag must begin with the 'CUSTOM' prefix, otherwise the web service raises an error.

All new TAGS are automatically assigned to the  'CUSTOM' standard. 


Example of curl command line:
C:\>curl -X PUT --header "Content-type: text/csv" --upload-file data.csv http://localhost:8080/CAST-RESTAPI/rest/{Domain}/custom-quality-tags
DELETEtext/csv{Domain}/custom-quality-tags

Remove rule/CUSTOM TAGS mapping

The tag must begin with the 'CUSTOM' prefix, otherwise the web service raises an error

All deleted TAGS are automatically removed from  'CUSTOM' standard. 

Example of curl command line:

C:\>curl -X DELETE --header "Content-type: text/csv" --upload-file data.csv http://localhost:8080/CAST-RESTAPI/rest/{Domain}/custom-quality-tags

CSV Representation

ColumnsDescriptionTypeOccurs
Rule IDA rule IDInteger1
TagA label starting with “CUSTOM”String1

CSV Example

Rule ID;Tag
3626;CUSTOM-TOP-PRIORITY-RULES