关于 platform-permission-set-generate
用于生成和编辑 Salesforce 权限集元数据的技能。它指导配置对象、字段、用户、应用、选项卡及可选代码或 Agent 访问,并检查常见部署失败原因。
主要功能
- 01定义权限集名称和用途
- 02配置对象与字段权限
- 03设置用户权限和应用可见性
- 04授予可选代码及 Agent 访问权限
- 05检查元数据名称和部署风险
适用场景
- 01为特定用户组创建权限集
- 02编辑指定对象和字段的访问权限
- 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