mcpField
G
generating-permission-set

generating-permission-set

github.com/forcedotcomセキュリティ1.1k4.0k 回インストール1 日前に更新
リポジトリ

generating-permission-set について

権限セットメタデータを作成・編集する Salesforce 管理者や開発者向けのスキルです。オブジェクト、項目、ユーザー、アプリ、タブ、および任意のエージェントアクセスを設定し、よくあるデプロイエラーを確認します。

主な機能

  1. 01権限セットの基本プロパティ設定
  2. 02オブジェクトの CRUD 権限設定
  3. 03項目レベルセキュリティの設定
  4. 04ユーザー権限の付与
  5. 05アプリとタブの表示設定
  6. 06任意のコードおよびエージェントアクセス追加

活用シーン

  1. 01役割に応じた権限セットの作成
  2. 02指定したオブジェクトや項目へのアクセス付与
  3. 03アプリとタブの利用可否設定
  4. 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の形式を使用します。
  • ユーザーに編集アクセスが必要な場合は、閲覧可能と編集可能の両方をtrueに設定します。編集可能にすると閲覧可能になります。
  • すべての項目を表示する必要がある場合は、代わりにオブジェクト権限の「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:エージェントアクセスを設定する(任意)

この権限セットが割り当てられたユーザーに対して、Agentforce Employee Agents へのアクセスを有効にします。

Sales_Assistant_Agent true

フィールド要件:

  • agentName(必須):従業員エージェントの開発者名
  • enabled(必須):アクセスを許可するにはtrue、拒否するにはfalseを設定します。

重要:

  • エージェント名は、既存の Agentforce Employee Agent の開発者名と一致する必要があります。

検証チェックリスト

デプロイ前に、次の項目を確認してください。

  • fullName、label、descriptionが設定されている
  • 権限が最小権限の原則に従っている
  • <fieldPermissions>に必須項目が含まれていない
  • 権限が重複していない
  • 長いコメントがない

デプロイに失敗する原因

  • 必須項目に対する項目権限: <fieldPermissions>に必須項目が含まれていると、デプロイは失敗します。必須項目にはFLSを設定できないため、完全に省略してください。項目を追加する際は、必ずオブジェクト/項目のメタデータを確認して、その項目が存在し、必須ではないことを確かめてください。決して推測しないでください。
  • API 名が正しくない: 名前を間違えたり、サフィックス(カスタムオブジェクト、項目、タブの__cなど)を省略したりすると、失敗します。

デプロイ

Salesforce CLIを使用してデプロイします。

コメント