Find Data Resources
Find data resources in the identity store. The command uses the PV_DATA_RESOURCE public view to find data. Any filters passed should apply to this public view.
GET https://instance.securid.com/aveksa/command.submit?cmd=findDataResources
Request
Parameters
| findDataResources | |
| format | properties - (Default) Returns the response as key=value pairs. When multiple objects are returned, values are comma-delimited: key=value1,value2,value3.json - Returns the response as JSON.csv - Returns the response as comma-separated values.tsv - Returns the response as tab-separated values.xml - Returns the response as XML. |
| delimiter | The delimiter to use between values for csv and properties formats |
| returnColumns | The names of the columns to return. |
| returnMaxRows | The maximum number of objects to return |
| distinct | true, false Returns only distinct values, equivalent to the distinct keyword in SQL. |
| sortByColumns | The results will be sorted based on the columns listed using comma as the delimiter if multiple columns are specified. Refer to Columns table below. |
| sortDirection | Determines sorting order. asc for ascending, desc for descending. If not specified, the natural order returned by the database is used. |
| includeHeaderRow | true, false Include column headers when the return format is csv or tsv. (Default) true |
| ignoreCase | true, false Returns case-insensitive search results for specified filter parameters. (Default) false |
Filter Parameters
Any column listed in the Columns table can be passed as a filter parameter to narrow results. Filters are matched against the PV_DATA_RESOURCE public view.
Query logic
| Scenario | Behavior |
|---|---|
Two different parameters: state=X&edc_id=3 | AND. Returns data resources with state X that belong to collector 3. |
Same parameter repeated: name=Share1&name=Share2 | OR within that field. Returns data resources named Share1 or Share2. |
Mixed: state=X&name=Share1&name=Share2 | (state is X) AND (name is Share1 or Share2) |
A single API call cannot return data resources where state=X OR edc_id=3. OR logic between different filter parameters is not supported.
Workaround: Make separate requests for each filter condition. Merge and deduplicate the results client-side.
Columns
| id | [Primary Key] Unique data resource identifier |
| edc_id | [Foreign Key referencing the Enterprise Data Collector] Collector that loaded this resource |
| application_id | [Foreign Key referencing APPLICATION.ID] Application or directory this resource belongs to |
| name | Name of the data resource |
| display_name | Display name of the data resource |
| alt_name | Alternate name for the data resource |
| fully_qualified_name | Full path or fully qualified name of the resource (e.g., \\server\share) |
| external_id | External identifier from the source system |
| server | Server hosting the data resource |
| root_share | Root share path of the data resource |
| state | Current state of the data resource |
| state_change_date | Date and time the state last changed |
| collected_state_code | State code as returned by the collector |
| classification | Classification label assigned to this resource |
| classification_allow | Access types permitted based on the classification |
| classification_deny | Access types denied based on the classification |
| owner_id | [Foreign Key referencing USERS.ID] User ID of the resource owner |
| owner_display_name | Display name of the resource owner |
| owner_reason | Reason the owner was assigned to this resource |
| is_owner_suggested | Whether the owner was suggested by the system rather than manually assigned |
| reviewed_date | Date the resource was last reviewed |
| creation_date | Date and time the resource record was created |
| deletion_date | Date and time the resource record was removed |
| cas3 … casN | Custom string-type attribute values. Reference names are configured per instance. |
Headers
Bearer token | |
| Accept | application/json |
| Content-Type | application/json |
Response
Parameters
The API returns the requested columns specified by returnColumns as output. If returnColumns is unspecified then all columns listed will be returned.
Examples
All columns
Omit returnColumns to return every field for each data resource.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=json&returnMaxRows=5" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findDataResources",
"format": "json",
"returnMaxRows": "5"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findDataResources",
format: "json",
returnMaxRows: "5"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findDataResources": [
{
"id": "27060",
"edc_id": "-3",
"application_id": "-2",
"name": "Windows Share 1",
"fully_qualified_name": "\\\\win01",
"owner_id": "0",
"server": "",
"root_share": "",
"state": "X",
"state_change_date": "",
"reviewed_date": "",
"classification": "",
"classification_allow": "",
"classification_deny": "",
"owner_reason": "",
"owner_display_name": "",
"creation_date": "",
"deletion_date": "",
"collected_state_code": "",
"is_owner_suggested": "",
"display_name": "",
"external_id": "",
"cas3": "",
"cas9": ""
}
]
}
Specific columns
Use returnColumns to limit the response to the fields you need.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=json&returnMaxRows=5&returnColumns=id,name,fully_qualified_name,state,owner_display_name" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findDataResources",
"format": "json",
"returnMaxRows": "5",
"returnColumns": "id,name,fully_qualified_name,state,owner_display_name"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findDataResources",
format: "json",
returnMaxRows: "5",
returnColumns: "id,name,fully_qualified_name,state,owner_display_name"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
- 412 Invalid column
{
"findDataResources": [
{
"id": "27060",
"name": "Windows Share 1",
"fully_qualified_name": "\\\\win01",
"state": "X",
"owner_display_name": ""
}
]
}
<html>
<head><title>Error</title></head>
<body>The parameter returncolumns contains an invalid column - `invalid_col`.
Query String=cmd=findDataResources&format=json&returnMaxRows=2&returnColumns=id,invalid_col</body>
</html>
Filter by a single value
Pass any column name as a query parameter to filter results. The example returns data resources where state is X.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=json&returnMaxRows=5&returnColumns=id,name,state&state=X" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findDataResources",
"format": "json",
"returnMaxRows": "5",
"returnColumns": "id,name,state",
"state": "X"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findDataResources",
format: "json",
returnMaxRows: "5",
returnColumns: "id,name,state",
state: "X"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findDataResources": [
{
"id": "27060",
"name": "Windows Share 1",
"state": "X"
}
]
}
Filter with OR logic
Repeat the same parameter with different values to match any of them. The example returns data resources where name is Windows Share 1 or Windows Share 2.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=json&returnMaxRows=5&returnColumns=id,name,state&name=Windows Share 1&name=Windows Share 2" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = [
("cmd", "findDataResources"),
("format", "json"),
("returnMaxRows", "5"),
("returnColumns", "id,name,state"),
("name", "Windows Share 1"),
("name", "Windows Share 2")
]
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
const params = new URLSearchParams();
params.append('cmd', 'findDataResources');
params.append('format', 'json');
params.append('returnMaxRows', '5');
params.append('returnColumns', 'id,name,state');
params.append('name', 'Windows Share 1');
params.append('name', 'Windows Share 2');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params,
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findDataResources": [
{
"id": "27060",
"name": "Windows Share 1",
"state": "X"
}
]
}
Case-insensitive filter
Filters are case-sensitive by default. Set ignoreCase=true to match regardless of case. The example passes state=x in lowercase and still returns the matching record.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=json&returnMaxRows=5&returnColumns=id,name,state&state=x&ignoreCase=true" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findDataResources",
"format": "json",
"returnMaxRows": "5",
"returnColumns": "id,name,state",
"state": "x",
"ignoreCase": "true"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findDataResources",
format: "json",
returnMaxRows: "5",
returnColumns: "id,name,state",
state: "x",
ignoreCase: "true"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findDataResources": [
{
"id": "27060",
"name": "Windows Share 1",
"state": "X"
}
]
}
Sort ascending
Use sortByColumns with a column name and sortDirection=asc to sort results. The example sorts by name.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=json&returnMaxRows=5&returnColumns=id,name,state&sortByColumns=name&sortDirection=asc" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findDataResources",
"format": "json",
"returnMaxRows": "5",
"returnColumns": "id,name,state",
"sortByColumns": "name",
"sortDirection": "asc"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findDataResources",
format: "json",
returnMaxRows: "5",
returnColumns: "id,name,state",
sortByColumns: "name",
sortDirection: "asc"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findDataResources": [
{
"id": "27060",
"name": "Windows Share 1",
"state": "X"
}
]
}
Sort descending
Set sortDirection=desc to reverse the order.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=json&returnMaxRows=5&returnColumns=id,name,state&sortByColumns=name&sortDirection=desc" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findDataResources",
"format": "json",
"returnMaxRows": "5",
"returnColumns": "id,name,state",
"sortByColumns": "name",
"sortDirection": "desc"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.json())
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findDataResources",
format: "json",
returnMaxRows: "5",
returnColumns: "id,name,state",
sortByColumns: "name",
sortDirection: "desc"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
{
"findDataResources": [
{
"id": "27060",
"name": "Windows Share 1",
"state": "X"
}
]
}
CSV with custom delimiter
Set format=csv for a comma-separated response. Use delimiter to change the separator character.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=csv&returnMaxRows=5&returnColumns=id,name,state&delimiter=~" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findDataResources",
"format": "csv",
"returnMaxRows": "5",
"returnColumns": "id,name,state",
"delimiter": "~"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.text)
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findDataResources",
format: "csv",
returnMaxRows: "5",
returnColumns: "id,name,state",
delimiter: "~"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
id~name~state
27060~Windows Share 1~X
CSV without header row
Set includeHeaderRow=false when your downstream system expects raw data rows without a header.
Request
- Curl
- Python
- Node.js
curl -K -X GET \
"https://instance.securid.com/aveksa/command.submit?cmd=findDataResources&format=csv&returnMaxRows=5&returnColumns=id,name,state&includeHeaderRow=false" \
-H "Authorization: Bearer <token>"
import requests
url = "https://instance.securid.com/aveksa/command.submit"
params = {
"cmd": "findDataResources",
"format": "csv",
"returnMaxRows": "5",
"returnColumns": "id,name,state",
"includeHeaderRow": "false"
}
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, params=params, headers=headers)
print(response.text)
const axios = require('axios');
axios.get("https://instance.securid.com/aveksa/command.submit", {
params: {
cmd: "findDataResources",
format: "csv",
returnMaxRows: "5",
returnColumns: "id,name,state",
includeHeaderRow: "false"
},
headers: { Authorization: "Bearer <token>" }
}).then(r => console.log(r.data));
Response
- 200
27060,Windows Share 1,X
Error responses
A 401 is returned when the token is missing, invalid, or expired. A 412 is returned when returnColumns includes a column name that does not exist in the PV_DATA_RESOURCE public view.
- 401 Invalid token
- 412 Invalid column
<html>
<head><title>Error</title></head>
<body>The token is not valid for the command 'findDataResources'. Token is invalid or expired</body>
</html>
<html>
<head><title>Error</title></head>
<body>The parameter returncolumns contains an invalid column - `invalid_col`.
Query String=cmd=findDataResources&format=json&returnMaxRows=2&returnColumns=id,invalid_col</body>
</html>
Verified with RSA Governance & Lifecycle version 8.0.0.188886 P10_HF01.