Figuring out which NetSuite permissions you should include on a role for record access can be tricky. This repo provides simplified tables generated from various sources to make it easy to determine which permissions are required for data access.
Lookup the table in this CSV to find any required permissions.
Not all tables will have permissions specified. For instance transactionAddressBook
is not indicated.
Tim Dietrich has a great site which lists out tables and their permissions.
You can find a simplified CSV here with identical column names as the previous CSV
This seems to be pulled from the record catalog JSON but has slightly different content, so it could be customized, which is why you should check here after checking the NetSuite-provided catalog.
Check out this CSV for community-documented permissions which are not found in the above sources.
Some NetSuite permissions aren't in the above sources and you need to manually search the NetSuite documentation to find specific permissions that are required.
If you find a permission that is missing from the Community Documented Permissions, please add it to the CSV and submit a PR!
For instance, the "Transaction History" requires some additional permissions which are not found anywhere else but in this document.
Unfortunately, the permissions required to access specific data on each account is different. This is due to a couple of reasons:
- Different NetSuite-level permissions are enabled/disabled.
- Custom formula fields could reference related records which require additional permissions. For example, a field on a sales order could reference a custom field on a customer record, so the customer permission would be required.
- Custom scripts could be running which require additional permissions.
- Fields or scripts included in a bundle could require additional permissions.
It's possible that there are additional permissions you'll need to add beyond what is specified in this repo.
Here's how to get a dump of all tables in the account:
http -v GET https://$NETSUITE_ACCOUNT.app.netsuite.com/app/recordscatalog/rcendpoint.nl action==getRecordTypes data=='{"structureType":"FLAT"}' "Cookie: $NETSUITE_COOKIE"
And structure for a specific table:
https://$NETSUITE_ACCOUNT.app.netsuite.com/app/recordscatalog/rcendpoint.nl action==getRecordTypeDetail data=='{"scriptId":"workflowActionScript","path":""}' "Cookie: $NETSUITE_COOKIE"