Search code examples
apirestjfrog-xray

Jfrog X-RAY API not working for "Get Reports List"


Following reference Xray REST API - GetReportList

Below example returns - {"error":"Failed to parse request pagination params"}

##  Get Reports List
curl -s --request POST \
  --user 'svc_api_xray':$(cat ~/secrets/.svc_api_xray | base64 --decode) \
  --data '{
  "filters": {
    "name": "shared-installers",
    "status": [
      "completed"
    ],
    "report_type": [
      "vulnerability"
    ],
    "author": "svc_api_xray ",
    "start_time_range": {
      "start": "2022-07-13T12:22:16Z",
      "end": "2022-07-13T12:22:16Z"
    },
    "end_time_range": {
      "start": "2022-07-13T12:22:16Z",
      "end": "2022-07-13T12:22:16Z"
    }
  }
}' \
  ${ARTIFACTORY_URL}/xray/api/v1/reports

Have tried removing elements until all I have is report_type and still get the same error. Is there something missing from this documentation?

If I use the pagination parameters in the example I get the following error

[1] 19905
[2] 19906
[3] 19907
[2]-  Done                    page_num=1
[3]+  Done                    num_of_rows=10
{"error":"Failed to parse request pagination params"}

Solution

  • So although Gajapathi was partly correct, the pagination parameters were not optional, the issue here was the lack of quotes around the Artifactory URL. Guess this may be a requirement of pagination?

    The final solution, with a slightly different filter:

    curl --location --silent --request POST \
      --user ${USER}:${API_TOKEN} \
      --data '{
      "filters": {
        "status": [
          "completed"
        ],
        "report_type": [
          "vulnerability"
        ]
      }
    }' \
      "${ARTIFACTORY_URL}/xray/api/v1/reports?direction=asc&page_num=1&num_of_rows=10" | jq -r