[ https://issues.apache.org/jira/browse/ATLAS-5053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aditya Gupta reopened ATLAS-5053: --------------------------------- > Add recursive validation in Basic Search API to fix regression issue > -------------------------------------------------------------------- > > Key: ATLAS-5053 > URL: https://issues.apache.org/jira/browse/ATLAS-5053 > Project: Atlas > Issue Type: Bug > Components: atlas-core > Reporter: Paresh Devalia > Assignee: Aditya Gupta > Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > A regression issue has been identified in the /v2/search/basic API of Apache > Atlas, where the recursive validation logic for entityFilters was > unintentionally omitted in a previous fix. > As a result of this missing recursive check, the API is returning incorrect > responses and throwing a Bad Request error for complex filter scenarios > involving nested filter groups. > Example Request: > Endpoint: > http://localhost:21000/api/atlas/v2/search/basic > Request Body: > {code:java} > { > "excludeDeletedEntities": true, > "includeSubClassifications": true, > "includeSubTypes": true, > "includeClassificationAttributes": true, > "entityFilters": { > "condition": "AND", > "criterion": [ > { > "attributeName": "__classificationNames", > "operator": "eq", > "attributeValue": "GameCatA" > }, > { > "condition": "AND", > "criterion": [ > { > "attributeName": "year_held", > "operator": "eq", > "attributeValue": "2006" > } > ] > } > ] > }, > "tagFilters": null, > "attributes": [ > "__classificationNames", > "__typeName", > "year_held" > ], > "limit": 25, > "offset": 0, > "typeName": "tournament", > "classification": null, > "termName": null > } > {code} > Observed Response: > {code:java} > { > "errorCode": "ATLAS-400-00-103", > "errorMessage": "Invalid operator specified for attribute: null" > } > {code} > As one can see, inside entity filter, we have criterion which in itself has > condition and criterion i.e following nested pattern[recursively filtered], > si in such case it gives: > { > "errorCode": "ATLAS-400-00-103", > "errorMessage": "Invalid operator specified for attribute: null" > } > Root Cause: > The recursive structure in the entityFilters is not being properly validated. > The current implementation only supports basic filter conditions (i.e., flat > filters added using the "Add Filter" option) and fails to handle nested or > grouped filters (i.e., filters added via "Add Filter Group"). -- This message was sent by Atlassian Jira (v8.20.10#820010)