1. Introduction

Q-Rapids dashboard RESTful services

2. Strategic Indicators

2.1. Get current evaluation

Request parameters

Parameter Description

prj

Project external identifier

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/current?prj=test' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].dbId

Number

Strategic indicator database identifier

[].name

String

Strategic indicator name

[].description

String

Strategic indicator description

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].confidence80

Null

Strategic indicator forecasting 80% confidence interval

[].confidence95

Null

Strategic indicator forecasting 95% confidence interval

[].value_description

String

Readable strategic indicator value and category

[].rationale

String

Strategic indicator evaluation rationale

[].probabilities

Array

Strategic indicator categories list

[].probabilities[].id

Number

Strategic indicator category identifier

[].probabilities[].label

String

Strategic indicator category label

[].probabilities[].value

Null

Strategic indicator category probability

[].probabilities[].color

String

Strategic indicator category hexadecimal color

[].probabilities[].upperThreshold

Number

Strategic indicator category upper threshold

[].date

Array

Strategic indicator assessment date

[].datasource

String

Strategic indicator source of data

[].categories_description

String

Array with the strategic indicator categories and thresholds

[].hasBN

Boolean

Does the strategic indicator have a Bayesian Network?

[].hasFeedback

Boolean

Does the strategic indicator have any feedback

[].forecastingError

Null

Errors in the forecasting

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

HTTP response

HTTP/1.1 200 OK
Content-Length: 1065
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "dbId" : 1,
  "name" : "Process Performance",
  "description" : "Performance of the processes involved in the development",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "rationale" : "factors: {...}, formula: ..., value: ..., category: ...",
  "probabilities" : [ {
    "id" : 10,
    "label" : "Good",
    "value" : null,
    "color" : "#00ff00",
    "upperThreshold" : 0.66
  }, {
    "id" : 11,
    "label" : "Neutral",
    "value" : null,
    "color" : "#ff8000",
    "upperThreshold" : 0.33
  }, {
    "id" : 11,
    "label" : "Bad",
    "value" : null,
    "color" : "#ff0000",
    "upperThreshold" : 0.0
  } ],
  "date" : [ 2019, 7, 7 ],
  "datasource" : "Q-Rapdis Dashboard",
  "categories_description" : "[Good (0,67), Neutral (0,33), Bad (0,00)]",
  "hasBN" : false,
  "hasFeedback" : false,
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingFactors" : null
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response categories error

HTTP/1.1 409 Conflict

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

2.2. Get one current evaluation

Path parameters

Table 1. /api/strategicIndicators/{id}/current
Parameter Description

id

Strategic Indicator identifier

Request parameters

Parameter Description

prj

Project external identifier

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/processperformance/current?prj=test' -i -X GET

Response fields

Path Type Description

id

String

Strategic indicator identifier

dbId

Number

Strategic indicator database identifier

name

String

Strategic indicator name

description

String

Strategic indicator description

value.first

Number

Strategic indicator numerical value

value.second

String

Strategic indicator category

confidence80

Null

Strategic indicator forecasting 80% confidence interval

confidence95

Null

Strategic indicator forecasting 95% confidence interval

value_description

String

Readable strategic indicator value and category

rationale

String

Strategic indicator evaluation rationale

probabilities

Array

Strategic indicator categories list

probabilities[].id

Number

Strategic indicator category identifier

probabilities[].label

String

Strategic indicator category label

probabilities[].value

Null

Strategic indicator category probability

probabilities[].color

String

Strategic indicator category hexadecimal color

probabilities[].upperThreshold

Number

Strategic indicator category upper threshold

date

Array

Strategic indicator assessment date

datasource

String

Strategic indicator source of data

categories_description

String

Array with the strategic indicator categories and thresholds

hasBN

Boolean

Does the strategic indicator have a Bayesian Network?

hasFeedback

Boolean

Does the strategic indicator have any feedback

forecastingError

Null

Errors in the forecasting

mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

missingFactors

Null

Factors without assessment

HTTP response

HTTP/1.1 200 OK
Content-Length: 1061
Content-Type: application/json;charset=UTF-8

{
  "id" : "processperformance",
  "dbId" : 1,
  "name" : "Process Performance",
  "description" : "Performance of the processes involved in the development",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "rationale" : "factors: {...}, formula: ..., value: ..., category: ...",
  "probabilities" : [ {
    "id" : 10,
    "label" : "Good",
    "value" : null,
    "color" : "#00ff00",
    "upperThreshold" : 0.66
  }, {
    "id" : 11,
    "label" : "Neutral",
    "value" : null,
    "color" : "#ff8000",
    "upperThreshold" : 0.33
  }, {
    "id" : 11,
    "label" : "Bad",
    "value" : null,
    "color" : "#ff0000",
    "upperThreshold" : 0.0
  } ],
  "date" : [ 2019, 7, 7 ],
  "datasource" : "Q-Rapdis Dashboard",
  "categories_description" : "[Good (0,67), Neutral (0,33), Bad (0,00)]",
  "hasBN" : false,
  "hasFeedback" : false,
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingFactors" : null
}

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response categories error

HTTP/1.1 409 Conflict

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

2.3. Get historical evaluation

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].dbId

Number

Strategic indicator database identifier

[].name

String

Strategic indicator name

[].description

String

Strategic indicator description

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].confidence80

Null

Strategic indicator forecasting 80% confidence interval

[].confidence95

Null

Strategic indicator forecasting 95% confidence interval

[].value_description

String

Readable strategic indicator value and category

[].rationale

String

Strategic indicator evaluation rationale

[].probabilities

Array

Strategic indicator categories list

[].probabilities[].id

Number

Strategic indicator category identifier

[].probabilities[].label

String

Strategic indicator category label

[].probabilities[].value

Null

Strategic indicator category probability

[].probabilities[].color

String

Strategic indicator category hexadecimal color

[].probabilities[].upperThreshold

Number

Strategic indicator category upper threshold

[].date

Array

Strategic indicator assessment date

[].datasource

String

Strategic indicator source of data

[].categories_description

String

Array with the strategic indicator categories and thresholds

[].hasBN

Boolean

Does the strategic indicator have a Bayesian Network?

[].hasFeedback

Boolean

Does the strategic indicator have any feedback

[].forecastingError

Null

Errors in the forecasting

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

HTTP response

HTTP/1.1 200 OK
Content-Length: 1065
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "dbId" : 1,
  "name" : "Process Performance",
  "description" : "Performance of the processes involved in the development",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "rationale" : "factors: {...}, formula: ..., value: ..., category: ...",
  "probabilities" : [ {
    "id" : 10,
    "label" : "Good",
    "value" : null,
    "color" : "#00ff00",
    "upperThreshold" : 0.66
  }, {
    "id" : 11,
    "label" : "Neutral",
    "value" : null,
    "color" : "#ff8000",
    "upperThreshold" : 0.33
  }, {
    "id" : 11,
    "label" : "Bad",
    "value" : null,
    "color" : "#ff0000",
    "upperThreshold" : 0.0
  } ],
  "date" : [ 2019, 7, 7 ],
  "datasource" : "Q-Rapdis Dashboard",
  "categories_description" : "[Good (0,67), Neutral (0,33), Bad (0,00)]",
  "hasBN" : false,
  "hasFeedback" : false,
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingFactors" : null
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response categories error

HTTP/1.1 409 Conflict

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

2.4. Get current and historical evaluation

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/current_and_historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].dbId

Number

Strategic indicator database identifier

[].prjName

String

Strategic indicator project name

[].name

String

Strategic indicator name

[].description

String

Strategic indicator description

[].currentValue.first

Number

Strategic indicator numerical current value

[].currentValue.second

String

Strategic indicator current value category

[].currentValueDescription

String

Readable strategic indicator current value and category

[].currentRationale

String

Strategic indicator current evaluation rationale

[].probabilities

Array

Strategic indicator categories list

[].probabilities[].id

Number

Strategic indicator category identifier

[].probabilities[].label

String

Strategic indicator category label

[].probabilities[].value

Null

Strategic indicator category probability

[].probabilities[].color

String

Strategic indicator category hexadecimal color

[].probabilities[].upperThreshold

Number

Strategic indicator category upper threshold

[].currentDate

Array

Strategic indicator current assessment date

[].historicalDataList

Array

List with all strategic indicator historical evaluations

[].historicalDataList[].value.first

Number

Strategic indicator numerical historical value

[].historicalDataList[].value.second

String

Strategic indicator historical value category

[].historicalDataList[].valueDescription

String

Readable strategic indicator historical value and category

[].historicalDataList[].rationale

String

Strategic indicator historical evaluation rationale

[].historicalDataList[].date

Array

Strategic indicator historical assessment date

HTTP response

HTTP/1.1 200 OK
Content-Length: 1079
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "dbId" : 1,
  "prjName" : "Test",
  "name" : "Process Performance",
  "description" : "Performance of the processes involved in the development",
  "currentValue" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "currentValueDescription" : "Good (0.80)",
  "currentRationale" : "factors: {...}, formula: ..., value: ..., category: ...",
  "currentDate" : [ 2019, 7, 7 ],
  "probabilities" : [ {
    "id" : 10,
    "label" : "Good",
    "value" : null,
    "color" : "#00ff00",
    "upperThreshold" : 0.66
  }, {
    "id" : 11,
    "label" : "Neutral",
    "value" : null,
    "color" : "#ff8000",
    "upperThreshold" : 0.33
  }, {
    "id" : 11,
    "label" : "Bad",
    "value" : null,
    "color" : "#ff0000",
    "upperThreshold" : 0.0
  } ],
  "historicalDataList" : [ {
    "value" : {
      "first" : 0.8,
      "second" : "Good"
    },
    "valueDescription" : "Good (0.80)",
    "rationale" : "factors: {...}, formula: ..., value: ..., category: ...",
    "date" : [ 2019, 7, 7 ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response categories error

HTTP/1.1 409 Conflict

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

2.5. Get prediction evaluation

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].dbId

Number

Strategic indicator database identifier

[].name

String

Strategic indicator name

[].description

String

Strategic indicator description

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].confidence80

Object

Strategic indicator forecasting 80% confidence interval

[].confidence80.first

Number

Strategic indicator forecasting 80% confidence interval higher values

[].confidence80.second

Number

Strategic indicator forecasting 80% confidence interval lower values

[].confidence95

Object

Strategic indicator forecasting 95% confidence interval

[].confidence95.first

Number

Strategic indicator forecasting 95% confidence interval higher values

[].confidence95.second

Number

Strategic indicator forecasting 95% confidence interval lower values

[].value_description

String

Readable strategic indicator value and category

[].rationale

String

Strategic indicator evaluation rationale

[].probabilities

Array

Strategic indicator categories list

[].probabilities[].id

Number

Strategic indicator category identifier

[].probabilities[].label

String

Strategic indicator category label

[].probabilities[].value

Number

Strategic indicator category probability

[].probabilities[].color

String

Strategic indicator category hexadecimal color

[].probabilities[].upperThreshold

Number

Strategic indicator category upper threshold

[].date

Array

Strategic indicator assessment date

[].datasource

String

Strategic indicator source of data

[].categories_description

String

Array with the strategic indicator categories and thresholds

[].hasBN

Boolean

Does the strategic indicator have a Bayesian Network?

[].hasFeedback

Boolean

Does the strategic indicator have any feedback

[].forecastingError

Null

Errors in the forecasting

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

HTTP response

HTTP/1.1 200 OK
Content-Length: 1115
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "dbId" : 1,
  "name" : "Process Performance",
  "description" : "Performance of the processes involved in the development",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "rationale" : "Forecast",
  "probabilities" : [ {
    "id" : 10,
    "label" : "Good",
    "value" : 0.8,
    "color" : "#00ff00",
    "upperThreshold" : 0.66
  }, {
    "id" : 11,
    "label" : "Neutral",
    "value" : 0.2,
    "color" : "#ff8000",
    "upperThreshold" : 0.33
  }, {
    "id" : 11,
    "label" : "Bad",
    "value" : 0.0,
    "color" : "#ff0000",
    "upperThreshold" : 0.0
  } ],
  "date" : [ 2019, 7, 7 ],
  "datasource" : "Forecast",
  "categories_description" : "[Good (0,67), Neutral (0,33), Bad (0,00)]",
  "hasBN" : false,
  "hasFeedback" : false,
  "confidence80" : {
    "first" : 0.97473043,
    "second" : 0.9745246
  },
  "confidence95" : {
    "first" : 0.9747849,
    "second" : 0.97447014
  },
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingFactors" : null
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

2.6. Get detailed current evaluation

Request parameters

Parameter Description

prj

Project external identifier

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/qualityFactors/current?prj=test' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].name

String

Strategic indicator name

[].date

Array

Strategic indicator assessment date

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].value_description

String

Readable strategic indicator value and category

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

[].factors

Array

Quality factors that compose the strategic indicator

[].factors[].id

String

Quality factor identifier

[].factors[].name

String

Quality factor name

[].factors[].description

String

Quality factor description

[].factors[].value.first

Number

Quality factor numerical value

[].factors[].value.second

String

Quality factor category

[].factors[].value_description

String

Readable quality factor value

[].factors[].date

Array

Quality factor evaluation date

[].factors[].datasource

Null

Quality factor source of data

[].factors[].rationale

String

Quality factor evaluation rationale

[].factors[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].factors[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].factors[].forecastingError

Null

Description of forecasting errors

[].factors[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].factors[].missingMetrics

Null

Metrics without assessment

