mcpField
P
platform-permission-set-generate

platform-permission-set-generate

github.com/forcedotcom安全1.1k6.6k 次安装1 天前更新
代码仓库

关于 platform-permission-set-generate

用于生成和编辑 Salesforce 权限集元数据的技能。它指导配置对象、字段、用户、应用、选项卡及可选代码或 Agent 访问,并检查常见部署失败原因。

主要功能

  1. 01定义权限集名称和用途
  2. 02配置对象与字段权限
  3. 03设置用户权限和应用可见性
  4. 04授予可选代码及 Agent 访问权限
  5. 05检查元数据名称和部署风险

适用场景

  1. 01为特定用户组创建权限集
  2. 02编辑指定对象和字段的访问权限
  3. 03使用 Salesforce CLI 部署前检查元数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/forcedotcom/sf-skills --skill platform-permission-set-generate

安装后在 Claude Code 中输入/platform-permission-set-generate确认已加载。

详细介绍

适用场景

在生成或编辑权限集元数据,或授予对象、字段、用户和应用权限时使用。

步骤 1:定义核心属性

首先定义必需的权限集属性:

<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>YourPermissionSetName</fullName>
    <label>Display Name for Administrators</label>
    <description>Clear description of purpose and intended audience</description>
</PermissionSet>

命名约定:

  • 使用描述性 API 名称(例如,Sales_Manager_Access)

步骤 2:配置对象权限

为标准对象和自定义对象添加 CRUD 权限:

<objectPermissions>
    <allowCreate>true</allowCreate>
    <allowRead>true</allowRead>
    <allowEdit>true</allowEdit>
    <allowDelete>false</allowDelete>
    <modifyAllRecords>false</modifyAllRecords>
    <viewAllRecords>false</viewAllRecords>
    <viewAllFields>false</viewAllFields>
    <object>Account</object>
</objectPermissions>

步骤 3:设置字段级安全性

为敏感字段或自定义字段定义字段权限:

<fieldPermissions>
    <editable>true</editable>
    <readable>true</readable>
    <field>Account.SSN__c</field>
</fieldPermissions>

重要事项:

  • 必需字段绝不能出现在字段权限列表中。平台不允许为必需字段授予字段级安全性,这会导致部署失败。
  • 添加任何字段之前,请根据对象元数据确认该字段存在且不是必需字段。
  • 字段元数据包含 <required>true</required> 时,该字段为必需字段:
  • 公式字段不可编辑
  • 主从关系字段在子对象(明细对象)上属于必需字段
<fields>
    <fullName>FieldName__c</fullName>
    <required>true</required>
</fields>
  • 字段引用请使用 ObjectName.FieldName 格式。
  • 用户需要编辑权限时,请将 readable 和 editable 都设为 true;editable 隐含 readable。
  • 如果需要显示所有字段,也可以启用对象权限 "viewAllFields"。
  • 仅授予请求中明确指定的字段权限。切勿通过匹配请求中提及的其他字段来臆造字段(例如,请求指定了 BillingAddress/BillingCity,并不意味着可以同时添加对应的 Shipping* 字段)——即使臆造字段的名称看起来合理,也可能导致部署失败。

步骤 4:授予用户权限

为功能和能力添加系统级权限:

<userPermissions>
    <enabled>true</enabled>
    <name>ApiEnabled</name>
</userPermissions>
<userPermissions>
    <enabled>true</enabled>
    <name>RunReports</name>
</userPermissions>

常见权限:

  • ApiEnabled:API 访问权限
  • ViewSetup:查看 Setup 菜单
  • ManageUsers:用户管理
  • RunReports:运行报表

需要进行安全审查的权限:

  • ViewAllData:读取所有记录
  • ModifyAllData:编辑所有记录
  • ManageUsers:用户管理

步骤 5:配置应用和选项卡可见性

让用户可以查看应用和选项卡:

<applicationVisibilities>
    <application>Sales_Console</application>
    <visible>true</visible>
</applicationVisibilities>
<tabSettings>
    <tab>CustomTab__c</tab>
    <visibility>Visible</visibility>
</tabSettings>

应用可见性选项:

  • 可以设为 true 或 false

选项卡可见性选项:

  • Visible:选项卡会显示在 All Tabs 页面和关联应用的可见选项卡中。可自定义。
  • Available:选项卡会显示在 All Tabs 页面。个别用户可以自定义显示方式,让选项卡在任意应用中可见。
  • None:不可见

重要 - 选项卡命名:

  • 自定义对象选项卡:必须包含 __c 后缀(例如,MyCustomObject__c)
  • 标准对象选项卡:使用对象名称并加上 "standard-" 前缀(例如,standard-Account、standard-Contact)
  • 选项卡名称必须与对象的 API 名称完全一致

步骤 6:添加 Apex 和 Visualforce 访问权限(可选)

授予自定义代码的访问权限:

<classAccesses>
    <apexClass>CustomController</apexClass>
    <enabled>true</enabled>
</classAccesses>
<pageAccesses>
    <apexPage>CustomPage</apexPage>
    <enabled>true</enabled>
</pageAccesses>

步骤 7:设置许可证和记录类型设置(可选)

指定许可证要求和记录类型可见性:

<license>Salesforce</license>
<hasActivationRequired>false</hasActivationRequired>
<recordTypeVisibilities>
    <recordType>Account.Business</recordType>
    <visible>true</visible>
    <default>true</default>
</recordTypeVisibilities>

步骤 8:设置 Agent 访问权限(可选)

为分配了此权限集的用户启用对 Agentforce Employee Agents 的访问权限:

Sales_Assistant_Agent true

字段要求:

  • agentName(必需):员工 Agent 的开发人员名称
  • enabled(必需):设为 true 表示授予访问权限,设为 false 表示拒绝访问

重要事项:

  • Agent 名称必须与现有 Agentforce Employee Agent 的开发人员名称完全一致

验证清单

部署前,请确认:

  • 已设置 fullName、label、description
  • 权限遵循最小权限原则
  • <fieldPermissions> 中没有必需字段
  • 没有重复权限
  • 没有冗长注释

导致部署失败的原因

  • 必填字段上的字段权限:<fieldPermissions> 中的任何必填字段都会导致部署失败。必填字段不能设置 FLS;请完全省略这些字段。务必根据对象/字段元数据确认字段存在且不是必填字段,切勿想当然。
  • **API 名称不正确:**使用错误名称或遗漏后缀(例如,自定义对象、字段、选项卡缺少 __c)会导致失败。
  • **虚构的字段:**针对对象上不存在的字段设置字段权限(包括根据请求中的其他字段按模式推测出的看似合理的字段)会导致部署失败。仅为请求中明确提及的字段授予字段权限。
  • **缺少权限依赖项:**某些用户权限(例如 ModifyAllData)如果未同时启用其依赖权限,就会导致部署失败。请勿为解决依赖错误而添加未请求的用户权限;对于组织级或管理权限请求,应升级处理以进行安全审查。

部署

使用 Salesforce CLI 部署

评论

支持 Markdown