Skip to main content

Permissions a scan needs

Which user licence and which permissions the Vulkro integration user needs to read each kind of Salesforce metadata, and why. Vulkro only reads: a scan changes nothing in your org.

Each row says how sure we are of the answer:

  • Documented: stated in Salesforce's Metadata API documentation.
  • Seen: seen on a real org, with the error and the change that fixed it.
  • Expected: our best reading, not yet confirmed on a clean org. If your org behaves differently, the scan's coverage report shows it in Salesforce's own words.

The two permission sets​

SetAPI nameWho needs itGrants
Vulkro readVulkro_ReadEvery connectionAPI Enabled, View Setup and Configuration, View Roles and Role Hierarchy, View All Users, View Health Check, View Event Log Files, Modify Metadata Through Metadata API Functions.
Vulkro code readVulkro_Code_ReadOnly when Code Source is Org Metadata (code read from the org, not Git)Author Apex, Customize Application, and what Salesforce adds with Customize Application: Manage Custom Permissions, Manage Translation, View Setup and Configuration, View Roles and Role Hierarchy.

Salesforce requires Modify Metadata for any Metadata API read. Vulkro never deploys anything.

Two more permissions are optional, and you add them by hand if you want these checks: Manage Users for login history across all users, and Manage Multi-Factor Authentication in API for per-user MFA registration. Do not grant Manage Multi-Factor Authentication in User Interface: Vulkro does not need it and reports it as over-privilege.

Recommended setup: Vulkro read plus Code Source set to Git (Org Settings > Code Source). The scan then reads code from the repository, and the integration user holds no Apex or admin rights in the org. Org settings, users, permissions and sharing are still read from the org.

Vulkro recognises both sets by name and reports each as one informational item listing what it grants, not as over-privilege. A set with one of these names that grants anything more is reported like any other set.

User licence​

QuestionAnswerHow sure
Can a Salesforce Integration licence user (API only) hold Vulkro read?Yes: every permission in Vulkro read is available on the Salesforce API Integration permission set licence.Expected
Can that user read Apex with Vulkro code read?One org needed a licence change for the API-only user before the code retrieve worked. Author Apex may not be offered on the Integration licence. A Salesforce licence user (Minimum Access - Salesforce profile) works.Seen
With Code Source set to Git, is the Integration licence enough?Yes, the code retrieve does not run.Expected

Per metadata type​

"When read" says whether the type is always read from the org, or only when Code Source is Org Metadata (from Git otherwise).

Metadata typeWhen readNeeds (beyond API Enabled)Error without itHow sure
Any Metadata API call (list, retrieve)AlwaysModify Metadata Through Metadata API Functions (or Modify All Data)"use of the Metadata API requires a user with the ModifyAllData or ModifyMetadata permissions"Documented
Settings (Security, Session)AlwaysModify Metadata, View Setup and ConfigurationPartial or empty retrieveDocumented (Modify Metadata), Expected (View Setup)
SharingRulesAlwaysModify Metadata and sharing administration rights, usually Manage Sharing"You do not have the proper permissions to access SharingRules."Seen (refused even with View Setup and Configuration, Customize Application and Author Apex), Expected (Manage Sharing as the fix)
ApexClassOrg Metadata onlyAuthor Apex"Entity type 'ApexClass' is not available in this organization"Seen
ApexTriggerOrg Metadata onlyAuthor ApexSame as ApexClassExpected
ApexPageOrg Metadata onlyAuthor ApexSame as ApexClassExpected
ApexComponentOrg Metadata onlyAuthor ApexSame as ApexClassExpected
AuraDefinitionBundleOrg Metadata onlyModify MetadataNot seenExpected
LightningComponentBundleOrg Metadata onlyModify MetadataNot seenExpected
FlowOrg Metadata onlyModify Metadata (Manage Flow may also be needed for some flow types)Not seenExpected
ConnectedAppOrg Metadata onlyCustomize Application"You do not have the proper permissions to access ConnectedApp"Seen
NamedCredentialOrg Metadata onlyCustomize ApplicationNot seenExpected
RemoteSiteSettingOrg Metadata onlyCustomize ApplicationNot seenExpected
CustomSiteOrg Metadata onlyCustomize ApplicationRetrieve refusedSeen
ExperienceBundleOrg Metadata onlyCustomize Application, plus Setup > Digital Experiences > Settings > Enable ExperienceBundle Metadata APIRetrieve refused or emptySeen (permission), Documented (setting)
NetworkOrg Metadata onlyCustomize Application (Create and Set Up Experiences may also apply)Not seenExpected
ProfileOrg Metadata onlyModify Metadata, View Setup and Configuration. A retrieve returns only the parts of a profile that match the other types in the same retrieve.Partial fileDocumented (partial content), Expected (permissions)
PermissionSetOrg Metadata onlySame as ProfilePartial fileDocumented (partial content), Expected (permissions)
CustomObjectOrg Metadata onlyModify MetadataNot seenExpected

Salesforce adds Manage Custom Permissions, Manage Translation and View Roles and Role Hierarchy automatically when Customize Application is enabled. They are listed in Vulkro code read so the set saves as packaged.

Checking your org​

Before the first scan, the connect wizard checks each type as the connected user and shows anything Salesforce refuses as "Not readable", with the fix from this page. After each scan, Org Settings > Connection shows what Vulkro could read, and every page names what was not read.