[].factors[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].factors[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Length: 863
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "name" : "Process Performance",
  "date" : [ 2019, 7, 7 ],
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "mismatchDays" : 0,
  "missingFactors" : null,
  "factors" : [ {
    "id" : "testingperformance",
    "name" : "Testing Performance",
    "description" : "Performance of the tests",
    "value" : {
      "first" : 0.8,
      "second" : "Good"
    },
    "value_description" : "Good (0.80)",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "mismatchDays" : 0,
    "missingMetrics" : null,
    "formattedDate" : "2021-05-25",
    "strategicIndicators" : [ "processperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

2.7. Get one detailed current evaluation

Path parameters

Table 1. /api/strategicIndicators/{id}/qualityFactors/current
Parameter Description

id

Strategic indicator identifier

Request parameters

Parameter Description

prj

Project external identifier

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/processperformance/qualityFactors/current?prj=test' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].name

String

Strategic indicator name

[].date

Array

Strategic indicator assessment date

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].value_description

String

Readable strategic indicator value and category

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

[].factors

Array

Quality factors that compose the strategic indicator

[].factors[].id

String

Quality factor identifier

[].factors[].name

String

Quality factor name

[].factors[].description

String

Quality factor description

[].factors[].value.first

Number

Quality factor numerical value

[].factors[].value.second

String

Quality factor category

[].factors[].value_description

String

Readable quality factor value

[].factors[].date

Array

Quality factor evaluation date

[].factors[].datasource

Null

Quality factor source of data

[].factors[].rationale

String

Quality factor evaluation rationale

[].factors[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].factors[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].factors[].forecastingError

Null

Description of forecasting errors

[].factors[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].factors[].missingMetrics

Null

Metrics without assessment

[].factors[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].factors[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Length: 863
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "name" : "Process Performance",
  "date" : [ 2019, 7, 7 ],
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "mismatchDays" : 0,
  "missingFactors" : null,
  "factors" : [ {
    "id" : "testingperformance",
    "name" : "Testing Performance",
    "description" : "Performance of the tests",
    "value" : {
      "first" : 0.8,
      "second" : "Good"
    },
    "value_description" : "Good (0.80)",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "mismatchDays" : 0,
    "missingMetrics" : null,
    "formattedDate" : "2021-05-25",
    "strategicIndicators" : [ "processperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

2.8. Get detailed historical evaluation

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/qualityFactors/historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].name

String

Strategic indicator name

[].date

Array

Strategic indicator assessment date

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].value_description

String

Readable strategic indicator value and category

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

[].factors

Array

Quality factors that compose the strategic indicator

[].factors[].id

String

Quality factor identifier

[].factors[].name

String

Quality factor name

[].factors[].description

String

Quality factor description

[].factors[].value.first

Number

Quality factor numerical value

[].factors[].value.second

String

Quality factor category

[].factors[].value_description

String

Readable quality factor value

[].factors[].date

Array

Quality factor evaluation date

[].factors[].datasource

Null

Quality factor source of data

[].factors[].rationale

String

Quality factor evaluation rationale

[].factors[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].factors[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].factors[].forecastingError

Null

Description of forecasting errors

[].factors[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].factors[].missingMetrics

Null

Metrics without assessment

[].factors[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].factors[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Length: 863
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "name" : "Process Performance",
  "date" : [ 2019, 7, 7 ],
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "mismatchDays" : 0,
  "missingFactors" : null,
  "factors" : [ {
    "id" : "testingperformance",
    "name" : "Testing Performance",
    "description" : "Performance of the tests",
    "value" : {
      "first" : 0.8,
      "second" : "Good"
    },
    "value_description" : "Good (0.80)",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "mismatchDays" : 0,
    "missingMetrics" : null,
    "formattedDate" : "2021-05-25",
    "strategicIndicators" : [ "processperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

2.9. Get one detailed historical evaluation

Path parameters

Table 1. /api/strategicIndicators/{id}/qualityFactors/historical
Parameter Description

id

Strategic indicator identifier

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/processperformance/qualityFactors/historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].name

String

Strategic indicator name

[].date

Array

Strategic indicator assessment date

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].value_description

String

Readable strategic indicator value and category

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

[].factors

Array

Quality factors that compose the strategic indicator

[].factors[].id

String

Quality factor identifier

[].factors[].name

String

Quality factor name

[].factors[].description

String

Quality factor description

[].factors[].value.first

Number

Quality factor numerical value

[].factors[].value.second

String

Quality factor category

[].factors[].value_description

String

Readable quality factor value

[].factors[].date

Array

Quality factor evaluation date

[].factors[].datasource

Null

Quality factor source of data

[].factors[].rationale

String

Quality factor evaluation rationale

[].factors[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].factors[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].factors[].forecastingError

Null

Description of forecasting errors

[].factors[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].factors[].missingMetrics

Null

Metrics without assessment

[].factors[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].factors[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Length: 863
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "name" : "Process Performance",
  "date" : [ 2019, 7, 7 ],
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "mismatchDays" : 0,
  "missingFactors" : null,
  "factors" : [ {
    "id" : "testingperformance",
    "name" : "Testing Performance",
    "description" : "Performance of the tests",
    "value" : {
      "first" : 0.8,
      "second" : "Good"
    },
    "value_description" : "Good (0.80)",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "mismatchDays" : 0,
    "missingMetrics" : null,
    "formattedDate" : "2021-05-25",
    "strategicIndicators" : [ "processperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

2.10. Get detailed prediction evaluation

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/qualityFactors/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].name

String

Strategic indicator name

[].date

Array

Strategic indicator assessment date

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].value_description

String

Readable strategic indicator value and category

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

[].factors

Array

Quality factors that compose the strategic indicator

[].factors[].id

String

Quality factor identifier

[].factors[].name

String

Quality factor name

[].factors[].description

String

Quality factor description

[].factors[].value.first

Number

Quality factor numerical value

[].factors[].value.second

String

Quality factor category

[].factors[].value_description

String

Readable quality factor value

[].factors[].date

Array

Quality factor evaluation date

[].factors[].datasource

String

Quality factor source of data

[].factors[].rationale

String

Quality factor evaluation rationale

[].factors[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].factors[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].factors[].forecastingError

Null

Description of forecasting errors

[].factors[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].factors[].missingMetrics

Null

Metrics without assessment

[].factors[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].factors[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Length: 846
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "name" : "Process Performance",
  "date" : [ 2019, 7, 7 ],
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "mismatchDays" : 0,
  "missingFactors" : null,
  "factors" : [ {
    "id" : "testingperformance",
    "name" : "Testing Performance",
    "description" : "Performance of the tests",
    "value" : {
      "first" : 0.8,
      "second" : "Good"
    },
    "value_description" : "Good (0.80)",
    "date" : [ 2021, 5, 25 ],
    "datasource" : "Forecast",
    "rationale" : "Forecast",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "mismatchDays" : 0,
    "missingMetrics" : null,
    "formattedDate" : "2021-05-25",
    "strategicIndicators" : [ "processperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

2.11. Get one detailed prediction evaluation

Path parameters

Table 1. /api/strategicIndicators/{id}/qualityFactors/prediction
Parameter Description

id

Strategic indicator identifier

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/processperformance/qualityFactors/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].name

String

Strategic indicator name

[].date

Array

Strategic indicator assessment date

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].value_description

String

Readable strategic indicator value and category

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

[].factors

Array

Quality factors that compose the strategic indicator

[].factors[].id

String

Quality factor identifier

[].factors[].name

String

Quality factor name

[].factors[].description

String

Quality factor description

[].factors[].value.first

Number

Quality factor numerical value

[].factors[].value.second

String

Quality factor category

[].factors[].value_description

String

Readable quality factor value

[].factors[].date

Array

Quality factor evaluation date

[].factors[].datasource

String

Quality factor source of data

[].factors[].rationale

String

Quality factor evaluation rationale

[].factors[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].factors[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].factors[].forecastingError

Null

Description of forecasting errors

[].factors[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].factors[].missingMetrics

Null

Metrics without assessment

[].factors[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].factors[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Length: 846
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "processperformance",
  "name" : "Process Performance",
  "date" : [ 2019, 7, 7 ],
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "mismatchDays" : 0,
  "missingFactors" : null,
  "factors" : [ {
    "id" : "testingperformance",
    "name" : "Testing Performance",
    "description" : "Performance of the tests",
    "value" : {
      "first" : 0.8,
      "second" : "Good"
    },
    "value_description" : "Good (0.80)",
    "date" : [ 2021, 5, 25 ],
    "datasource" : "Forecast",
    "rationale" : "Forecast",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "mismatchDays" : 0,
    "missingMetrics" : null,
    "formattedDate" : "2021-05-25",
    "strategicIndicators" : [ "processperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

2.12. Get all strategic indicators

Request parameters

Parameter Description

prj

Project external identifier

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators?prj=test&profile=null' -i -X GET

Response fields

Path Type Description

[].id

Number

Strategic indicator identifier

[].externalId

String

Strategic indicator external identifier

[].name

String

Strategic indicator name

[].description

String

Strategic indicator description

[].threshold

Null

Strategic indicator minimum acceptable value

[].network

Null

Strategic indicator bayesian network

[].qualityFactors

Array

List of the quality factors composing the strategic indicator

[].qualityFactors[]

Array

Quality factor identifier

[].weighted

Boolean

Strategic indicator is weighted or not

[].qualityFactorsWeights

Array

List of the quality factors composing the strategic indicator with their corresponding weights

HTTP response

HTTP/1.1 200 OK
Content-Length: 318
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 1,
  "externalId" : "productquality",
  "name" : "Product Quality",
  "description" : "Quality of the product built",
  "threshold" : null,
  "network" : null,
  "qualityFactors" : [ "1", "2", "3" ],
  "weighted" : false,
  "qualityFactorsWeights" : [ "1", "-1.0", "2", "-1.0", "3", "-1.0" ]
} ]

2.13. Get one strategic indicator

Path parameters

Table 1. /api/strategicIndicators/{id}
Parameter Description

id

Strategic indicator identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/1' -i -X GET

Response fields

Path Type Description

id

Number

Strategic indicator identifier

externalId

String

Strategic indicator external identifier

name

String

Strategic indicator name

description

String

Strategic indicator description

threshold

Number

Strategic indicator minimum acceptable value

network

String

Strategic indicator bayesian network

qualityFactors

Array

Strategic indicator quality factors identifiers list

weighted

Boolean

Strategic indicator’s boolean field which identify if it is weighted or not

qualityFactorsWeights

Array

Strategic indicator quality factors identifiers and weights list (-1.0 represent non weighted Strategic indicator)

HTTP response

HTTP/1.1 200 OK
Content-Length: 9263
Content-Type: application/json;charset=UTF-8

{
  "id" : 1,
  "externalId" : "productquality",
  "name" : "Product Quality",
  "description" : "Quality of the product built",
  "threshold" : 0.5,
  "network" : "Ly8gfi0+W0RORVQtMV0tPn4NCg0KLy8gRmlsZSBjcmVhdGVkIGJ5IGFuIHVubGljZW5zZWQgdXNlciB1c2luZyBOZXRpY2EgNi4wNCBvbiBNYXIgMjAsIDIwMTggYXQgMTA6NDU6MTEgVVRDLg0KDQpibmV0IHByb2R1Y3RxdWFsaXR5IHsNCkF1dG9Db21waWxlID0gVFJVRTsNCmF1dG91cGRhdGUgPSBUUlVFOw0Kd2hlbmNoYW5nZWQgPSAxNTIxNTQxMTc5Ow0KDQp2aXN1YWwgVjEgew0KCWRlZmRpc3Bmb3JtID0gQkVMSUVGQkFSUzsNCglub2RlbGFiZWxpbmcgPSBUSVRMRTsNCglOb2RlTWF4TnVtRW50cmllcyA9IDUwOw0KCW5vZGVmb250ID0gZm9udCB7c2hhcGU9ICJBcmlhbCI7IHNpemU9IDk7fTsNCglsaW5rZm9udCA9IGZvbnQge3NoYXBlPSAiQXJpYWwiOyBzaXplPSA5O307DQoJU2hvd0xpbmtTdHJlbmd0aHMgPSAxOw0KCXdpbmRvd3Bvc24gPSAoMiwgNSwgOTMyLCA2MzcpOw0KCXJlc29sdXRpb24gPSA3MjsNCglkcmF3aW5nYm91bmRzID0gKDEwODAsIDcyMCk7DQoJc2hvd3BhZ2VicmVha3MgPSBGQUxTRTsNCgl1c2VncmlkID0gVFJVRTsNCglncmlkc3BhY2UgPSAoNiwgNik7DQoJTm9kZVNldCBOb2RlIHtCdWlsdEluID0gMTsgQ29sb3IgPSAweDAwZTFlMWUxO307DQoJTm9kZVNldCBOYXR1cmUge0J1aWx0SW4gPSAxOyBDb2xvciA9IDB4MDBmOGVlZDI7fTsNCglOb2RlU2V0IERldGVybWluaXN0aWMge0J1aWx0SW4gPSAxOyBDb2xvciA9IDB4MDBkM2NhYTY7fTsNCglOb2RlU2V0IEZpbmRpbmcge0J1aWx0SW4gPSAxOyBDb2xvciA9IDB4MDBjOGM4Yzg7fTsNCglOb2RlU2V0IENvbnN0YW50IHtCdWlsdEluID0gMTsgQ29sb3IgPSAweDAwZmZmZmZmO307DQoJTm9kZVNldCBDb25zdGFudFZhbHVlIHtCdWlsdEluID0gMTsgQ29sb3IgPSAweDAwZmZmZmI0O307DQoJTm9kZVNldCBVdGlsaXR5IHtCdWlsdEluID0gMTsgQ29sb3IgPSAweDAwZmZiZGJkO307DQoJTm9kZVNldCBEZWNpc2lvbiB7QnVpbHRJbiA9IDE7IENvbG9yID0gMHgwMGRlZThmZjt9Ow0KCU5vZGVTZXQgRG9jdW1lbnRhdGlvbiB7QnVpbHRJbiA9IDE7IENvbG9yID0gMHgwMGYwZmFmYTt9Ow0KCU5vZGVTZXQgVGl0bGUge0J1aWx0SW4gPSAxOyBDb2xvciA9IDB4MDBmZmZmZmY7fTsNCglQcmludGVyU2V0dGluZyBBIHsNCgkJbWFyZ2lucyA9ICgxMjcwLCAxMjcwLCAxMjcwLCAxMjcwKTsNCgkJfTsNCgl9Ow0KDQpub2RlIGNvZGVxdWFsaXR5IHsNCglkaXNjcmV0ZSA9IFRSVUU7DQoJc3RhdGVzID0gKExvdywgTWVkaXVtLCBIaWdoKTsNCglraW5kID0gTkFUVVJFOw0KCWNoYW5jZSA9IENIQU5DRTsNCglwYXJlbnRzID0gKCk7DQoJcHJvYnMgPSANCgkJLy8gTG93ICAgICAgICAgIE1lZGl1bSAgICAgICBIaWdoICAgICAgICAgDQoJCSAgKDAuMjUsICAgICAgICAwLjQsICAgICAgICAgMC4zNSk7DQoJd2hlbmNoYW5nZWQgPSAxNTIxNTQxMTUxOw0KCWJlbGllZiA9ICgwLjI1LCAwLjQsIDAuMzUpOw0KCXZpc3VhbCBWMSB7DQoJCWNlbnRlciA9ICg5NiwgNDIpOw0KCQloZWlnaHQgPSAxOw0KCQl9Ow0KCX07DQoNCm5vZGUgc29mdHdhcmVzdGFiaWxpdHkgew0KCWRpc2NyZXRlID0gVFJVRTsNCglzdGF0ZXMgPSAoTG93LCBNZWRpdW0sIEhpZ2gpOw0KCWtpbmQgPSBOQVRVUkU7DQoJY2hhbmNlID0gQ0hBTkNFOw0KCXBhcmVudHMgPSAoKTsNCglwcm9icyA9IA0KCQkvLyBMb3cgICAgICAgICAgTWVkaXVtICAgICAgIEhpZ2ggICAgICAgICANCgkJICAoMC4xLCAgICAgICAgIDAuMywgICAgICAgICAwLjYpOw0KCXdoZW5jaGFuZ2VkID0gMTUyMTU0MTE2NjsNCgliZWxpZWYgPSAoMC4xLCAwLjMsIDAuNik7DQoJdmlzdWFsIFYxIHsNCgkJY2VudGVyID0gKDM2NiwgNDIpOw0KCQloZWlnaHQgPSA0Ow0KCQl9Ow0KCX07DQoNCm5vZGUgdGVzdGluZ3N0YXR1cyB7DQoJZGlzY3JldGUgPSBUUlVFOw0KCXN0YXRlcyA9IChMb3csIE1lZGl1bSwgSGlnaCk7DQoJa2luZCA9IE5BVFVSRTsNCgljaGFuY2UgPSBDSEFOQ0U7DQoJcGFyZW50cyA9ICgpOw0KCXByb2JzID0gDQoJCS8vIExvdyAgICAgICAgICBNZWRpdW0gICAgICAgSGlnaCAgICAgICAgIA0KCQkgICgwLjIsICAgICAgICAgMC42LCAgICAgICAgIDAuMik7DQoJd2hlbmNoYW5nZWQgPSAxNTIxNTQxMTc5Ow0KCWJlbGllZiA9ICgwLjIsIDAuNiwgMC4yKTsNCgl2aXN1YWwgVjEgew0KCQljZW50ZXIgPSAoNjE4LCA0Mik7DQoJCWhlaWdodCA9IDI7DQoJCX07DQoJfTsNCg0Kbm9kZSBwcm9kdWN0cXVhbGl0eSB7DQoJZGlzY3JldGUgPSBUUlVFOw0KCXN0YXRlcyA9IChMb3csIE1lZGl1bSwgSGlnaCk7DQoJa2luZCA9IE5BVFVSRTsNCgljaGFuY2UgPSBDSEFOQ0U7DQoJcGFyZW50cyA9IChjb2RlcXVhbGl0eSwgc29mdHdhcmVzdGFiaWxpdHksIHRlc3RpbmdzdGF0dXMpOw0KCXByb2JzID0gDQoJCS8vIExvdyAgICAgICAgICBNZWRpdW0gICAgICAgSGlnaCAgICAgICAgICAvLyBDb2RlUXVhbGl0eSBTdGFiaWxpdHkgVGVzdGluZ1N0YXR1cyANCgkJICAoMSwgICAgICAgICAgIDAsICAgICAgICAgICAwLCAgICAgICAgICAgIC8vIExvdyAgICAgICAgIExvdyAgICAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLjk1LCAgICAgICAgMC4wNSwgICAgICAgIDAsICAgICAgICAgICAgLy8gTG93ICAgICAgICAgTG93ICAgICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAuNzEsICAgICAgICAwLjA5LCAgICAgICAgMC4yLCAgICAgICAgICAvLyBMb3cgICAgICAgICBMb3cgICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMC44LCAgICAgICAgIDAuMiwgICAgICAgICAwLCAgICAgICAgICAgIC8vIExvdyAgICAgICAgIE1lZGl1bSAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLjU3Mzc1LCAgICAgMC4zMzM3NSwgICAgIDAuMDkyNSwgICAgICAgLy8gTG93ICAgICAgICAgTWVkaXVtICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAuNDU1LCAgICAgICAwLjI3NzUsICAgICAgMC4yNjc1LCAgICAgICAvLyBMb3cgICAgICAgICBNZWRpdW0gICAgSGlnaCAgICAgICAgICANCgkJICAgMC4zOTYyNSwgICAgIDAuNDE1LCAgICAgICAwLjE4ODc1LCAgICAgIC8vIExvdyAgICAgICAgIEhpZ2ggICAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLjM5OTM3NSwgICAgMC40MTgxMjUsICAgIDAuMTgyNSwgICAgICAgLy8gTG93ICAgICAgICAgSGlnaCAgICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAuMjgwNjI1LCAgICAwLjM2MTg3NSwgICAgMC4zNTc1LCAgICAgICAvLyBMb3cgICAgICAgICBIaWdoICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMC42NTA2MjUsICAgIDAuMjI4MTI1LCAgICAwLjEyMTI1LCAgICAgIC8vIE1lZGl1bSAgICAgIExvdyAgICAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLjk1LCAgICAgICAgMC4wNSwgICAgICAgIDAsICAgICAgICAgICAgLy8gTWVkaXVtICAgICAgTG93ICAgICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAuNTM1LCAgICAgICAwLjE3NSwgICAgICAgMC4yOSwgICAgICAgICAvLyBNZWRpdW0gICAgICBMb3cgICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMC4zOTU2MjUsICAgIDAuNDE1NjI1LCAgICAwLjE4ODc1LCAgICAgIC8vIE1lZGl1bSAgICAgIE1lZGl1bSAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLjM5ODc1LCAgICAgMC40MTg3NSwgICAgIDAuMTgyNSwgICAgICAgLy8gTWVkaXVtICAgICAgTWVkaXVtICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAuMjgsICAgICAgICAwLjM2MjUsICAgICAgMC4zNTc1LCAgICAgICAvLyBNZWRpdW0gICAgICBNZWRpdW0gICAgSGlnaCAgICAgICAgICANCgkJICAgMC4wNSwgICAgICAgIDAuODUsICAgICAgICAwLjEsICAgICAgICAgIC8vIE1lZGl1bSAgICAgIEhpZ2ggICAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLjIyNDM3NSwgICAgMC41MDMxMjUsICAgIDAuMjcyNSwgICAgICAgLy8gTWVkaXVtICAgICAgSGlnaCAgICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAsICAgICAgICAgICAwLjIsICAgICAgICAgMC44LCAgICAgICAgICAvLyBNZWRpdW0gICAgICBIaWdoICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMC41NTA2MjUsICAgIDAuMzM4MTI1LCAgICAwLjExMTI1LCAgICAgIC8vIEhpZ2ggICAgICAgIExvdyAgICAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLjU1Mzc1LCAgICAgMC4zNDEyNSwgICAgIDAuMTA1LCAgICAgICAgLy8gSGlnaCAgICAgICAgTG93ICAgICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAuNDM1LCAgICAgICAwLjI4NSwgICAgICAgMC4yOCwgICAgICAgICAvLyBIaWdoICAgICAgICBMb3cgICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMC4yOTU2MjUsICAgIDAuNTI1NjI1LCAgICAwLjE3ODc1LCAgICAgIC8vIEhpZ2ggICAgICAgIE1lZGl1bSAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLCAgICAgICAgICAgMC43LCAgICAgICAgIDAuMywgICAgICAgICAgLy8gSGlnaCAgICAgICAgTWVkaXVtICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAuMTgsICAgICAgICAwLjQ3MjUsICAgICAgMC4zNDc1LCAgICAgICAvLyBIaWdoICAgICAgICBNZWRpdW0gICAgSGlnaCAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgIDAuNiwgICAgICAgICAwLjQsICAgICAgICAgIC8vIEhpZ2ggICAgICAgIEhpZ2ggICAgICBMb3cgICAgICAgICAgIA0KCQkgICAwLCAgICAgICAgICAgMC45LCAgICAgICAgIDAuMSwgICAgICAgICAgLy8gSGlnaCAgICAgICAgSGlnaCAgICAgIE1lZGl1bSAgICAgICAgDQoJCSAgIDAuMDA1NjI1LCAgICAwLjU1Njg3NTEsICAgMC40Mzc1KTsgICAgICAvLyBIaWdoICAgICAgICBIaWdoICAgICAgSGlnaCAgICAgICAgICA7DQoJbnVtY2FzZXMgPSANCgkJICAgICAgICAgICAgICAgICAvLyBDb2RlUXVhbGl0eSBTdGFiaWxpdHkgVGVzdGluZ1N0YXR1cyANCgkJICAoMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBMb3cgICAgICAgTG93ICAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBMb3cgICAgICAgTWVkaXVtICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBMb3cgICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBNZWRpdW0gICAgTG93ICAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBNZWRpdW0gICAgTWVkaXVtICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBNZWRpdW0gICAgSGlnaCAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBIaWdoICAgICAgTG93ICAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBIaWdoICAgICAgTWVkaXVtICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBMb3cgICAgICAgICBIaWdoICAgICAgSGlnaCAgICAgICAgICANCgkJICAgLTEsICAgICAgICAgICAvLyBNZWRpdW0gICAgICBMb3cgICAgICAgTG93ICAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBNZWRpdW0gICAgICBMb3cgICAgICAgTWVkaXVtICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBNZWRpdW0gICAgICBMb3cgICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBNZWRpdW0gICAgICBNZWRpdW0gICAgTG93ICAgICAgICAgICANCgkJICAgLTEsICAgICAgICAgICAvLyBNZWRpdW0gICAgICBNZWRpdW0gICAgTWVkaXVtICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBNZWRpdW0gICAgICBNZWRpdW0gICAgSGlnaCAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBNZWRpdW0gICAgICBIaWdoICAgICAgTG93ICAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBNZWRpdW0gICAgICBIaWdoICAgICAgTWVkaXVtICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBNZWRpdW0gICAgICBIaWdoICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBIaWdoICAgICAgICBMb3cgICAgICAgTG93ICAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBIaWdoICAgICAgICBMb3cgICAgICAgTWVkaXVtICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBIaWdoICAgICAgICBMb3cgICAgICAgSGlnaCAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBIaWdoICAgICAgICBNZWRpdW0gICAgTG93ICAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBIaWdoICAgICAgICBNZWRpdW0gICAgTWVkaXVtICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBIaWdoICAgICAgICBNZWRpdW0gICAgSGlnaCAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBIaWdoICAgICAgICBIaWdoICAgICAgTG93ICAgICAgICAgICANCgkJICAgMCwgICAgICAgICAgICAvLyBIaWdoICAgICAgICBIaWdoICAgICAgTWVkaXVtICAgICAgICANCgkJICAgMSk7ICAgICAgICAgICAvLyBIaWdoICAgICAgICBIaWdoICAgICAgSGlnaCAgICAgICAgICA7DQoJd2hlbmNoYW5nZWQgPSAwOw0KCWJlbGllZiA9ICgwLjI2NDM2NjIsIDAuNDk4OTk2MywgMC4yMzY2Mzc1KTsNCgl2aXN1YWwgVjEgew0KCQljZW50ZXIgPSAoMzcyLCAyNTgpOw0KCQloZWlnaHQgPSAzOw0KCQl9Ow0KCX07DQpFbGltT3JkZXIgPSAoY29kZXF1YWxpdHksIHNvZnR3YXJlc3RhYmlsaXR5LCB0ZXN0aW5nc3RhdHVzLCBwcm9kdWN0cXVhbGl0eSk7DQp9Ow0K",
  "qualityFactors" : [ "1", "2", "3" ],
  "weighted" : false,
  "qualityFactorsWeights" : [ "1", "-1.0", "2", "-1.0", "3", "-1.0" ]
}

2.14. Add strategic indicator

Request parameters

Parameter Description

prj

Project external identifier

name

Strategic indicator name

description

Strategic indicator description

threshold

Strategic indicator minimum acceptable value

quality_factors

Comma separated values of the quality factors identifiers which belong to the strategic indicator

Request parts

Part Description

network

Bayesian network file

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators' -i -X POST \
    -H 'Content-Type: multipart/form-data' \
    -F 'network=@network.dne;type=text/plain' \
    -F 'prj=test' \
    -F 'name=Product Quality' \
    -F 'description=Quality of the product built' \
    -F 'threshold=0.5' \
    -F 'quality_factors=codequality,softwarestability,testingstatus'

HTTP response

HTTP/1.1 201 Created

HTTP response assessment error

HTTP/1.1 500 Internal Server Error

2.15. Update strategic indicator

Request parameters

Parameter Description

name

Strategic Indicator name

description

Strategic Indicator description

threshold

Strategic Indicator minimum acceptable value

quality_factors

Comma separated values of the quality factors identifiers which belong to the strategic indicator and their corresponding weights (-1 if no weighted)

Request parts

Part Description

network

Bayesian network file

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/1' -i -X PUT \
    -H 'Content-Type: multipart/form-data' \
    -F 'network=@network.dne;type=text/plain' \
    -F 'name=Product Quality' \
    -F 'description=Quality of the product built' \
    -F 'threshold=0.5' \
    -F 'quality_factors=1,-1.0,2,-1.0,3,-1.0'

HTTP response

HTTP/1.1 200 OK

HTTP response missing parameter

HTTP/1.1 400 Bad Request

HTTP response data integrity violation

HTTP/1.1 409 Conflict

HTTP response assessment error

HTTP/1.1 500 Internal Server Error

2.16. Delete strategic indicator

Path parameters

Table 1. /api/strategicIndicators/{id}
Parameter Description

id

Strategic indicator identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/1' -i -X DELETE

HTTP response

HTTP/1.1 200 OK

2.17. Fetch strategic indicators

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/fetch' -i -X GET

HTTP response

HTTP/1.1 200 OK

2.18. Assess strategic indicators

Request parameters

Parameter Description

prj

Project external identifier

train

Indicates if the forecasting models should be trained: NONE for no training, ONE for one method training and ALL for all methods training

from

Date of the day (yyyy-mm-dd) from which execute several assessments, one for each day since today (optional)

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/assess?prj=test&train=NONE' -i -X GET

HTTP response

HTTP/1.1 200 OK

HTTP response bad parameter

HTTP/1.1 400 Bad Request

HTTP response assessment error

HTTP/1.1 500 Internal Server Error

2.19. Assess strategic indicators (deprecated)

Note
This operation is deprecated. Please, use Assess strategic indicators

Request parameters

Parameter Description

prj

Project external identifier

train

Indicates if the forecasting models should be trained: NONE for no training, ONE for one method training and ALL for all methods training

from

Date of the day (yyyy-mm-dd) from which execute several assessments, one for each day since today (optional)

Curl request

$ curl 'http://localhost:8080/api/assessStrategicIndicators?prj=test&train=NONE' -i -X GET

HTTP response

HTTP/1.1 200 OK

HTTP response bad parameter

HTTP/1.1 400 Bad Request

HTTP response assessment error

HTTP/1.1 500 Internal Server Error

2.20. Simulate strategic indicators assessment

Request parameters

Parameter Description

prj

Project external identifier

factors

List of the names and new values of the quality factors

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/simulate' -i -X POST \
    -d 'prj=test&factors=%5B%7B%22id%22%3A%22processperformance%22%2C%22value%22%3A%220.9%22%7D%5D'

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].dbId

Number

Strategic indicator database identifier

[].name

String

Strategic indicator name

[].description

String

Strategic indicator description

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].confidence80

Null

Strategic indicator forecasting 80% confidence interval

[].confidence95

Null

Strategic indicator forecasting 95% confidence interval

[].value_description

String

Readable strategic indicator value and category

[].rationale

String

Strategic indicator evaluation rationale

[].probabilities

Array

Strategic indicator categories list

[].probabilities[].id

Number

Strategic indicator category identifier

[].probabilities[].label

String

Strategic indicator category label

[].probabilities[].value

Null

Strategic indicator category probability

[].probabilities[].color

String

Strategic indicator category hexadecimal color

[].probabilities[].upperThreshold

Number

Strategic indicator category upper threshold

[].date

Null

Strategic indicator assessment date

[].datasource

String

Strategic indicator source of data

[].categories_description

String

Array with the strategic indicator categories and thresholds

[].hasBN

Boolean

Does the strategic indicator have a Bayesian Network?

[].hasFeedback

Boolean

Does the strategic indicator have any feedback

[].forecastingError

Null

Errors in the forecasting

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1006

[ {
  "id" : "processperformance",
  "dbId" : 1,
  "name" : "Process Performance",
  "description" : "Performance of the processes involved in the development",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "rationale" : "factors: {...}, formula: ..., value: ..., category: ...",
  "probabilities" : [ {
    "id" : 10,
    "label" : "Good",
    "value" : null,
    "color" : "#00ff00",
    "upperThreshold" : 0.66
  }, {
    "id" : 11,
    "label" : "Neutral",
    "value" : null,
    "color" : "#ff8000",
    "upperThreshold" : 0.33
  }, {
    "id" : 11,
    "label" : "Bad",
    "value" : null,
    "color" : "#ff0000",
    "upperThreshold" : 0.0
  } ],
  "date" : null,
  "datasource" : "Simulation",
  "categories_description" : "",
  "hasBN" : false,
  "hasFeedback" : false,
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingFactors" : null
} ]

HTTP response simulation error

HTTP/1.1 500 Internal Server Error

2.21. Get quality model

Request parameters

Parameter Description

prj

Project external identifier

date

Date (yyyy-mm-dd) of the quality model evaluation

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/qualityModel?prj=test&date=2019-07-07&profile=null' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].name

Null

Strategic indicator name

[].value

String

Strategic indicator assessment value

[].valueDescription

String

Strategic indicator assessment value and category

[].color

String

Strategic indicator category color

[].factors

Array

List with all the quality factors composing the strategic indicator

[].factors[].id

String

Quality factor identifier

[].factors[].name

Null

Quality factor name

[].factors[].weightedValue

String

Quality factor weighted value

[].factors[].weight

String

Quality factor weight in the strategic indicator assessment

[].factors[].assessmentValue

Null

Quality factor assessment value

[].factors[].metrics

Array

List with all the metrics composing the quality factor

[].factors[].metrics[].id

String

Metric identifier

[].factors[].metrics[].name

Null

Metric name

[].factors[].metrics[].weightedValue

String

Metric weighted value

[].factors[].metrics[].weight

String

Metric weight in the computation of the quality factor

[].factors[].metrics[].assessmentValue

Null

Metric assessment value

HTTP response

HTTP/1.1 200 OK
Content-Length: 459
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "blocking",
  "name" : null,
  "value" : "0.8",
  "valueDescription" : "Good (0.8)",
  "color" : "#00ff00",
  "factors" : [ {
    "id" : "blockingcode",
    "name" : null,
    "weightedValue" : "0.8",
    "weight" : "1",
    "assessmentValue" : null,
    "metrics" : [ {
      "id" : "nonblockingfiles",
      "name" : null,
      "weightedValue" : "0.8",
      "weight" : "1",
      "assessmentValue" : null
    } ]
  } ]
} ]

2.22. Get strategic indicator categories

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/categories' -i -X GET

Response fields

Path Type Description

[].id

Number

Category identifier

[].name

String

Category name

[].color

String

Category hexadecimal color

HTTP response

HTTP/1.1 200 OK
Content-Length: 193
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 10,
  "name" : "Good",
  "color" : "#00ff00"
}, {
  "id" : 11,
  "name" : "Neutral",
  "color" : "#ff8000"
}, {
  "id" : 12,
  "name" : "Bad",
  "color" : "#ff0000"
} ]

2.23. Set strategic indicator categories

Request fields

Path Type Description

[].name

String

Strategic indicator category name

[].color

String

Strategic indicator category color

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/categories' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '[ {
  "color" : "#00ff00",
  "name" : "Good"
}, {
  "color" : "#ff8000",
  "name" : "Neutral"
}, {
  "color" : "#ff0000",
  "name" : "Bad"
} ]'

HTTP response

HTTP/1.1 201 Created

HTTP response not enough categories

HTTP/1.1 400 Bad Request

3. Quality Factors

3.1. Import factors

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/import' -i -X GET

HTTP response

HTTP/1.1 200 OK

3.2. Get current evaluation

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/current?prj=test' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].description

String

Quality factor description

[].value.first

Number

Quality factor numerical value

[].value.second

String

Quality factor category

[].value_description

String

Readable quality factor value

[].date

Array

Quality factor evaluation date

[].datasource

Null

Quality factor source of data

[].rationale

String

Quality factor evaluation rationale

[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].forecastingError

Null

Description of forecasting errors

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 551

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "description" : "Performance of the tests",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "date" : [ 2021, 5, 25 ],
  "datasource" : null,
  "rationale" : "parameters: {...}, formula: ...",
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "formattedDate" : "2021-05-25",
  "strategicIndicators" : [ "processperformance" ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.3. Get one current evaluation

Path parameters

Table 1. /api/qualityFactors/{id}/current
Parameter Description

id

Quality factor identifier

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/testingperformance/current?prj=test' -i -X GET

Response fields

Path Type Description

id

String

Quality factor identifier

name

String

Quality factor name

description

String

Quality factor description

value.first

Number

Quality factor numerical value

value.second

String

Quality factor category

value_description

String

Readable quality factor value

date

Array

Quality factor evaluation date

datasource

Null

Quality factor source of data

rationale

String

Quality factor evaluation rationale

confidence80

Null

Quality factor forecasting 80% confidence interval

confidence95

Null

Quality factor forecasting 95% confidence interval

forecastingError

Null

Description of forecasting errors

mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

missingMetrics

Null

Metrics without assessment

strategicIndicators

Array

List of the strategic indicators that use this quality factor

formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Length: 547
Content-Type: application/json;charset=UTF-8

{
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "description" : "Performance of the tests",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "date" : [ 2021, 5, 25 ],
  "datasource" : null,
  "rationale" : "parameters: {...}, formula: ...",
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "formattedDate" : "2021-05-25",
  "strategicIndicators" : [ "processperformance" ]
}

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.4. Get historical evaluation

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].description

String

Quality factor description

[].value.first

Number

Quality factor numerical value

[].value.second

String

Quality factor category

[].value_description

String

Readable quality factor value

[].date

Array

Quality factor evaluation date

[].datasource

Null

Quality factor source of data

[].rationale

String

Quality factor evaluation rationale

[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].forecastingError

Null

Description of forecasting errors

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 551

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "description" : "Performance of the tests",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "date" : [ 2021, 5, 25 ],
  "datasource" : null,
  "rationale" : "parameters: {...}, formula: ...",
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "formattedDate" : "2021-05-25",
  "strategicIndicators" : [ "processperformance" ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.5. Get prediction evaluation

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].description

String

Quality factor description

[].value.first

Number

Quality factor numerical value

[].value.second

String

Quality factor category

[].value_description

String

Readable quality factor value

[].date

Array

Quality factor evaluation date

[].datasource

String

Quality factor source of data

[].rationale

String

Quality factor evaluation rationale

[].confidence80

Object

Quality factor forecasting 80% confidence interval

[].confidence80.first

Number

Quality factor forecasting 80% confidence interval higher values

[].confidence80.second

Number

Quality factor forecasting 80% confidence interval lower values

[].confidence95

Object

Quality factor forecasting 95% confidence interval

[].confidence95.first

Number

Quality factor forecasting 95% confidence interval higher values

[].confidence95.second

Number

Quality factor forecasting 95% confidence interval lower values

[].forecastingError

Null

Description of forecasting errors

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Length: 644
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "description" : "Performance of the tests",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "date" : [ 2021, 5, 25 ],
  "datasource" : "Forecast",
  "rationale" : "Forecast",
  "confidence80" : {
    "first" : 0.97473043,
    "second" : 0.9745246
  },
  "confidence95" : {
    "first" : 0.9747849,
    "second" : 0.97447014
  },
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "formattedDate" : "2021-05-25",
  "strategicIndicators" : [ "processperformance" ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.6. Get detailed current evaluation

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/metrics/current?prj=test' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

Null

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Null

Metric forecasting 80% confidence interval

[].metrics[].confidence95

Null

Metric forecasting 95% confidence interval

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 657

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.7. Get one detailed current evaluation

Path parameters

Table 1. /api/qualityFactors/{id}/metrics/current
Parameter Description

id

Quality factor identifier

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/testingperformance/metrics/current?prj=test' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Array

Quality factor evaluation date

[].value.first

Number

Quality factor numerical value

[].value.second

String

Quality factor category

[].value_description

String

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

Null

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Null

Metric forecasting 80% confidence interval

[].metrics[].confidence95

Null

Metric forecasting 95% confidence interval

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Length: 722
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : [ 2021, 5, 25 ],
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.8. Get detailed current evaluation for strategic indicator

Path parameters

Table 1. /api/strategicIndicators/{id}/qualityFactors/metrics/historical
Parameter Description

id

Strategic indicator identifier

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/processperformance/qualityFactors/metrics/historical?prj=test&from=2021-05-18&to=2021-05-25' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

Null

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Null

Metric forecasting 80% confidence interval

[].metrics[].confidence95

Null

Metric forecasting 95% confidence interval

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 657

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.9. Get detailed historical evaluation

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/metrics/historical?prj=test&from=2021-05-18&to=2021-05-25' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

Null

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Null

Metric forecasting 80% confidence interval

[].metrics[].confidence95

Null

Metric forecasting 95% confidence interval

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 657

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.10. Get one detailed historical evaluation

Path parameters

Table 1. /api/qualityFactors/{id}/metrics/historical
Parameter Description

id

Quality factor identifier

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/testingperformance/metrics/historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

Null

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Null

Metric forecasting 80% confidence interval

[].metrics[].confidence95

Null

Metric forecasting 95% confidence interval

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 657

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.11. Get detailed historical evaluation for strategic indicator

Path parameters

Table 1. /api/strategicIndicators/{id}/qualityFactors/metrics/current
Parameter Description

id

Strategic indicator identifier

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/processperformance/qualityFactors/metrics/current?prj=test' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

Null

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Null

Metric forecasting 80% confidence interval

[].metrics[].confidence95

Null

Metric forecasting 95% confidence interval

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 657

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.12. Get detailed prediction evaluation

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/metrics/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

String

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Object

Metric forecasting 80% confidence interval

[].metrics[].confidence80.first

Number

Metric forecasting 80% confidence interval higher values

[].metrics[].confidence80.second

Number

Metric forecasting 80% confidence interval lower values

[].metrics[].confidence95

Object

Metric forecasting 95% confidence interval

[].metrics[].confidence95.first

Number

Metric forecasting 95% confidence interval higher values

[].metrics[].confidence95.second

Number

Metric forecasting 95% confidence interval lower values

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 762

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : "Forecast",
    "rationale" : "Forecast",
    "confidence80" : {
      "first" : 0.97473043,
      "second" : 0.9745246
    },
    "confidence95" : {
      "first" : 0.9747849,
      "second" : 0.97447014
    },
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.13. Get one detailed prediction evaluation

Path parameters

Table 1. /api/qualityFactors/{id}/metrics/prediction
Parameter Description

id

Quality factor identifier

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/testingperformance/metrics/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

String

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Object

Metric forecasting 80% confidence interval

[].metrics[].confidence80.first

Number

Metric forecasting 80% confidence interval higher values

[].metrics[].confidence80.second

Number

Metric forecasting 80% confidence interval lower values

[].metrics[].confidence95

Object

Metric forecasting 95% confidence interval

[].metrics[].confidence95.first

Number

Metric forecasting 95% confidence interval higher values

[].metrics[].confidence95.second

Number

Metric forecasting 95% confidence interval lower values

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 762

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : "Forecast",
    "rationale" : "Forecast",
    "confidence80" : {
      "first" : 0.97473043,
      "second" : 0.9745246
    },
    "confidence95" : {
      "first" : 0.9747849,
      "second" : 0.97447014
    },
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.14. Get detailed prediction evaluation for strategic indicator

Path parameters

Table 1. /api/strategicIndicators/{id}/qualityFactors/metrics/prediction
Parameter Description

id

Strategic indicator identifier

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/processperformance/qualityFactors/metrics/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

String

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Object

Metric forecasting 80% confidence interval

[].metrics[].confidence80.first

Number

Metric forecasting 80% confidence interval higher values

[].metrics[].confidence80.second

Number

Metric forecasting 80% confidence interval lower values

[].metrics[].confidence95

Object

Metric forecasting 95% confidence interval

[].metrics[].confidence95.first

Number

Metric forecasting 95% confidence interval higher values

[].metrics[].confidence95.second

Number

Metric forecasting 95% confidence interval lower values

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 762

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : "Forecast",
    "rationale" : "Forecast",
    "confidence80" : {
      "first" : 0.97473043,
      "second" : 0.9745246
    },
    "confidence95" : {
      "first" : 0.9747849,
      "second" : 0.97447014
    },
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.15. Get all quality factors

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/qualityFactors?prj=test' -i -X GET

Response fields

Path Type Description

[].id

Number

Quality factor identifier

[].externalId

String

Quality factor external identifier

[].name

String

Quality factor name

[].description

String

Quality factor description

[].threshold

Null

Quality factor minimum acceptable value

[].metrics

Array

List of the metrics composing the quality factor

[].metrics[]

Array

Metric identifier

[].weighted

Boolean

Quality factor is weighted or not

[].metricsWeights

Array

List of the metrics composing the quality factor with their corresponding weights

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 279

[ {
  "id" : 1,
  "externalId" : "codequality",
  "name" : "codequality",
  "description" : "Quality of the implemented code",
  "threshold" : null,
  "metrics" : [ "1", "2", "3" ],
  "weighted" : false,
  "metricsWeights" : [ "1", "-1.0", "2", "-1.0", "3", "-1.0" ]
} ]

3.16. Get one quality factor

Path parameters

Table 1. /api/qualityFactors/{id}
Parameter Description

id

Quality factor identifier

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/1' -i -X GET

Response fields

Path Type Description

id

Number

Quality factor identifier

externalId

String

Quality factor external identifier

name

String

Quality factor name

description

String

Quality factor description

threshold

Number

Quality factor minimum acceptable value

metrics

Array

List of the metrics composing the quality factor

metrics[]

Array

Metric identifier

weighted

Boolean

Quality factor is weighted or not

metricsWeights[]

Array

List of the metrics composing the quality factor with their corresponding weights

HTTP response

HTTP/1.1 200 OK
Content-Length: 274
Content-Type: application/json;charset=UTF-8

{
  "id" : 1,
  "externalId" : "codequality",
  "name" : "codequality",
  "description" : "Quality of the implemented code",
  "threshold" : 0.3,
  "metrics" : [ "1", "2", "3" ],
  "weighted" : false,
  "metricsWeights" : [ "1", "-1.0", "2", "-1.0", "3", "-1.0" ]
}

3.17. Add quality factor

Request parameters

Parameter Description

prj

Project external identifier

name

Quality factor name

description

Quality factor description

threshold

Quality factor minimum acceptable value

metrics

Comma separated values of the metrics identifiers which belong to the quality factor

Request parts

Snippet request-parts not found for operation::qualityFactors/new

Curl request

$ curl 'http://localhost:8080/api/qualityFactors' -i -X POST \
    -H 'Content-Type: multipart/form-data' \
    -d 'prj=test&name=codequality&description=Quality+of+the+implemented+code&threshold=0.3&metrics=duplication%2Cbugdensity%2Cfasttests'

HTTP response

HTTP/1.1 201 Created

HTTP response assessment error

HTTP/1.1 500 Internal Server Error

3.18. Update quality factor

Request parameters

Parameter Description

name

Quality factor name

description

Quality factor description

threshold

Quality factor minimum acceptable value

metrics

Comma separated values of the metrics identifiers which belong to the quality factor and their corresponding weights (-1 if no weighted)

Request parts

Snippet request-parts not found for operation::qualityFactors/update

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/1' -i -X PUT \
    -H 'Content-Type: multipart/form-data' \
    -d 'name=codequality&description=Quality+of+the+implemented+code&threshold=0.3&metrics=1%2C-1.0%2C2%2C-1.0%2C3%2C-1.0'

HTTP response

HTTP/1.1 200 OK

HTTP response missing parameter

HTTP/1.1 400 Bad Request

HTTP response data integrity violation

HTTP/1.1 409 Conflict

HTTP response assessment error

HTTP/1.1 500 Internal Server Error

3.19. Delete quality factor

Path parameters

Table 1. /api/qualityFactors/{id}
Parameter Description

id

Quality factor identifier

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/1' -i -X DELETE

HTTP response

HTTP/1.1 200 OK

3.20. Simulate quality factors assessment

Request parameters

Parameter Description

prj

Project external identifier

date

Date of the quality factors evaluation simulation model base

Request fields

Path Type Description

[].id

String

Metric identifier

[].value

String

Metric value

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/simulate?prj=test&date=2019-07-07' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '[ {
  "id" : "fasttests",
  "value" : "0.7"
} ]'

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].description

String

Quality factor description

[].value.first

Number

Quality factor numerical value

[].value.second

String

Quality factor category

[].value_description

String

Readable quality factor value

[].date

Array

Quality factor evaluation date

[].datasource

Null

Quality factor source of data

[].rationale

String

Quality factor evaluation rationale

[].confidence80

Null

Quality factor forecasting 80% confidence interval

[].confidence95

Null

Quality factor forecasting 95% confidence interval

[].forecastingError

Null

Description of forecasting errors

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].strategicIndicators

Array

List of the strategic indicators that use this quality factor

[].formattedDate

String

Readable quality factor evaluation date

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 551

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "description" : "Performance of the tests",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "date" : [ 2021, 5, 25 ],
  "datasource" : null,
  "rationale" : "parameters: {...}, formula: ...",
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "formattedDate" : "2021-05-25",
  "strategicIndicators" : [ "processperformance" ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

3.21. Get quality factor categories

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/categories' -i -X GET

Response fields

Path Type Description

[].id

Number

Category identifier

[].name

String

Category name

[].color

String

Category hexadecimal color

[].upperThreshold

Number

Category upper threshold

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 276

[ {
  "id" : 10,
  "name" : "Good",
  "color" : "#00ff00",
  "upperThreshold" : 1.0
}, {
  "id" : 11,
  "name" : "Neutral",
  "color" : "#ff8000",
  "upperThreshold" : 0.67
}, {
  "id" : 12,
  "name" : "Bad",
  "color" : "#ff0000",
  "upperThreshold" : 0.33
} ]

3.22. Set quality factor categories

Request fields

Path Type Description

[].name

String

Quality factors category name

[].color

String

Quality factors category color

[].upperThreshold

String

Quality factors category upper threshold

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/categories' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '[ {
  "upperThreshold" : "1.0",
  "color" : "#00ff00",
  "name" : "Good"
}, {
  "upperThreshold" : "0.67",
  "color" : "#ff8000",
  "name" : "Neutral"
}, {
  "upperThreshold" : "0.33",
  "color" : "#ff0000",
  "name" : "Bad"
} ]'

HTTP response

HTTP/1.1 201 Created

HTTP response not enough categories

HTTP/1.1 400 Bad Request

4. Metrics

4.1. Import metrics

Curl request

$ curl 'http://localhost:8080/api/metrics/import' -i -X GET

HTTP response

HTTP/1.1 200 OK

4.2. Get current evaluation

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/metrics/current?prj=test' -i -X GET

Response fields

Path Type Description

[].id

String

Metric identifier

[].name

String

Metric name

[].description

String

Metric description

[].value

Number

Metric value

[].value_description

String

Metric readable value

[].date

Array

Metric evaluation date

[].datasource

Null

Metric source of data

[].rationale

String

Metric evaluation rationale

[].confidence80

Null

Metric forecasting 80% confidence interval

[].confidence95

Null

Metric forecasting 95% confidence interval

[].forecastingError

Null

Description of forecasting errors

[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 421

[ {
  "id" : "fasttests",
  "name" : "Fast Tests",
  "description" : "Percentage of tests under the testing duration threshold",
  "value" : 0.8,
  "value_description" : "0,80",
  "date" : [ 2021, 5, 25 ],
  "datasource" : null,
  "rationale" : "parameters: {...}, formula: ...",
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "qualityFactors" : [ "testingperformance" ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

4.3. Get single current evaluation

Path parameters

Table 1. /api/metrics/{id}/current
Parameter Description

id

Metric identifier

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/metrics/fasttests/current?prj=test' -i -X GET

Response fields

Path Type Description

id

String

Metric identifier

name

String

Metric name

description

String

Metric description

value

Number

Metric value

value_description

String

Metric readable value

date

Array

Metric evaluation date

datasource

Null

Metric source of data

rationale

String

Metric evaluation rationale

confidence80

Null

Metric forecasting 80% confidence interval

confidence95

Null

Metric forecasting 95% confidence interval

forecastingError

Null

Description of forecasting errors

qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Length: 417
Content-Type: application/json;charset=UTF-8

{
  "id" : "fasttests",
  "name" : "Fast Tests",
  "description" : "Percentage of tests under the testing duration threshold",
  "value" : 0.8,
  "value_description" : "0,80",
  "date" : [ 2021, 5, 25 ],
  "datasource" : null,
  "rationale" : "parameters: {...}, formula: ...",
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "qualityFactors" : [ "testingperformance" ]
}

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

4.4. Get historical evaluation

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

Curl request

$ curl 'http://localhost:8080/api/metrics/historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Metric identifier

[].name

String

Metric name

[].description

String

Metric description

[].value

Number

Metric value

[].value_description

String

Metric readable value

[].date

Array

Metric evaluation date

[].datasource

Null

Metric source of data

[].rationale

String

Metric evaluation rationale

[].confidence80

Null

Metric forecasting 80% confidence interval

[].confidence95

Null

Metric forecasting 95% confidence interval

[].forecastingError

Null

Description of forecasting errors

[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 421

[ {
  "id" : "fasttests",
  "name" : "Fast Tests",
  "description" : "Percentage of tests under the testing duration threshold",
  "value" : 0.8,
  "value_description" : "0,80",
  "date" : [ 2021, 5, 25 ],
  "datasource" : null,
  "rationale" : "parameters: {...}, formula: ...",
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "qualityFactors" : [ "testingperformance" ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

4.5. Get single historical evaluation

Path parameters

Table 1. /api/metrics/{id}/historical
Parameter Description

id

Metric identifier

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

Curl request

$ curl 'http://localhost:8080/api/metrics/fasttests/historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Metric identifier

[].name

String

Metric name

[].description

String

Metric description

[].value

Number

Metric value

[].value_description

String

Metric readable value

[].date

Array

Metric evaluation date

[].datasource

Null

Metric source of data

[].rationale

String

Metric evaluation rationale

[].confidence80

Null

Metric forecasting 80% confidence interval

[].confidence95

Null

Metric forecasting 95% confidence interval

[].forecastingError

Null

Description of forecasting errors

[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 421

[ {
  "id" : "fasttests",
  "name" : "Fast Tests",
  "description" : "Percentage of tests under the testing duration threshold",
  "value" : 0.8,
  "value_description" : "0,80",
  "date" : [ 2021, 5, 25 ],
  "datasource" : null,
  "rationale" : "parameters: {...}, formula: ...",
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "qualityFactors" : [ "testingperformance" ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

4.6. Get historical evaluation for quality factor

Path parameters

Table 1. /api/qualityFactors/{id}/metrics/historical
Parameter Description

id

Quality factor identifier

Request parameters

Parameter Description

prj

Project external identifier

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/testingperformance/metrics/historical?prj=test&from=2019-07-07&to=2019-07-15' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

Null

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Null

Metric forecasting 80% confidence interval

[].metrics[].confidence95

Null

Metric forecasting 95% confidence interval

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 657

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : null,
    "rationale" : "parameters: {...}, formula: ...",
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

4.7. Get prediction

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

Curl request

$ curl 'http://localhost:8080/api/metrics/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Metric identifier

[].name

String

Metric name

[].description

String

Metric description

[].value

Number

Metric value

[].value_description

String

Metric readable value

[].date

Array

Metric evaluation date

[].datasource

String

Metric source of data

[].rationale

String

Metric evaluation rationale

[].confidence80

Object

Metric forecasting 80% confidence interval

[].confidence80.first

Number

Metric forecasting 80% confidence interval higher values

[].confidence80.second

Number

Metric forecasting 80% confidence interval lower values

[].confidence95

Object

Metric forecasting 95% confidence interval

[].confidence95.first

Number

Metric forecasting 95% confidence interval higher values

[].confidence95.second

Number

Metric forecasting 95% confidence interval lower values

[].forecastingError

Null

Description of forecasting errors

[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Length: 514
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "fasttests",
  "name" : "Fast Tests",
  "description" : "Percentage of tests under the testing duration threshold",
  "value" : 0.8,
  "value_description" : "0,80",
  "date" : [ 2021, 5, 25 ],
  "datasource" : "Forecast",
  "rationale" : "Forecast",
  "confidence80" : {
    "first" : 0.97473043,
    "second" : 0.9745246
  },
  "confidence95" : {
    "first" : 0.9747849,
    "second" : 0.97447014
  },
  "forecastingError" : null,
  "qualityFactors" : [ "testingperformance" ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

4.8. Get prediction for quality factor

Path parameters

Table 1. /api/qualityFactors/{id}/metrics/prediction
Parameter Description

id

Quality factor identifier

Request parameters

Parameter Description

prj

Project external identifier

technique

Forecasting technique

horizon

Amount of days that the prediction will cover

Curl request

$ curl 'http://localhost:8080/api/qualityFactors/testingperformance/metrics/prediction?prj=test&technique=PROPHET&horizon=7' -i -X GET

Response fields

Path Type Description

[].id

String

Quality factor identifier

[].name

String

Quality factor name

[].date

Null

Quality factor evaluation date

[].value

Null

Quality factor value

[].value_description

Null

Readable quality factor value

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the quality factor and some metrics

[].missingMetrics

Null

Metrics without assessment

[].metrics

Array

List with all the quality factor metrics

[].metrics[].id

String

Metric identifier

[].metrics[].name

String

Metric name

[].metrics[].description

String

Metric description

[].metrics[].value

Number

Metric value

[].metrics[].value_description

String

Metric readable value

[].metrics[].date

Array

Metric evaluation date

[].metrics[].datasource

String

Metric source of data

[].metrics[].rationale

String

Metric evaluation rationale

[].metrics[].confidence80

Object

Metric forecasting 80% confidence interval

[].metrics[].confidence80.first

Number

Metric forecasting 80% confidence interval higher values

[].metrics[].confidence80.second

Number

Metric forecasting 80% confidence interval lower values

[].metrics[].confidence95

Object

Metric forecasting 95% confidence interval

[].metrics[].confidence95.first

Number

Metric forecasting 95% confidence interval higher values

[].metrics[].confidence95.second

Number

Metric forecasting 95% confidence interval lower values

[].metrics[].forecastingError

Null

Description of forecasting errors

[].metrics[].qualityFactors

Array

List of the quality factors that use this metric

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 762

[ {
  "id" : "testingperformance",
  "name" : "Testing Performance",
  "date" : null,
  "value" : null,
  "value_description" : null,
  "mismatchDays" : 0,
  "missingMetrics" : null,
  "metrics" : [ {
    "id" : "fasttests",
    "name" : "Fast Tests",
    "description" : "Percentage of tests under the testing duration threshold",
    "value" : 0.8,
    "value_description" : "0,80",
    "date" : [ 2021, 5, 25 ],
    "datasource" : "Forecast",
    "rationale" : "Forecast",
    "confidence80" : {
      "first" : 0.97473043,
      "second" : 0.9745246
    },
    "confidence95" : {
      "first" : 0.9747849,
      "second" : 0.97447014
    },
    "forecastingError" : null,
    "qualityFactors" : [ "testingperformance" ]
  } ]
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

4.9. Get metric categories

Curl request

$ curl 'http://localhost:8080/api/metrics/categories' -i -X GET

Response fields

Path Type Description

[].id

Number

Category identifier

[].name

String

Category name

[].color

String

Category hexadecimal color

[].upperThreshold

Number

Category upper threshold

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 276

[ {
  "id" : 10,
  "name" : "Good",
  "color" : "#00ff00",
  "upperThreshold" : 1.0
}, {
  "id" : 11,
  "name" : "Neutral",
  "color" : "#ff8000",
  "upperThreshold" : 0.67
}, {
  "id" : 12,
  "name" : "Bad",
  "color" : "#ff0000",
  "upperThreshold" : 0.33
} ]

4.10. Set strategic indicator categories

Request fields

Path Type Description

[].name

String

Metrics category name

[].color

String

Metrics category color

[].upperThreshold

String

Metrics category upper threshold

Curl request

$ curl 'http://localhost:8080/api/metrics/categories' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '[ {
  "upperThreshold" : "1.0",
  "color" : "#00ff00",
  "name" : "Good"
}, {
  "upperThreshold" : "0.67",
  "color" : "#ff8000",
  "name" : "Neutral"
}, {
  "upperThreshold" : "0.33",
  "color" : "#ff0000",
  "name" : "Bad"
} ]'

HTTP response

HTTP/1.1 201 Created

HTTP response not enough categories

HTTP/1.1 400 Bad Request

5. Alerts

5.1. Get all alerts

Request parameters

Parameter Description

prj

Project external identifier

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/alerts?prj=test&profile=&profile=' -i -X GET

Response fields

Path Type Description

[].id

Number

Alert identifier

[].id_element

String

Identifier of the element causing the alert

[].name

String

Name of the element causing the alert

[].type

String

Type of element causing the alert (METRIC or FACTOR)

[].value

Number

Current value of the element causing the alert

[].valueDescription

String

Category and value of the element causing the alert

[].threshold

Number

Minimum acceptable value for the element

[].category

String

Identifier of the element causing the alert

[].date

Number

Generation date of the alert

[].status

String

Status of the alert (NEW, VIEWED or RESOLVED)

[].reqAssociat

Boolean

The alert has or hasn’t an associated quality requirement

[].artefacts

Null

Alert artefacts

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 298

[ {
  "id" : 2,
  "id_element" : "id",
  "name" : "Duplication",
  "type" : "METRIC",
  "value" : 0.4,
  "valueDescription" : "Normal (0.40)",
  "threshold" : 0.5,
  "category" : "category",
  "date" : 1621942219811,
  "status" : "NEW",
  "reqAssociat" : true,
  "artefacts" : null
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

5.2. Create alert

Request fields

Path Type Description

element.id

String

Identifier of the element causing the alert

element.name

String

Name of the element causing the alert

element.type

String

Type of the element causing the alert (METRIC or FACTOR)

element.value

String

Current value of the element causing the alert

element.threshold

String

Minimum acceptable value for the element

element.category

String

Identifier of the element causing the alert

element.project_id

String

Project identifier of the element causing the alert

Curl request

$ curl 'http://localhost:8080/api/alerts' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "element" : {
    "project_id" : "test",
    "name" : "Duplication",
    "threshold" : "0.5",
    "id" : "duplication",
    "type" : "METRIC",
    "category" : "duplication",
    "value" : "0.4"
  }
}'

HTTP response

HTTP/1.1 201 Created

HTTP response missing body parameter

HTTP/1.1 400 Bad Request

HTTP response wrong element type

HTTP/1.1 400 Bad Request

5.3. Notify alert (deprecated)

Note
This operation is deprecated. Please, use Create alert

Request fields

Path Type Description

element.id

String

Identifier of the element causing the alert

element.name

String

Name of the element causing the alert

element.type

String

Type of the element causing the alert (METRIC or FACTOR)

element.value

String

Current value of the element causing the alert

element.threshold

String

Minimum acceptable value for the element

element.category

String

Identifier of the element causing the alert

element.project_id

String

Project identifier of the element causing the alert

Curl request

$ curl 'http://localhost:8080/api/notifyAlert' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "element" : {
    "project_id" : "test",
    "name" : "Duplication",
    "threshold" : "0.5",
    "id" : "duplication",
    "type" : "METRIC",
    "category" : "duplication",
    "value" : "0.4"
  }
}'

HTTP response

HTTP/1.1 200 OK

HTTP response missing body parameter

HTTP/1.1 400 Bad Request

HTTP response wrong element type

HTTP/1.1 400 Bad Request

5.4. Count new alerts

Request parameters

Parameter Description

prj

Project external identifier

profile

Profile data base identifier

Curl request

$ curl 'http://localhost:8080/api/alerts/countNew?prj=test&profile=&profile=' -i -X GET

Response fields

Path Type Description

newAlerts

Number

Number of new alerts

newAlertsWithQR

Number

Number of new alerts with an associated quality requirement

HTTP response

HTTP/1.1 200 OK
Content-Length: 49
Content-Type: application/json;charset=UTF-8

{
  "newAlerts" : 2,
  "newAlertsWithQR" : 1
}

HTTP response wrong project

HTTP/1.1 400 Bad Request

5.5. Get quality requirement patterns for alert

Path parameters

Table 1. /api/alerts/{id}/qrPatterns
Parameter Description

id

Alert identifier

Curl request

$ curl 'http://localhost:8080/api/alerts/2/qrPatterns' -i -X GET

Response fields

Path Type Description

[].id

Number

Quality requirement identifier

[].name

String

Quality requirement name

[].comments

String

Quality requirement comments

[].description

String

Quality requirement description

[].goal

String

Quality requirement goal

[].forms[].name

String

Suggested quality requirement name

[].forms[].description

String

Suggested quality requirement description

[].forms[].comments

String

Suggested quality requirement comments

[].forms[].fixedPart.formText

String

Suggested quality requirement text

[].costFunction

String

Suggested quality requirement cost function

HTTP response

HTTP/1.1 200 OK
Content-Length: 516
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 100,
  "name" : "Duplications",
  "comments" : "No comments",
  "description" : "No description",
  "goal" : "Improve the quality of the source code",
  "forms" : [ {
    "name" : "Duplications",
    "description" : "The ratio of files without duplications should be at least the given value",
    "comments" : "No comments",
    "fixedPart" : {
      "formText" : "The ratio of files without duplications should be at least %value%"
    }
  } ],
  "costFunction" : "No cost function"
} ]

HTTP response alert not found

HTTP/1.1 404 Not Found

5.6. Get alert decision

Path parameters

Table 1. /api/alerts/{id}/decision
Parameter Description

id

Alert identifier

Curl request

$ curl 'http://localhost:8080/api/alerts/2/decision' -i -X GET

Response fields

Path Type Description

qrGoal

String

Quality requirement goal

qrRequirement

String

Quality requirement text

qrDescription

String

Quality requirement description

qrBacklogUrl

String

Link to the backlog issue containing the quality requirement

decisionType

String

Type of the decision (ADD or IGNORE)

decisionRationale

String

User rationale of the decision

HTTP response

HTTP/1.1 200 OK
Content-Length: 371
Content-Type: application/json;charset=UTF-8

{
  "qrGoal" : "Improve the quality of the source code",
  "qrRequirement" : "The ratio of files without duplications should be at least 0.8",
  "qrDescription" : "The ratio of files without duplications should be at least the given value",
  "qrBacklogUrl" : "https://backlog.example/issue/999",
  "decisionType" : "ADD",
  "decisionRationale" : "User comments"
}

HTTP response alert not found

HTTP/1.1 404 Not Found

5.7. Ignore quality requirement for alert

Path parameters

Table 1. /api/alerts/{id}/qr/ignore
Parameter Description

id

Alert identifier

Request parameters

Parameter Description

prj

Project external identifier

rationale

User rationale of the decision

patternId

Identifier of the ignored quality requirement pattern

Curl request

$ curl 'http://localhost:8080/api/alerts/2/qr/ignore' -i -X POST \
    -d 'prj=test&rationale=Not+important&patternId=100'

HTTP response

HTTP/1.1 201 Created

HTTP response wrong project

HTTP/1.1 400 Bad Request

HTTP response alert not found

HTTP/1.1 404 Not Found

5.8. Add quality requirement for alert

Path parameters

Table 1. /api/alerts/{id}/qr
Parameter Description

id

Alert identifier

Request parameters

Parameter Description

prj

Project external identifier

rationale

User rationale of the decision

patternId

Identifier of the added quality requirement pattern

requirement

Text of the added quality requirement

description

Description of the added quality requirement

goal

Goal of the added quality requirement

Curl request

$ curl 'http://localhost:8080/api/alerts/2/qr' -i -X POST \
    -d 'prj=test&rationale=User+comments&patternId=100&requirement=The+ratio+of+files+without+duplications+should+be+at+least+0.8&description=The+ratio+of+files+without+duplications+should+be+at+least+the+given+value&goal=Improve+the+quality+of+the+source+code'

Response fields

Path Type Description

id

Number

Identifier of the added quality requirement

date

Number

Quality requirement creation date

requirement

String

Text of the added quality requirement

description

String

Description of the added quality requirement

goal

String

Goal of the added quality requirement

backlogId

String

Quality requirement identifier inside the backlog

backlogUrl

String

Link to the backlog issue containing the quality requirement

backlogProjectId

Null

Backlog identifier of the project containing the quality requirement

alert

Null

Alert object which caused the quality requirement addition

HTTP response

HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
Content-Length: 410

{
  "id" : 3,
  "date" : 1621942219275,
  "requirement" : "The ratio of files without duplications should be at least 0.8",
  "description" : "The ratio of files without duplications should be at least the given value",
  "goal" : "Improve the quality of the source code",
  "backlogId" : "ID-999",
  "backlogUrl" : "https://backlog.example/issue/999",
  "backlogProjectId" : null,
  "alert" : null
}

HTTP response alert not found

HTTP/1.1 404 Not Found

HTTP response error on backlog saving

HTTP/1.1 500 Internal Server Error

6. Quality requirements

6.1. Get all quality requirements

Request parameters

Parameter Description

prj

Project external identifier

Curl request

$ curl 'http://localhost:8080/api/qr?prj=test' -i -X GET

Response fields

Path Type Description

[].id

Number

Identifier of the added quality requirement

[].date

Number

Quality requirement creation date

[].requirement

String

Text of the added quality requirement

[].description

String

Description of the added quality requirement

[].goal

String

Goal of the added quality requirement

[].backlogId

String

Quality requirement identifier inside the backlog

[].backlogUrl

String

Link to the backlog issue containing the quality requirement

[].backlogProjectId

String

Backlog identifier of the project containing the quality requirement

[].alert.id

Number

Alert identifier

[].alert.id_element

String

Identifier of the element causing the alert

[].alert.name

String

Name of the element causing the alert

[].alert.type

String

Type of element causing the alert (METRIC or FACTOR)

[].alert.value

Number

Current value of the element causing the alert

[].alert.valueDescription

Null

Category and value of the element causing the alert

[].alert.threshold

Number

Minimum acceptable value for the element

[].alert.category

String

Identifier of the element causing the alert

[].alert.date

Number

Generation date of the alert

[].alert.status

String

Status of the alert (NEW, VIEWED or RESOLVED)

[].alert.reqAssociat

Boolean

The alert has or hasn’t an associated quality requirement

[].alert.artefacts

Null

Alert artefacts

HTTP response

HTTP/1.1 200 OK
Content-Length: 722
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 3,
  "date" : 1621942223761,
  "requirement" : "The ratio of files without duplications should be at least 0.8",
  "description" : "The ratio of files without duplications should be at least the given value",
  "goal" : "Improve the quality of the source code",
  "backlogId" : "ID-999",
  "backlogUrl" : "https://backlog.example/issue/999",
  "backlogProjectId" : "prj-1",
  "alert" : {
    "id" : 2,
    "id_element" : "id",
    "name" : "Duplication",
    "type" : "METRIC",
    "value" : 0.4,
    "valueDescription" : null,
    "threshold" : 0.5,
    "category" : "category",
    "date" : 1621942223761,
    "status" : "NEW",
    "reqAssociat" : true,
    "artefacts" : null
  }
} ]

HTTP response wrong project

HTTP/1.1 400 Bad Request

6.2. Add quality requirement

Request parameters

Parameter Description

prj

Project external identifier

rationale

User rationale of the decision

patternId

Identifier of the added quality requirement pattern

requirement

Text of the added quality requirement

description

Description of the added quality requirement

goal

Goal of the added quality requirement

Curl request

$ curl 'http://localhost:8080/api/qr' -i -X POST \
    -d 'prj=test&rationale=User+comments&patternId=100&requirement=The+ratio+of+files+without+duplications+should+be+at+least+0.8&description=The+ratio+of+files+without+duplications+should+be+at+least+the+given+value&goal=Improve+the+quality+of+the+source+code'

Response fields

Path Type Description

id

Number

Identifier of the added quality requirement

date

Number

Quality requirement creation date

requirement

String

Text of the added quality requirement

description

String

Description of the added quality requirement

goal

String

Goal of the added quality requirement

backlogId

String

Quality requirement identifier inside the backlog

backlogUrl

String

Link to the backlog issue containing the quality requirement

backlogProjectId

Null

Backlog identifier of the project containing the quality requirement

alert

Null

Alert object which caused the quality requirement addition

HTTP response

HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
Content-Length: 410

{
  "id" : 3,
  "date" : 1621942223858,
  "requirement" : "The ratio of files without duplications should be at least 0.8",
  "description" : "The ratio of files without duplications should be at least the given value",
  "goal" : "Improve the quality of the source code",
  "backlogId" : "ID-999",
  "backlogUrl" : "https://backlog.example/issue/999",
  "backlogProjectId" : null,
  "alert" : null
}

HTTP response error on backlog saving

HTTP/1.1 500 Internal Server Error

6.3. Ignore quality requirement

Request parameters

Parameter Description

prj

Project external identifier

rationale

User rationale of the decision

patternId

Identifier of the ignored quality requirement pattern

Curl request

$ curl 'http://localhost:8080/api/qr/ignore' -i -X POST \
    -d 'prj=test&rationale=Not+important&patternId=100'

HTTP response

HTTP/1.1 201 Created

HTTP response wrong project

HTTP/1.1 400 Bad Request

6.4. Get all quality requirement patterns

Curl request

$ curl 'http://localhost:8080/api/qrPatterns' -i -X GET

Response fields

Path Type Description

[].id

Number

Quality requirement identifier

[].name

String

Quality requirement name

[].comments

String

Quality requirement comments

[].description

String

Quality requirement description

[].goal

String

Quality requirement goal

[].forms[].name

String

Suggested quality requirement name

[].forms[].description

String

Suggested quality requirement description

[].forms[].comments

String

Suggested quality requirement comments

[].forms[].fixedPart.formText

String

Suggested quality requirement text

[].costFunction

String

Suggested quality requirement cost function

HTTP response

HTTP/1.1 200 OK
Content-Length: 516
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 100,
  "name" : "Duplications",
  "comments" : "No comments",
  "description" : "No description",
  "goal" : "Improve the quality of the source code",
  "forms" : [ {
    "name" : "Duplications",
    "description" : "The ratio of files without duplications should be at least the given value",
    "comments" : "No comments",
    "fixedPart" : {
      "formText" : "The ratio of files without duplications should be at least %value%"
    }
  } ],
  "costFunction" : "No cost function"
} ]

6.5. Get single quality requirement pattern

Path parameters

Table 1. /api/qrPatterns/{id}
Parameter Description

id

Quality requirement pattern identifier

Curl request

$ curl 'http://localhost:8080/api/qrPatterns/100' -i -X GET

Response fields

Path Type Description

id

Number

Quality requirement identifier

name

String

Quality requirement name

comments

String

Quality requirement comments

description

String

Quality requirement description

goal

String

Quality requirement goal

forms[].name

String

Suggested quality requirement name

forms[].description

String

Suggested quality requirement description

forms[].comments

String

Suggested quality requirement comments

forms[].fixedPart.formText

String

Suggested quality requirement text

costFunction

String

Suggested quality requirement cost function

HTTP response

HTTP/1.1 200 OK
Content-Length: 512
Content-Type: application/json;charset=UTF-8

{
  "id" : 100,
  "name" : "Duplications",
  "comments" : "No comments",
  "description" : "No description",
  "goal" : "Improve the quality of the source code",
  "forms" : [ {
    "name" : "Duplications",
    "description" : "The ratio of files without duplications should be at least the given value",
    "comments" : "No comments",
    "fixedPart" : {
      "formText" : "The ratio of files without duplications should be at least %value%"
    }
  } ],
  "costFunction" : "No cost function"
}

6.6. Get metric for quality requirement pattern

Path parameters

Table 1. /api/qrPatterns/{id}/metric
Parameter Description

id

Quality requirement pattern identifier

Curl request

$ curl 'http://localhost:8080/api/qrPatterns/1/metric' -i -X GET

Response fields

Path Type Description

metric

String

Metric identifier

HTTP response

HTTP/1.1 200 OK
Content-Length: 29
Content-Type: application/json;charset=UTF-8

{
  "metric" : "comments"
}

7. Decisions

7.1. Get all decisions

Request parameters

Parameter Description

prj

Project external identifier

qrs

Indicates if the result must include the information about the quality requirements associated to the decisions

from

Starting date (yyyy-mm-dd) for the requested the period

to

Ending date (yyyy-mm-dd) for the requested the period

Curl request

$ curl 'http://localhost:8080/api/decisions?prj=test&qrs=true&from=2019-07-15&to=2019-08-01' -i -X GET

Response fields

Path Type Description

[].id

Number

Decision identifier

[].type

String

Decision type (ADD or IGNORE)

[].date

Number

Decision creation date

[].author

Null

Name of the decision creator

[].rationale

String

User rationale behind the decision

[].patternId

Number

Identifier of the quality requirement pattern being added or ignored

[].elementId

String

Identifier of the element impacted by the quality requirement

[].requirement

String

Text of the added quality requirement

[].description

String

Description of the added quality requirement

[].goal

String

Goal of the added quality requirement

[].backlogId

String

Quality requirement identifier inside the backlog

[].backlogUrl

String

Link to the backlog issue containing the quality requirement

HTTP response

HTTP/1.1 200 OK
Content-Length: 493
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 2,
  "type" : "ADD",
  "date" : 1621942220610,
  "author" : null,
  "rationale" : "User comments",
  "patternId" : 100,
  "elementId" : "duplications",
  "requirement" : "The ratio of files without duplications should be at least 0.8",
  "description" : "The ratio of files without duplications should be at least the given value",
  "goal" : "Improve the quality of the source code",
  "backlogId" : "ID-999",
  "backlogUrl" : "https://backlog.example/issue/999"
} ]

8. Feedback

8.1. Add new feedback

Path parameters

Table 1. /api/strategicIndicators/{id}/feedback
Parameter Description

id

Strategic indicator identifier

Request fields

Path Type Description

newvalue

String

New strategic indicator value

oldvalue

String

Old strategic indicator value

factorIds

String

List of the factors identifiers

factorNames

String

List of the factors names

factorValues

String

List of the factors values

factorEvaluationDates

String

List of the factors evaluation dates

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/1/feedback' -i -X POST \
    -H 'Content-Type: application/json' \
    -d '{
  "newvalue" : "0.75",
  "factorEvaluationDates" : "[\"2019-07-07\",\"2019-07-06\",\"2019-07-05\"]",
  "factorIds" : "[\"factor1\",\"factor2\",\"factor3\"]",
  "factorValues" : "[\"0.8\",\"0.7\",\"0.6\"]",
  "oldvalue" : "0.6",
  "factorNames" : "[\"Factor 1\",\"Factor 2\",\"Factor 3\"]"
}'

HTTP response

HTTP/1.1 202 Accepted

HTTP response missing body parameter

HTTP/1.1 400 Bad Request

8.2. Get feedback for strategic indicator

Path parameters

Table 1. /api/strategicIndicators/{id}/feedback
Parameter Description

id

Strategic indicator identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/1/feedback' -i -X GET

Response fields

Path Type Description

[].strategicIndicatorId

Number

Strategic indicator identifier

[].date

String

Feedback creation date

[].author

Null

Feedback creator name

[].newValue

Number

New strategic indicator value

[].oldValue

Number

Old strategic indicator value

HTTP response

HTTP/1.1 200 OK
Content-Length: 127
Content-Type: application/json;charset=UTF-8

[ {
  "strategicIndicatorId" : 1,
  "date" : "2021-05-25",
  "author" : null,
  "oldValue" : 0.6,
  "newValue" : 0.75
} ]

8.3. Get feedback report for strategic indicator

Path parameters

Table 1. /api/strategicIndicators/{id}/feedbackReport
Parameter Description

id

Strategic indicator identifier

Curl request

$ curl 'http://localhost:8080/api/strategicIndicators/1/feedbackReport' -i -X GET

Response fields

Path Type Description

[].siId

Number

Strategic indicator identifier

[].siName

String

Strategic indicator name

[].date

String

Feedback creation date

[].fact

Array

List with factor names

[].factVal

Array

List with factor values

[].author

Null

Feedback creator name

[].oldvalue

Number

Old strategic indicator value

[].oldCategory

String

Old strategic indicator category name

[].oldCategoryColor

String

Old strategic indicator category color

[].newvalue

Number

New strategic indicator value

[].newCategory

String

New strategic indicator category name

[].newCategoryColor

String

New strategic indicator category color

HTTP response

HTTP/1.1 200 OK
Content-Length: 346
Content-Type: application/json;charset=UTF-8

[ {
  "siId" : 1,
  "siName" : "Blocking",
  "date" : "2019-07-07",
  "fact" : [ "Factor 1", "Factor 2", "Factor 3" ],
  "factVal" : [ 0.8, 0.7, 0.6 ],
  "author" : null,
  "oldvalue" : 0.6,
  "oldCategory" : "Medium",
  "oldCategoryColor" : "Orange",
  "newvalue" : 0.75,
  "newCategory" : "High",
  "newCategoryColor" : "Green"
} ]

9. Projects

9.1. Import projects

Curl request

$ curl 'http://localhost:8080/api/projects/import' -i -X GET

Response fields

Path Type Description

[]

Array

List with the external identifiers of all the assessed projects

HTTP response

HTTP/1.1 200 OK
Content-Length: 38
Content-Type: application/json;charset=UTF-8

[ "project1", "project2", "project3" ]

HTTP response categories error

HTTP/1.1 409 Conflict

HTTP response error on ElasticSearch connection

HTTP/1.1 500 Internal Server Error

9.2. Get all projects

Curl request

$ curl 'http://localhost:8080/api/projects' -i -X GET

Response fields

Path Type Description

[].id

Number

Project identifier

[].externalId

String

Project external identifier

[].name

String

Project name

[].description

String

Project description

[].logo

Null

Project logo file

[].active

Boolean

Is an active project?

[].backlogId

String

Project identifier in the backlog

HTTP response

HTTP/1.1 200 OK
Content-Length: 163
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 1,
  "externalId" : "test",
  "name" : "Test",
  "description" : "Test project",
  "logo" : null,
  "active" : true,
  "backlogId" : "999"
} ]

9.3. Get single project

Path parameters

Table 1. /api/projects/{id}
Parameter Description

id

Project identifier

Curl request

$ curl 'http://localhost:8080/api/projects/1' -i -X GET

Response fields

Path Type Description

id

Number

Project identifier

externalId

String

Project external identifier

name

String

Project name

description

String

Project description

logo

Null

Project logo file

active

Boolean

Is an active project?

backlogId

String

Project identifier in the backlog

HTTP response

HTTP/1.1 200 OK
Content-Length: 159
Content-Type: application/json;charset=UTF-8

{
  "id" : 1,
  "externalId" : "test",
  "name" : "Test",
  "description" : "Test project",
  "logo" : null,
  "active" : true,
  "backlogId" : "999"
}

9.4. Update project

Path parameters

Table 1. /api/projects/{id}
Parameter Description

id

Project identifier

Request parameters
Parameter Description

externalId

Project external identifier

name

Project name

description

Project description

backlogId

Project identifier in the backlog

Request parts
Part Description

logo

Project logo file

Curl request
$ curl 'http://localhost:8080/api/projects/1' -i -X PUT \
    -H 'Content-Type: multipart/form-data' \
    -F 'logo=@logo.jpg;type=image/jpeg' \
    -F 'externalId=test' \
    -F 'name=Test' \
    -F 'description=Test project' \
    -F 'backlogId=999'
HTTP response
HTTP/1.1 200 OK

HTTP response name already exists

HTTP/1.1 409 Conflict

10. Products

10.1. Get all products

Curl request

$ curl 'http://localhost:8080/api/products' -i -X GET

Response fields

Path Type Description

[].id

Number

Product identifier

[].name

String

Product name

[].description

String

Product description

[].logo

Null

Product logo file

[].projects

Array

List of all the projects which compose the product

[].projects[].id

Number

Project identifier

[].projects[].externalId

String

Project external identifier

[].projects[].name

String

Project name

[].projects[].description

String

Project description

[].projects[].logo

Null

Project logo file

[].projects[].active

Boolean

Is an active project?

[].projects[].backlogId

String

Project identifier in the backlog

HTTP response

HTTP/1.1 200 OK
Content-Length: 290
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 1,
  "name" : "Test",
  "description" : "Test product",
  "logo" : null,
  "projects" : [ {
    "id" : 1,
    "externalId" : "test",
    "name" : "Test",
    "description" : "Test project",
    "logo" : null,
    "active" : true,
    "backlogId" : "999"
  } ]
} ]

10.2. Get single product

Path parameters

Table 1. /api/products/{id}
Parameter Description

id

Product identifier

Curl request

$ curl 'http://localhost:8080/api/products/1' -i -X GET

Response fields

Path Type Description

id

Number

Product identifier

name

String

Product name

description

String

Product description

logo

Null

Product logo file

projects

Array

List of all the projects which compose the product

projects[].id

Number

Project identifier

projects[].externalId

String

Project external identifier

projects[].name

String

Project name

projects[].description

String

Project description

projects[].logo

Null

Project logo file

projects[].active

Boolean

Is an active project?

projects[].backlogId

String

Project identifier in the backlog

HTTP response

HTTP/1.1 200 OK
Content-Length: 286
Content-Type: application/json;charset=UTF-8

{
  "id" : 1,
  "name" : "Test",
  "description" : "Test product",
  "logo" : null,
  "projects" : [ {
    "id" : 1,
    "externalId" : "test",
    "name" : "Test",
    "description" : "Test project",
    "logo" : null,
    "active" : true,
    "backlogId" : "999"
  } ]
}

10.3. New product

Request parameters

Parameter Description

name

Product name

description

Product description

projects

Comma separated values of the project identifiers which belong to the product

Request parts

Part Description

logo

Product logo file

Curl request

$ curl 'http://localhost:8080/api/products' -i -X POST \
    -H 'Content-Type: multipart/form-data' \
    -F 'logo=@logo.jpg;type=image/jpeg' \
    -F 'name=Test' \
    -F 'description=Test product' \
    -F 'projects=1'

HTTP response

HTTP/1.1 201 Created

HTTP response name already exists

HTTP/1.1 409 Conflict

10.4. Update product

Path parameters

Table 2. /api/products/{id}
Parameter Description

id

Product identifier

Request parameters
Parameter Description

name

Product name

description

Product description

projects

Comma separated values of the project identifiers which belong to the product

Request parts
Part Description

logo

Product logo file

Curl request
$ curl 'http://localhost:8080/api/products/1' -i -X PUT \
    -H 'Content-Type: multipart/form-data' \
    -F 'logo=@logo.jpg;type=image/jpeg' \
    -F 'name=Test' \
    -F 'description=Test product' \
    -F 'projects=1'
HTTP response
HTTP/1.1 200 OK

HTTP response name already exists

HTTP/1.1 409 Conflict

10.5. Delete product

Path parameters

Table 1. /api/products/{id}
Parameter Description

id

Product identifier

Curl request

$ curl 'http://localhost:8080/api/products/1' -i -X DELETE

HTTP response

HTTP/1.1 200 OK

10.6. Get product evaluation

Path parameters

Table 1. /api/products/{id}/current
Parameter Description

id

Product identifier

Curl request

$ curl 'http://localhost:8080/api/products/1/current' -i -X GET

Response fields

Path Type Description

[].id

String

Strategic indicator identifier

[].dbId

Number

Strategic indicator database identifier

[].name

String

Strategic indicator name

[].description

String

Strategic indicator description

[].value.first

Number

Strategic indicator numerical value

[].value.second

String

Strategic indicator category

[].confidence80

Null

Strategic indicator forecasting 80% confidence interval

[].confidence95

Null

Strategic indicator forecasting 95% confidence interval

[].value_description

String

Readable strategic indicator value and category

[].rationale

String

Strategic indicator evaluation rationale

[].probabilities

Array

Strategic indicator categories list

[].probabilities[].id

Number

Strategic indicator category identifier

[].probabilities[].label

String

Strategic indicator category label

[].probabilities[].value

Null

Strategic indicator category probability

[].probabilities[].color

String

Strategic indicator category hexadecimal color

[].probabilities[].upperThreshold

Number

Strategic indicator category upper threshold

[].date

Array

Strategic indicator assessment date

[].datasource

String

Strategic indicator source of data

[].categories_description

String

Array with the strategic indicator categories and thresholds

[].hasBN

Boolean

Does the strategic indicator have a Bayesian Network?

[].hasFeedback

Boolean

Does the strategic indicator have any feedback

[].forecastingError

Null

Errors in the forecasting

[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].missingFactors

Null

Factors without assessment

HTTP response

HTTP/1.1 200 OK
Content-Length: 1005
Content-Type: application/json;charset=UTF-8

[ {
  "id" : "blocking",
  "dbId" : 1,
  "name" : "Blocking",
  "description" : "Blocking elements",
  "value" : {
    "first" : 0.8,
    "second" : "Good"
  },
  "value_description" : "Good (0.80)",
  "rationale" : "factors: {...}, formula: ..., value: ..., category: ...",
  "probabilities" : [ {
    "id" : 10,
    "label" : "Good",
    "value" : null,
    "color" : "#00ff00",
    "upperThreshold" : 0.66
  }, {
    "id" : 11,
    "label" : "Neutral",
    "value" : null,
    "color" : "#ff8000",
    "upperThreshold" : 0.33
  }, {
    "id" : 11,
    "label" : "Bad",
    "value" : null,
    "color" : "#ff0000",
    "upperThreshold" : 0.0
  } ],
  "date" : [ 2019, 7, 7 ],
  "datasource" : "Q-Rapdis Dashboard",
  "categories_description" : "[Good (0,67), Neutral (0,33), Bad (0,00)]",
  "hasBN" : false,
  "hasFeedback" : false,
  "confidence80" : null,
  "confidence95" : null,
  "forecastingError" : null,
  "mismatchDays" : 0,
  "missingFactors" : null
} ]

10.7. Get product detailed evaluation

Path parameters

Table 1. /api/products/{id}/projects/current
Parameter Description

id

Product identifier

Curl request

$ curl 'http://localhost:8080/api/products/1/projects/current' -i -X GET

Response fields

Path Type Description

[].first

String

Project external identifier

[].second

Array

List of the current assessment of every strategic indicator inside the project

[].second[].id

String

Strategic indicator identifier

[].second[].dbId

Number

Strategic indicator database identifier

[].second[].name

String

Strategic indicator name

[].second[].description

String

Strategic indicator description

[].second[].value.first

Number

Strategic indicator numerical value

[].second[].value.second

String

Strategic indicator category

[].second[].confidence80

Null

Strategic indicator forecasting 80% confidence interval

[].second[].confidence95

Null

Strategic indicator forecasting 95% confidence interval

[].second[].value_description

String

Readable strategic indicator value and category

[].second[].rationale

String

Strategic indicator evaluation rationale

[].second[].probabilities

Array

Strategic indicator categories list

[].second[].probabilities[].id

Number

Strategic indicator category identifier

[].second[].probabilities[].label

String

Strategic indicator category label

[].second[].probabilities[].value

Null

Strategic indicator category probability

[].second[].probabilities[].color

String

Strategic indicator category hexadecimal color

[].second[].probabilities[].upperThreshold

Number

Strategic indicator category upper threshold

[].second[].date

Array

Strategic indicator assessment date

[].second[].datasource

String

Strategic indicator source of data

[].second[].categories_description

String

Array with the strategic indicator categories and thresholds

[].second[].hasBN

Boolean

Does the strategic indicator have a Bayesian Network?

[].second[].hasFeedback

Boolean

Does the strategic indicator have any feedback

[].second[].forecastingError

Null

Errors in the forecasting

[].second[].mismatchDays

Number

Maximum difference (in days) when there is difference in the evaluation dates between the strategic indicator and some quality factors

[].second[].missingFactors

Null

Factors without assessment

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1129

[ {
  "first" : "test",
  "second" : [ {
    "id" : "blocking",
    "dbId" : 1,
    "name" : "Blocking",
    "description" : "Blocking elements",
    "value" : {
      "first" : 0.8,
      "second" : "Good"
    },
    "value_description" : "Good (0.80)",
    "rationale" : "factors: {...}, formula: ..., value: ..., category: ...",
    "probabilities" : [ {
      "id" : 10,
      "label" : "Good",
      "value" : null,
      "color" : "#00ff00",
      "upperThreshold" : 0.66
    }, {
      "id" : 11,
      "label" : "Neutral",
      "value" : null,
      "color" : "#ff8000",
      "upperThreshold" : 0.33
    }, {
      "id" : 11,
      "label" : "Bad",
      "value" : null,
      "color" : "#ff0000",
      "upperThreshold" : 0.0
    } ],
    "date" : [ 2019, 7, 7 ],
    "datasource" : "Q-Rapdis Dashboard",
    "categories_description" : "[Good (0,67), Neutral (0,33), Bad (0,00)]",
    "hasBN" : false,
    "hasFeedback" : false,
    "confidence80" : null,
    "confidence95" : null,
    "forecastingError" : null,
    "mismatchDays" : 0,
    "missingFactors" : null
  } ]
} ]

11. Profiles

11.1. Get all profiles

Curl request

$ curl 'http://localhost:8080/api/profiles' -i -X GET

Response fields

Path Type Description

[].id

Number

Profile identifier

[].name

String

Profile name

[].description

String

Profile description

[].qualityLevel

String

Profile quality level

[].dsiView

String

Default visualization for Detailed Strategic Indicators view

[].dqfView

String

Default visualization for Detailed Factors view

[].mView

String

Default visualization for Metrics view

[].qmView

String

Default visualization for Quality Model view

[].projects

Array

List of all the projects which compose the profile

[].projects[].id

Number

Project identifier

[].projects[].externalId

String

Project external identifier

[].projects[].name

String

Project name

[].projects[].description

String

Project description

[].projects[].logo

Null

Project logo file

[].projects[].active

Boolean

Is an active project?

[].projects[].backlogId

String

Project identifier in the backlog

[].allSIs

Array

List of pairs which specify for each project of profile, if it show all strategic indicators or not

[].allSIs[].first

Number

Project identifier

[].allSIs[].second

Boolean

Are all strategic indicators shown?

HTTP response

HTTP/1.1 200 OK
Content-Length: 457
Content-Type: application/json;charset=UTF-8

[ {
  "id" : 1,
  "name" : "Test",
  "description" : "Test profile",
  "qualityLevel" : "ALL",
  "dsiView" : "Radar",
  "dqfView" : "Radar",
  "mView" : "Gauge",
  "qmView" : "Graph",
  "projects" : [ {
    "id" : 1,
    "externalId" : "test",
    "name" : "Test",
    "description" : "Test project",
    "logo" : null,
    "active" : true,
    "backlogId" : "999"
  } ],
  "allSIs" : [ {
    "first" : 1,
    "second" : true
  } ]
} ]

11.2. Get single profile

Path parameters

Table 1. /api/profiles/{id}
Parameter Description

id

Profile identifier

Curl request

$ curl 'http://localhost:8080/api/profiles/1' -i -X GET

Response fields

Path Type Description

id

Number

Profile identifier

name

String

Profile name

description

String

Profile description

qualityLevel

String

Profile quality level

dsiView

String

Default visualization for Detailed Strategic Indicators view

dqfView

String

Default visualization for Detailed Factors view

mView

String

Default visualization for Metrics view

qmView

String

Default visualization for Quality Model view

projects

Array

List of all the projects which compose the profile

projects[].id

Number

Project identifier

projects[].externalId

String

Project external identifier

projects[].name

String

Project name

projects[].description

String

Project description

projects[].logo

Null

Project logo file

projects[].active

Boolean

Is an active project?

projects[].backlogId

String

Project identifier in the backlog

allSIs

Array

List of pairs which specify for each project of profile, if it show all strategic indicators or not

allSIs[].first

Number

Project identifier

allSIs[].second

Boolean

Are all strategic indicators shown?

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 453

{
  "id" : 1,
  "name" : "Test",
  "description" : "Test profile",
  "qualityLevel" : "ALL",
  "dsiView" : "Radar",
  "dqfView" : "Radar",
  "mView" : "Gauge",
  "qmView" : "Graph",
  "projects" : [ {
    "id" : 1,
    "externalId" : "test",
    "name" : "Test",
    "description" : "Test project",
    "logo" : null,
    "active" : true,
    "backlogId" : "999"
  } ],
  "allSIs" : [ {
    "first" : 1,
    "second" : true
  } ]
}

11.3. New profile

Request parameters

Parameter Description

name

Profile name

description

Profile description

quality_level

One of three possible options: ALL, FACTOR_METRIC, METRICS

dsi_view

Value for default Detailed Strategic Indicators view representation: Radar, Stacked or Polar

dqf_view

Value for default Detailed Factors view representation: Radar, Stacked or Polar

m_view

Value for default Metrics view representation: Gauge or Slider

qm_view

Value for default Quality Model view representation: Graph or Sunburst

projects_info

Array of JSON object { prj: project identifier, all_si: are all strategic indicators shown? , si: list of selected strategic indicators }

Request parts

Snippet request-parts not found for operation::profiles/add

Curl request

$ curl 'http://localhost:8080/api/profiles' -i -X POST \
    -H 'Content-Type: multipart/form-data' \
    -d 'name=Test&description=Test+profile&quality_level=ALL&dsi_view=Radar&dqf_view=Radar&m_view=Gauge&qm_view=Graph&projects_info=%5B%7B%22si%22%3A%5B%5D%2C%22prj%22%3A1%2C%22all_si%22%3Atrue%7D%5D'

HTTP response

HTTP/1.1 201 Created

HTTP response name already exists

HTTP/1.1 409 Conflict

11.4. Update profile

Path parameters

Table 3. /api/products/{id}
Parameter Description

id

Product identifier

Request parameters
Parameter Description

name

Profile name

description

Profile description

quality_level

One of three possible options: ALL, FACTOR_METRIC, METRICS

dsi_view

Value for default Detailed Strategic Indicators view representation: Radar, Stacked or Polar

dqf_view

Value for default Detailed Factors view representation: Radar, Stacked or Polar

m_view

Value for default Metrics view representation: Gauge or Slider

qm_view

Value for default Quality Model view representation: Graph or Sunburst

projects_info

Array of JSON object { prj: project identifier, all_si: are all strategic indicators shown? , si: list of selected strategic indicators }

Request parts

Snippet request-parts not found for operation::profiles/update

Curl request
$ curl 'http://localhost:8080/api/profiles/1' -i -X PUT \
    -H 'Content-Type: multipart/form-data' \
    -d 'name=Test&description=Test+profile&quality_level=ALL&dsi_view=Radar&dqf_view=Radar&m_view=Gauge&qm_view=Graph&projects_info=%5B%7B%22si%22%3A%5B%5D%2C%22prj%22%3A1%2C%22all_si%22%3Atrue%7D%5D'
HTTP response
HTTP/1.1 200 OK

HTTP response name already exists

HTTP/1.1 409 Conflict

11.5. Delete profile

Path parameters

Table 1. /api/profiles/{id}
Parameter Description

id

Profile identifier

Curl request

$ curl 'http://localhost:8080/api/profiles/1' -i -X DELETE

HTTP response

HTTP/1.1 200 OK

12. Others

12.1. Get forecasting techniques

Curl request

$ curl 'http://localhost:8080/api/forecastTechniques' -i -X GET

Response fields

Path Type Description

[]

Array

Array with the forecasting techniques names

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 26

[ "PROPHET", "ETS", "NN" ]

12.2. Get project milestones

Request parameters

Parameter Description

prj

Project external identifier

date

Minimum milestone date (yyyy-mm-dd)

Curl request

$ curl 'http://localhost:8080/api/milestones?prj=test&date=2021-05-25' -i -X GET

Response fields

Path Type Description

[].date

String

Milestone date

[].name

String

Milestone name

[].description

String

Milestone description

[].type

String

Milestone type

HTTP response

HTTP/1.1 200 OK
Content-Length: 137
Content-Type: application/json;charset=UTF-8

[ {
  "date" : "2021-05-28",
  "name" : "Version 1.3",
  "description" : "Version 1.3 adding new features",
  "type" : "Release"
} ]

12.3. Get project phases

Request parameters

Parameter Description

prj

Project external identifier

date

Minimum phase date (yyyy-mm-dd)

Curl request

$ curl 'http://localhost:8080/api/phases?prj=test' -i -X GET

Response fields

Path Type Description

[].dateFrom

String

Phase from date

[].name

String

Phase name

[].description

String

Phase description

[].dateTo

String

Phase to date

HTTP response

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 156

[ {
  "dateFrom" : "2021-05-10",
  "name" : "Development",
  "description" : "Implementation of project functionalities",
  "dateTo" : "2021-06-09"
} ]