[ 
https://issues.apache.org/jira/browse/RANGER-4998?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17899188#comment-17899188
 ] 

Radhika Kundam commented on RANGER-4998:
----------------------------------------

For info, with the addition of server-side validations for resource values, API 
requests now properly validate input, ensuring data integrity. The following 
scenarios will trigger a validation error:

1. No values property provided: The values field is missing entirely from the 
request.
2. Empty values list: The values field is present but contains no elements.
3. Blank values entries: The values list includes blank or null elements.

Validation Response: Requests failing these validations will return a 400 Bad 
Request with the following error format:
{code:java}
{
    "statusCode": 1,
    "msgDesc": "[Validation failure: error code[4133], reason[Invalid resource: 
empty or no value provided for <resource-name>], field[null], subfield[null], 
type[]]",
    "messageList": [
        {
            "name": "INVALID_INPUT_DATA",
            "rbKey": "xa.validation.invalid_input_data",
            "message": "Invalid input data"
        }
    ]
}{code}
 

> Add validations to Ensure Non-Empty Resource Values in GDS Resource Creation 
> and Edit APIs
> ------------------------------------------------------------------------------------------
>
>                 Key: RANGER-4998
>                 URL: https://issues.apache.org/jira/browse/RANGER-4998
>             Project: Ranger
>          Issue Type: Bug
>          Components: Ranger
>    Affects Versions: 3.0.0
>            Reporter: Radhika Kundam
>            Assignee: Radhika Kundam
>            Priority: Major
>             Fix For: 3.0.0
>
>
> *Problem statement*
> When trying to create a GDS resource via API, the GDS resource creation is 
> working even though the values are empty for the resource section.
> Ideally, validations have to be added to ensure that the field is not empty 
> during GDS resource creation / update via APIs.
> The validation is already present on the UI.
> *Steps to reproduce*
> 1. As the Ranger admin user, make a call to the API endpoint 
> \{BASE_URL}/service/gds/resource using the following payload
> {code:java}
> {
>    "version":1,
>    "name":"test_shared_resource_{random_str}",
>    "dataShareId":{DATASHARE_ID},
>    "resource":{
>       "database":{
>          "values":[
>             
>          ],
>          "isExcludes":false,
>          "isRecursive":false
>       }
>    }
> }{code}
> The GDS resource creation succeeds even though the values field is empty.
> The GDS resource creation succeeds even with the below payload
> {code:java}
> {
>    "version":1,
>    "name":"test_shared_resource_abcdef",
>    "dataShareId":34,
>    "resource":{
>       "database":{
>          "isExcludes":false,
>          "isRecursive":false
>       }
>    }
> } {code}
> The issue is present in the  PUT /gds/resource/\{resource_id} API endpoint as 
> well.
> *Expectation*
> Validations have to be added to ensure the resources are properly defined 
> during GDS resource creation / edit.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to