Our company is using AppExchange PackageA and AppExchange PackageB that provides similar functionalities and we have signed up MSA with both companies for enhancements. So, developers from PackageA company and PackageB company are working in sandboxes and we would like to restrict the developers from PackageA to not to see any data/metadata related to PackageB and the same is true for developers from PackageB company. i.e., developers from PackageB company should not be able to see any data/metadata related to PackageA. This is not a problem in Production since both are licensed products. But for sandboxes this is an issue.
I am thinking of the below approach.
- Clone the System administrator profile as "Basic Administrator" and remove access to Package A and Package B.
- Create a permission set "PackageA Permissionset" and add access to PackageA.
- Create a permission set "PackageB Permissionset" and add access to PackageB.
- Assign Developers from PackageA and PackageB with the Profile "Basic Administrator"
- Assign Developers from PackageA with the permissionset "PackageA Permissionset".
- Assign Developers from PackageB with the Permissionset "PackageB Permissionset".
Is this enough or do I need to restrict the access to Objects, Fields, Apex Classes, Visual Force Pages etc?