Resource profiles
Please note JavaScript support is exclusive to SEAR 0.7.0 and later.
Valid operators for this type of request
| Operator | Valid |
|---|---|
| add | ✅ |
| alter | ✅ |
| delete | ✅ |
| extract | ✅ |
| search | ✅ |
Extracting information
SEAR provides the extract and search operators to gather information about general resource profiles.
Extracting a specific resource profile
The sample below extracts information about a specific resource profile.
'use strict';
import { sear } from '@mainframe-renewal-project/searjs';
const request = {
"operation": "extract",
"admin_type": "resource",
"resource": "IRR.RADMIN.**",
"class_name": "facility",
};
const response = sear(request, true);
console.log(JSON.stringify(response.result, null, 2));
Returned result
{
"profile": {
"base": {
"base:alter_access_count": 0,
"base:auditing": "FAILURES(READ)",
"base:control_access_count": 0,
"base:create_date": "12/20/23",
"base:global_auditing": "NONE",
"base:last_change_date": "12/20/23",
"base:last_reference_date": "12/20/23",
"base:level": "0",
"base:owner": "ESWIFT",
"base:read_access_count": 0,
"base:universal_access": "READ",
"base:update_access_count": 0,
"base:warn_on_insufficient_access": false
}
},
"return_codes": {
"racf_reason_code": 0,
"racf_return_code": 0,
"saf_return_code": 0,
"sear_return_code": 0
}
}
Searching for resource profiles
Getting a list of all resource profiles in a class
The sample below gets all general resource profiles in the facility class.
'use strict';
import { sear } from '@mainframe-renewal-project/searjs';
const request = {
"operation": "search",
"admin_type": "resource",
"class_name": "facility",
};
const response = sear(request, true);
console.log(JSON.stringify(response.result, null, 2));
Filtering results
The sample below gets all general resource profiles that start with IRR in the facility class. It will return a list of resource profiles, to get metadata on them you will have to run the extract operation on every single resource profile in the list.
'use strict';
import { sear } from '@mainframe-renewal-project/searjs';
const request = {
"operation": "search",
"admin_type": "resource",
"class_name": "facility",
"resource_filter": "IRR",
};
const response = sear(request, true);
console.log(JSON.stringify(response.result, null, 2));
Updating resource profiles
SEAR provides 3 main operators for updating the RACF database, add, alter, and delete.
Creating a new resource profile
The sample below creates a resource profile called IRR.RADMIN.** in the facility class with a UACC of NONE and the owner set to the “eswift” RACF userid.
'use strict';
import { sear } from '@mainframe-renewal-project/searjs';
const request = {
"operation": "add",
"admin_type": "resource",
"resource": "IRR.RADMIN.**",
"class_name": "facility",
"traits": {
"base:universal_access": "None",
"base:owner": "SECADM",
},
};
const response = sear(request, true);
console.log(JSON.stringify(response.result, null, 2));
You can see the full list of traits in the traits/resource section
Altering a resource profile
The sample below sets SECADM as the owner of the IRR.RADMIN.** resource profile in the facility class and sets UACC to “read”
'use strict';
import { sear } from '@mainframe-renewal-project/searjs';
const request = {
"operation": "alter",
"admin_type": "resource",
"resource": "IRR.RADMIN.**",
"class_name": "facility",
"traits": {
"base:universal_access": "Read",
"base:owner": "SECADM",
},
};
const response = sear(request, true);
console.log(JSON.stringify(response.result, null, 2));
You can see the full list of traits in the traits/resource section
Deleting a resource profile
The sample below deletes the IRR.RADMIN.** resource profile in the facility class.
'use strict';
import { sear } from '@mainframe-renewal-project/searjs';
const request = {
"operation": "delete",
"admin_type": "resource",
"resource": "IRR.RADMIN.**",
"class_name": "facility",
};
const response = sear(request, true);
console.log(JSON.stringify(response.result, null, 2));