BloodHound icon indicating copy to clipboard operation
BloodHound copied to clipboard

[Feature Request] Support for COUNT in Cypher

Open olafhartong opened this issue 2 years ago • 1 comments

Description:

When running a Cypher query over either the UI or API with a COUNT() in there, it will result in an error. In the UI I can expect output/rendering limitations, but over the API this should be possible.

Component(s) Affected:

  • [x] UI
  • [x] API
  • [x] Neo4j
  • [ ] PostgreSQL
  • [ ] Data Collector (SharpHound, AzureHound)
  • [ ] Other (tooling, documentation, etc.)

Steps to Reproduce:

  1. Go to [the API explorer]
  2. Navigate to graphs/cypher and click try out
  3. Enter the following json blob as body
{
  "include_properties": true,
  "query": "MATCH (x:Group{highvalue:true}) RETURN COUNT(x)"
}
  1. This results in this error
{
  "http_status": 500,
  "timestamp": "2023-09-25T18:31:11.914962335Z",
  "request_id": "b97e1e4b-950d-4528-a65d-fe35a62b183e",
  "errors": [
    {
      "context": "",
      "message": "no matching target given for type: int64"
    }
  ]
}

Even trying to fool it with a string is resulting in a similar error

{
  "include_properties": true,
  "query": "MATCH (x:Group) RETURN toString(COUNT(x))"
}
{
  "http_status": 500,
  "timestamp": "2023-09-25T18:39:50.388734672Z",
  "request_id": "b412b4a1-456e-4c20-af01-d82e95a7c71a",
  "errors": [
    {
      "context": "",
      "message": "no matching target given for type: string"
    }
  ]
}

Expected Behavior:

I would like to be able to count data and get results ;)

Actual Behavior:

I get errors.

BloodHound: CE- latest (today=09/25) (af5b2e6cb00a)

olafhartong avatar Sep 25 '23 18:09 olafhartong