sf-permissions について
sf-permissions は、Salesforce のアクセス権と権限メタデータを監査する管理者・開発者向けスキルです。権限セットの階層を分析し、ユーザーや対象への付与元を特定して、直接付与と継承を区別します。
主な機能
- 01権限セットとグループの階層分析
- 02ユーザーアクセスの調査
- 03オブジェクト、項目、Apex、Flow の権限特定
- 04権限設定のエクスポート
- 05直接アクセスと継承アクセスの区別
活用シーン
- 01対象へのアクセスを付与する権限の特定
- 02ユーザーのSalesforceアクセス確認
- 03権限セット設定の監査またはエクスポート
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jaganpro/ sf-skills --skill sf-permissionsインストール後、Claude Code で/sf-permissionsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreCREDITS.mdLICENSEREADME.mdrequirements.txtreferences/agent-access-guide.mdpermission-model.mdsoql-reference.mdusage-examples.mdworkflow-examples.mdscripts/__init__.pyauth.pycli.pyhierarchy_viewer.pymetadata_fetcher.pypermission_detector.pypermission_exporter.pytooling_api.pyuser_analyzer.pyscripts/renderers/__init__.pyascii_tree.pymermaid.py詳細
sf-permissions
ユーザーが権限の分析とアクセス監査を必要とする場合に、このスキルを使用します。対象には、権限セット/権限セットグループの階層表示、「X にアクセスできるユーザーは?」という調査、ユーザー権限の分析、権限セットのメタデータレビューが含まれます。
このスキルが担当するタスク
以下の作業には sf-permissions を使用します。
- 権限セット/権限セットグループの分析
- ユーザーのアクセス調査
- オブジェクト/項目/Apex/フロー/タブ/カスタム権限へのアクセスを付与する権限の特定
- 権限設定の監査またはエクスポート
- 権限メタデータの影響の確認
以下の場合は、別のスキルに委任します。
- 新しいメタデータ定義の作成 → sf-metadata
- 権限セットのデプロイ → sf-deploy
- Apex で管理される共有ロジックの分析 → sf-apex
最初に確認する必要があるコンテキスト
以下を質問するか、推測します。
- 対象組織のエイリアス
- オブジェクト、項目、Apex クラス、フロー、タブ、カスタム権限、特定のユーザーのどれについての質問か
- 目的が階層の可視化、アクセスの検出、エクスポート、メタデータの生成のどれか
- 出力をターミナル向けにするか、ドキュメント向けにするか
推奨ワークフロー
1. リクエストを分類する
| リクエストの形式 | デフォルトの機能 |
|---|---|
| 「X にアクセスできるユーザーは?」 | 権限検出 |
| 「このユーザーが持つ権限は?」 | ユーザー分析 |
| 「階層を見せて」 | 階層表示 |
| 「この権限セットをエクスポートして」 | エクスポーター |
| 「分析結果からメタデータを生成して」 | ジェネレーターまたは引き継ぎ |
2. 正しい組織に接続する
権限分析を実行する前に、sf の認証を確認します。
3. 必要最小限のクエリを使用する
ユーザーが組織全体の完全な監査を明示的に希望していない限り、組織全体を対象とした広範なスキャンより、対象を絞った分析を優先します。
識別子を選ぶ際は、まず安定したメタデータ名を優先します。
PermissionSet.NamePermissionSetGroup.DeveloperNameCustomPermission.DeveloperNameAccountやAccount.AnnualRevenueなどのオブジェクトおよび項目の API 名- ユーザーを対象とした確認には
Assignee.Username/メールアドレス
Salesforce のレコード ID を使用するのは、次の場合に限ります。
- 基盤となるオブジェクトモデルで
ParentIdまたはSetupEntityIdが必要な場合、または - 同じ調査で先行する読み取り専用クエリから返されたレコードを詳しく調べる場合
4. 調査結果を明確に提示する
以下を使用します。
- ターミナルでの作業には ASCII ツリーまたは表形式の出力
- ドキュメント上の利点が明確な場合に限り Mermaid
- どの権限ソースがアクセスを付与するかを簡潔にまとめた説明
5. 作成またはデプロイの作業を引き継ぐ
以下を使用します。
- より充実したメタデータ生成には sf-metadata
- デプロイには sf-deploy
特に重要なルール
- 権限セットから直接付与される権限と、権限セットグループを介して付与される権限を区別します
- 初回の調査クエリでは、組織固有のレコード ID より
Name/DeveloperName/API 名を優先します - アクセスがオブジェクトレベル、項目レベル、クラスレベル、フローレベル、カスタム権限のどれに基づくかを明示します
- セットアップエンティティや高度な可視性に関する質問で必要な場合は、Tooling API を使用します
- エージェントのアクセスに関する質問では、権限メタデータでエージェント名が完全一致することを確認します
- 後続の子クエリで
ParentIdまたはSetupEntityIdが必要な場合は、コピーした ID を使って調査を始めるのではなく、先行する結果から ID を解決します
出力形式
完了時は、次の順序で報告します。
- 分析した内容
- 組織/対象の範囲
- アクセスを付与する権限
- アクセスが直接付与か継承か
- 推奨するフォローアップ
推奨形式:
Permission analysis: <hierarchy / detect / user / export>
Scope: <org, user, permission target>
Findings: <permsets / groups / access level>
Source: <direct assignment or via group>
Next step: <export, generate metadata, or deploy changes>
スキル間の連携
| 必要な作業 | 委任先 | 理由 |
|---|---|---|
| 権限メタデータの生成または変更 | sf-metadata | メタデータの作成 |
| 権限の変更のデプロイ | sf-deploy | 展開 |
| 権限付与が必要な Apex クラスの特定 | sf-apex | 実装の状況 |
| ユーザーの一括割り当て分析 | sf-data | 大規模なデータ操作 |
参照マップ
まずはこちら
専門的な分析
スコアガイド
| スコア | 意味 |
|---|---|
| 90+ | アクセスの根拠が明確な、質の高い権限分析 |
| 75–89 | 軽微な不足はあるものの、有用な監査 |
| 60–74 | 可視性が部分的 |
| < 60 | 根拠が不十分。分析を拡充してください |
コメント
Markdown 対応