PermissionSet
Metadata メタデータ型を拡張し、その fullName 項目を継承します。
API バージョン 40.0 以降、権限セットメタデータを取得すると、メタデータ API で公開されている、権限セットのすべてのコンテンツが含まれます。メタデータには、権限セットに関連付けられた Apex、CRUD などが含まれます。同様に、権限セットをリリースするときは、権限セットの内容を誤って上書きしないように、そのメタデータをすべて含める必要があります。
API バージョン 39.0 以前では、権限セットメタデータを取得またはリリースすると、権限セットに割り当てられたアプリケーション権限とシステム権限のみが返されます。連結メタデータ (Apex、CRUD など) が含まれるのは、関連するコンポーネントのメタデータもパッケージ定義に含まれる場合のみです。
API バージョン 29.0 以降では、プロファイルと権限セットの次の管理コンポーネントのアクセス設定を取得およびリリースできます。
詳細は、『メタデータ API 開発者ガイド』の「package.xml マニフェストファイルのサンプル」に記載されている「管理コンポーネントへのアクセス」セクションを参照してください。
宣言的なメタデータファイルのサフィックスおよびディレクトリの場所
権限セットは permissionsets ディレクトリに保存されます。ファイル名は権限セットの API 参照名に一致し、拡張子は .permissionset です。たとえば、User_Management_Perms という名前の権限セットは permissionsets/User_Management_Perms.permissionset に保存されます。
バージョン
権限セットは API バージョン 22.0 以降で使用できます。
特別なアクセスルール
Summer '20 以降、このタイプにアクセスできるのは、次のいずれかの権限を持つユーザーのみとなります。
- 「設定・定義の参照」
- 「セッション権限セットの有効化の管理」
- 「権限セットの割り当て」
- 「プロファイルと権限セットの管理」
- クライアント設定
- 項目権限
- レイアウトの割り当て
- オブジェクト権限
- 権限の連動関係
- 権限セットのタブ設定
- 権限セットグループのコンポーネント
- レコードのタイプ
項目
| 項目 | 項目の型 | 説明 |
|---|---|---|
| applicationVisibilities | PermissionSetApplicationVisibility[] | この権限セットに割り当てられているユーザーに表示されるアプリケーションを示します。API バージョン 29.0 以降で利用できます。API バージョン 29.0 では、この項目はカスタムアプリケーションのみをサポートします。API バージョン 30.0 以降、この項目は標準アプリケーションとカスタムアプリケーションの両方をサポートします。 |
| classAccesses | PermissionSetApexClassAccess[] | この権限セットに割り当てられているユーザーが実行できるメソッドを持つ最上位の Apex クラスを示します。API バージョン 23.0 以降で利用できます。 |
| customMetadataTypeAccesses | PermissionSetCustomMetadataTypeAccess[] | この権限セットに割り当てられたユーザーに参照アクセス権があるカスタムメタデータ型を示します。API バージョン 47.0 以降で利用できます。 |
| customPermissions | PermissionSetCustomPermissions[] | この権限セットに割り当てられているユーザーが利用可能なカスタム権限を示します。API バージョン 31.0 以降で利用できます。 |
| customSettingAccesses | PermissionSetCustomSettingAccesses[] | この権限セットに割り当てられたユーザーに参照アクセス権があるカスタム設定を示します。API バージョン 47.0 以降で利用できます。 |
| description | string | 権限セットの説明。最大 255 文字です。 |
| externalCredentialPrincipalAccesses | PermissionSetExternalCredentialPrincipalAccess[] | この権限セットに割り当てられているユーザーが利用可能な外部ログイン情報プリンシパルを示します。API バージョン 59.0 以降で利用できます。 |
| externalDataSourceAccesses | PermissionSetExternal DataSourceAccess[] | この権限セットに割り当てられているユーザーが使用できる、ID 種別 [ユーザー] を持つデータソースを示します。API バージョン 27.0 以降で利用できます。 |
| fieldPermissions | PermissionSetFieldPermissions[] | この権限セットに割り当てられているユーザーがアクセスできる項目、および使用可能なアクセス権の種類 (参照可能または編集可能) を示します。API バージョン 23.0 以降で利用できます。 |
| flowAccesses | PermissionSetFlowAccess[] | この権限セットに割り当てられているユーザーがアクセスできるフローを示します。API バージョン 47.0 以降で利用できます。 |
| hasActivationRequired | boolean | 権限セットが、関連付けられた有効なセッションを要求するか (true)、否か (false) を示します。API バージョン 37.0 以降で利用できます。 |
| label | string | 必須。権限セットの表示ラベル。最大 80 文字です。 |
| license | string | 関連権限セットライセンス、またはこの権限セットに関連付けられているユーザーライセンスが含まれます。API バージョン 38.0 以降で利用できます。非推奨で API バージョン 37.0 までしか使用できない userLicense の代わりにこの項目を使用してください。 |
| objectPermissions | PermissionSetObjectPermissions[] | この権限セットに割り当てられているユーザーがアクセスできるオブジェクト、および使用可能なアクセス権の種類 (作成、参照、編集、削除など) を示します。API バージョン 23.0 以降で利用できます。 |
| pageAccesses | PermissionSetApexPageAccess[] | この権限セットに割り当てられているユーザーが実行できる Visualforce ページを示します。API バージョン 23.0 以降で利用できます。 |
| recordTypeVisibilities | PermissionSetRecordTypeVisibility[] | この権限セットに割り当てられているユーザーに表示されるレコードタイプを示します。API バージョン 29.0 以降で利用できます。無効なレコードタイプの場合、この項目は取得またはリリースされません。 |
| tabSettings | PermissionSetTabVisibility[] | この権限セットのタブ表示設定を示します。API バージョン 26.0 以降で利用できます。 |
| userLicense | string | 非推奨。権限セットのユーザーライセンス。ユーザーライセンスによって、ユーザーがアクセスできる機能の基準が決まります。各ユーザーにユーザーライセンスが 1 つだけ必要です。API バージョン 37.0 まで使用可能です。API バージョン 38.0 以降では、license を使用します。 |
| userPermissions | PermissionSetUserPermissions[] | アプリケーション権限またはシステム権限 (「API の有効化」など) と、この権限セットで有効化されているかどうかを指定します。API バージョン 28.0 以前では、有効であるか無効であるかに関係なく、この項目ですべてのユーザー権限が取得されます。API バージョン 29.0 以降では、有効なユーザー権限のみが取得されます。API バージョン 40.0 以降では、リリースで権限が指定されていない場合、無効になります。 |
PermissionSetApplicationVisibility
PermissionSetApplicationVisibility は、この権限セットに割り当てられているユーザーにアプリケーションが表示されるかどうかを決定します。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| application | string | 必須。アプリケーションの名前。 |
| visible | boolean | 必須。この権限セットに割り当てられているユーザーにこのアプリケーションが表示されるか (true)、否か (false) を示します。 |
PermissionSetApexClassAccess
PermissionSetApexClassAccess は権限セットに割り当てられているユーザーの Apex クラスのアクセス権を表します。
PermissionSetCustomMetadataTypeAccess
PermissionSetCustomMetadataTypeAccess は権限セットに割り当てられているユーザーのカスタムメタデータ型アクセス権を表します。API バージョン 47.0 以降で利用できます。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| enabled | boolean | 必須。このカスタムメタデータ型のレコードが参照可能か (true)、否か (false) を示します。 |
| name | string | 必須。カスタムメタデータ型名。 |
PermissionSetCustomPermissions
PermissionSetCustomPermissions は権限セットに割り当てられているユーザーのカスタムアクセス権限を表します。取得できるのは有効なカスタム権限のみです。
| 項目名 | 項目の型 | 説明 |
|---|---|---|
| enabled | boolean | 必須。カスタム権限が有効化されているか (true)、否か (false) を示します。 |
| name | string | 必須。カスタム権限名。 |
PermissionSetCustomSettingAccesses
PermissionSetCustomSettingAccesses は権限セットに割り当てられているユーザーのカスタム設定を表します。API バージョン 47.0 以降で利用できます。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| enabled | boolean | 必須。このカスタム設定のレコードが参照可能か (true)、否か (false) を示します。 |
| name | string | 必須。カスタム設定の名前。 |
PermissionSetExternalCredentialPrincipalAccess
PermissionSetExternalCredentialPrincipalAccess は外部ログイン情報プリンシパルへのアクセスを表します。権限セットに割り当てられているユーザーは、外部ログイン情報を参照する指定ログイン情報を使用して、コールアウトを実行できます。API バージョン 59.0 以降で利用できます。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| enabled | boolean | 必須。権限セットで外部ログイン情報プリンシパルへのアクセスが有効になっているか (true)、否か (false) かを示します。 |
| externalCredentialPrincipal | string | 必須。外部ログイン情報とプリンシパルの名前をダッシュで区切ります。たとえば、「myExternalCredential-myPrincipal」などです。 外部ログイン情報とプリンシパルがパッケージの一部である場合は、「namespacePrefix__myExternalCredential-myPrincipal」という形式を使用して、プリンシパルの名前とともにパッケージの名前空間プレフィックスを含めます。名前空間プレフィックスと外部ログイン情報プリンシパル名の間にアンダースコアを 2 つ (__) 使用します。 |
PermissionSetExternalDataSourceAccess
PermissionSetExternalDataSourceAccess は、ID 種別 [ユーザー] を持つユーザーのデータソースアクセス権を表します。API バージョン 27.0 以降で利用できます。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| enabled | boolean | 必須。データソースが有効化されているか (true)、否か (false) を示します。 |
| externalDataSource | string | 外部データソースの名前。 |
PermissionSetFieldPermissions
PermissionSetFieldPermissions は権限セットに割り当てられているユーザーの項目権限を表します。API バージョン 30.0 以降では、必須項目の権限の取得やリリースはできません。API バージョン 54.0 以降では、権限セットで有効になっている権限項目のみがクエリで返されます。
API バージョン 38.0 以降は、ユーザーインターフェースでは変更できない項目の場合は、メタデータ API を使用して、項目権限を変更し、項目を編集可能にすることができます。たとえば、Asset.ProductCode はユーザーインターフェースでは変更できませんが、編集可能項目としてリリースできます。
PermissionSetFlowAccess
PermissionSetFlowAccess は、権限セットでアクセス権が付与されるフローを表します。API バージョン 47.0 以降で利用できます。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| enabled | boolean | 必須。この権限セットに割り当てられているユーザーがフローにアクセスできるか (true)、否か (false) を示します。デフォルト値は false です。 |
| flow | string | 必須。アクセス権が付与されているフローの名前。 |
PermissionSetObjectPermissions
PermissionSetObjectPermissions は権限セットのオブジェクト権限を表します。権限ごとにこれらの要素の 1 つを使用します。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| allowCreate | boolean | 必須。この権限セットに割り当てられているユーザーが object 項目で参照されているオブジェクトを作成できるか (true)、否か (false) を示します。 |
| allowDelete | boolean | 必須。この権限セットに割り当てられているユーザーが object 項目で参照されているオブジェクトを削除できるか (true)、否か (false) を示します。 |
| allowEdit | boolean | 必須。この権限セットに割り当てられているユーザーが object 項目で参照されているオブジェクトを編集できるか (true)、否か (false) を示します。 |
| allowRead | boolean | 必須。この権限セットに割り当てられているユーザーが object 項目で参照されているオブジェクトを参照できるか (true)、否か (false) を示します。 |
| modifyAllRecords | boolean | 必須。オブジェクトの共有設定に関係なく、この権限セットに割り当てられているユーザーが object 項目で参照されているオブジェクトを参照、編集、または削除できるか (true)、否か (false) を示します。非公開レコード (親オブジェクトを持たないレコード) を含みます。「すべてのデータの編集」ユーザー権限と似ていますが、個別のオブジェクトレベルに限定されます。 |
| object | string | 必須。オブジェクトの API 参照名 (Warehouse__c など)。 |
| viewAllRecords | boolean | 必須。オブジェクトの共有設定に関係なく、この権限セットに割り当てられているユーザーが object 項目で参照されているオブジェクトを参照できるか (true)、否か (false) を示します。非公開レコード (親オブジェクトを持たないレコード) を含みます。viewAllRecords 項目は、「すべてのデータの参照」ユーザー権限と似ていますが、個別のオブジェクトレベルに限定されます。 |
PermissionSetApexPageAccess
PermissionSetApexPageAccess は権限セットに割り当てられているユーザーの Visualforce ページのアクセス権を表します。
PermissionSetRecordTypeVisibility
PermissionSetRecordTypeVisibility は、この権限セットのレコードタイプが表示されるかどうかを表します。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| recordType | string | 必須。Account.MyRecordType などのレコードタイプ名。 |
| visible | boolean | 必須。レコードタイプがこの権限セットに割り当てられているユーザーに表示されるか (true)、否か (false) を示します。 |
PermissionSetTabSetting
PermissionSetTabSetting は権限セットのタブ設定を表します。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| tab | string | 必須。タブ名。 |
| visibility | PermissionSetTabVisibility (string 型の列挙) | 必須。タブの表示設定を示します。有効な値は、次のとおりです。
|
PermissionSetUserPermission
API バージョン 28.0 以前では、PermissionSetUserPermission は権限セットのアプリケーション権限またはシステム権限を表します。API バージョン 29.0 以降では、有効なユーザー権限のみが取得されます。権限ごとにこれらの要素の 1 つを使用します。
| 項目 | 項目の型 | 説明 |
|---|---|---|
| enabled | boolean | 必須。権限が有効化されるか (true)、無効化されるか (false) を示します。 |
| name | string | 必須。権限の名前。 |
宣言的なメタデータの定義のサンプル
PermissionSet コンポーネントの例を次に示します。
1<?xml version="1.0" encoding="UTF-8"?>
2<PermissionSet xmlns="http://soap.sforce.com/2006/04/metadata">
3 <description>Grants all rights needed for an HR administrator to manage employees.</description>
4 <label>HR Administration</label>
5 <userLicense>Salesforce</userLicense>
6 <applicationVisibilities>
7 <application>JobApps__Recruiting</application>
8 <visible>true</visible>
9 </applicationVisibilities>
10 <userPermissions>
11 <enabled>true</enabled>
12 <name>APIEnabled</name>
13 </userPermissions>
14 <objectPermissions>
15 <allowCreate>true</allowCreate>
16 <allowDelete>true</allowDelete>
17 <allowEdit>true</allowEdit>
18 <allowRead>true</allowRead>
19 <viewAllRecords>true</viewAllRecords>
20 <modifyAllRecords>true</modifyAllRecords>
21 <object>Job_Request__c</object>
22 </objectPermissions>
23 <fieldPermissions>
24 <editable>true</editable>
25 <field>Job_Request__c.Salary__c</field>
26 <readable>true</readable>
27 </fieldPermissions>
28 <pageAccesses>
29 <apexPage>Job_Request_Web_Form</apexPage>
30 <enabled>true</enabled>
31 </pageAccesses>
32 <classAccesses>
33 <apexClass>Send_Email_Confirmation</apexClass>
34 <enabled>true</enabled>
35 </classAccesses>
36 <tabSettings>
37 <tab>Job_Request__c</tab>
38 <visibility>Available</visibility>
39 </tabSettings>
40 <recordTypeVisibilities>
41 <recordType>Recruiting.DevManager</recordType>
42 <visible>true</visible>
43 </recordTypeVisibilities>
44</PermissionSet>組織の PermissionSet メタデータを取得するために使用される package.xml マニフェストの例を次に示します。権限セットを取得する場合、割り当てられた権限付きの関連コンポーネントも取得します。たとえば、カスタムオブジェクトの objectPermissions および fieldPermissions を取得するには、CustomObject コンポーネントも取得する必要があります。
1<?xml version="1.0" encoding="UTF-8"?>
2<Package xmlns="http://soap.sforce.com/2006/04/metadata">
3 <types>
4 <members>Job_Request__c</members>
5 <name>CustomTab</name>
6 </types>
7 <types>
8 <members>Job_Request__c</members>
9 <name>CustomObject</name>
10 </types>
11 <types>
12 <members>JobApps__Recruiting</members>
13 <name>CustomApplication</name>
14 </types>
15 <types>
16 <members>Recruiting.DevManager</members>
17 <name>RecordType</name>
18 </types>
19 <types>
20 <members>*</members>
21 <name>PermissionSet</name>
22 </types>
23 <version>60.0</version>
24</Package>マニフェストファイル内のワイルドカードのサポート
このメタデータ型では、package.xml マニフェストファイル内のワイルドカード文字 * (アスタリスク) がサポートされます。マニフェストファイルの使用についての詳細は、「zip ファイルを使用したメタデータのリリースと取得」を参照してください。