사용자 정의 메타데이터 유형 및 레코드 패키지 시 액세스 규칙
사용자 정의 메타데이터 유형 및 레코드를 포함하거나 판독하는 관리 패키지를 개발할 경우 액세스 규칙을 이해하십시오.
필수 Edition
| 지원 제품: Salesforce Classic 및 Lightning Experience |
관리 패키지의 보호된 사용자 정의 메타데이터 유형 지원 제품: Developer Edition 및 스크래치 조직 패키지 업로드 및 설치 지원 제품: Group, Enterprise, Performance, Unlimited 및 Developer Edition 설치된 패키지 Group 및 Professional Edition에서 사용자 정의 메타데이터 유형 레코드를 작성, 편집 및 삭제합니다. |
사용자 정의 메타데이터 유형을 만들 때 패키지 유형과 가시성 필드에 따라 사용자 정의 메타데이터 유형이 공개인지 아니면 비공개인지가 결정됩니다. 개발자 또는 스크래치 조직에서만 보호된 사용자 정의 메타데이터 유형을 만들 수 있으며 이후에는 관리 패키지에서 배포됩니다.
사용자 정의 메타데이터 유형이 2GP를 사용하여 패키지 수준으로 보호되는 경우 관리 패키지 내 코드에서만 레코드에 액세스할 수 있습니다. 또한 같은 네임스페이스 내에 있더라도 구독자 및 기타 패키지는 사용자 정의 메타데이터 유형이나 그 레코드에 액세스할 수 없습니다. 2GP는 Salesforce DX 명령줄 인터페이스(SFDX CLI)를 통해서만 작성할 수 있습니다.
사용자 정의 메타데이터 유형에 대한 패키지 수준 보호를 활성화하려면 선언적으로 가시성 필드를 PackageProtected로 설정하거나 메타데이터 API를 사용합니다.
사용자 정의 메타데이터 유형이 보호되는 네임스페이스인 경우 사용자 정의 메타데이터 유형과 같은 네임스페이스에 있는 코드는 레코드를 읽을 수 있습니다. 유형 또는 보호된 레코드를 포함하지 않는 네임스페이스에 있는 코드는 보호된 레코드를 판독할 수 없습니다. 패키지의 액세스 가능성을 네임스페이스로 보호됨으로 설정하려면 가시성 필드를 선언적으로 또는 메타데이터 API를 사용하여 보호됨으로 설정합니다.
유형이 공개 상태이면 해당 유형을 보호 상태로 변환할 수 없습니다. 구독자는 보호된 유형의 레코드를 만들 수 없습니다.
유형을 보호에서 공개 상태로 변경하는 경우 보호되는 해당 레코드는 보호 상태로 유지되고 기타 모든 레코드는 공개 상태가 됩니다. 설정을 사용하여 보호된 유형에 레코드를 만들면 기본적으로 보호된 구성 요소가 선택됩니다.
관리 패키지가 릴리스되면 패키지 후속 버전을 덜 제한적인 보호 수준으로 변경될 수 있습니다. 예를 들어 패키지로 보호된 사용자 정의 메타데이터 유형을 네임스페이스 보호됨으로 다시 릴리스할 수 있습니다. 그러나 관리 패키지로 릴리스된 후 더 제한적인 보호 수준으로 변경할 수는 없습니다.
| 엔티티 | 액세스 가능성 |
|---|---|
| 패키지 작성자 조직 |
|
| 메타데이터 API 콜아웃 | 메타데아터 API 콜아웃이 구독자 조직 코드에 의해 실행되는 것처럼 작동하며, 그 결과 일부 사용자는 콜아웃을 사용하여 구독자 조직에서 생성한 모든 레코드를 보거나 변경할 수 있습니다. 그러나 콜아웃은 설치된 관리 패키지의 공개 레코드를 보거나 변경하는 작업에만 사용됩니다. 구독자의 조직에서 메타데이터 API를 사용할 구독자의 메타데이터 API 끝점에 원격 사이트 설정을 구성합니다. |
| Apex의 메타데이터 | Apex 콜아웃의 메타데이터는 구독자 조직 코드에 의해 실행되는 것처럼 작동하며, 그 결과 일부 사용자는 콜아웃을 사용하여 구독자 조직에서 생성한 모든 레코드를 보거나 변경할 수 있습니다. 콜아웃은 설치된 관리 패키지의 공개 레코드 및 보호된 레코드를 보거나 변경하는 작업에만 사용할 수 있습니다. |
| 레코드 작성자 |
|
| 구독자 조직 | 필드가 구독자 제어 상태인 경우 구독자는 자체 조직에서 값을 변경할 수도 있습니다. 레코드가 관리 패키지에 있으면 새 필드 값이 구독자 조직 새 패키지 구독자에게만 전파됩니다. 최신 버전의 패키지로 업그레이드하는 기존 구독자에게는 새 필드 값이 제공되지 않습니다. |
| Apex의 SQL 쿼리 | 다음 조건 중 하나에 해당하는 경우 Apex 코드의 SOQL 쿼리를 사용하여 사용자 정의 메타데이터 레코드를 볼 수 있습니다.
|
