关于 generating-permission-set
面向 Salesforce 管理员和开发者,用于创建或编辑权限集元数据。它指导配置对象、字段、用户、应用、选项卡及可选的 Agent 访问,并检查常见部署错误。
主要功能
- 01定义权限集基本属性
- 02配置对象 CRUD 权限
- 03设置字段级安全性
- 04授予用户权限
- 05配置应用与选项卡可见性
- 06添加可选代码和 Agent 访问
适用场景
- 01为某个角色创建权限集
- 02授予指定对象和字段的访问权限
- 03配置应用和选项卡的可用性
- 04部署前检查元数据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill generating-permission-set安装后在 Claude Code 中输入/generating-permission-set确认已加载。
详细介绍
何时使用此技能
在生成或编辑权限集元数据,或授予对象、字段、用户和应用权限时使用。
第 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"
第 4 步:授予用户权限
为功能和能力添加系统级权限:
<userPermissions>
<enabled>true</enabled>
<name>ApiEnabled</name>
</userPermissions>
<userPermissions>
<enabled>true</enabled>
<name>RunReports</name>
</userPermissions>
常见权限:
ApiEnabled:API 访问权限ViewSetup:查看“设置”菜单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:选项卡在“所有选项卡”页面上可用,并显示在关联应用的可见选项卡中。可以自定义。Available:选项卡在“所有选项卡”页面上可用。个人用户可以自定义显示设置,使选项卡在任意应用中可见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 Agent 的访问权限:
Sales_Assistant_Agent true字段要求:
- agentName(必填):员工 Agent 的开发者名称
- enabled(必填):设为 true 以授予访问权限,设为 false 以拒绝访问
重要事项:
- Agent 名称必须与现有 Agentforce Employee Agent 的开发者名称一致
验证清单
部署前,请确认:
- 已设置 fullName、label 和 description
- 权限遵循最小权限原则
-
<fieldPermissions>中没有必填字段 - 没有重复权限
- 没有冗长的注释
导致部署失败的原因
- 必填字段上的字段权限:
<fieldPermissions>中的任何必填字段都会导致部署失败。必填字段不能设置 FLS;请完全省略。务必根据对象/字段元数据确认字段存在且不是必填字段,切勿臆测。 - **API 名称不正确:**使用了错误名称或缺少后缀(例如,自定义对象、字段或选项卡缺少
__c)会导致失败。
部署
使用 Salesforce CLI 进行部署
评论
支持 Markdown