Делюсь опытом работы с some.profile-meta.xml через Metadata API
Не мог понять одно, почему мои отключенные permission в profile на scratch org не попадают на developer org после деплоя.
Мои шаги вроде верны:
- Создал новую scratch org
- Push на новосозданную scratch org - sfdx force:source:push
- Делаю изминения в profile - отключаю (снимаю галку) “Send Email”, “Mass Email”, “Allow sending of List Emails”
- Pull изминений c scratch org - sfdx force:source:pull
- Deploy на developer org sfdx force:source:deploy -u dev_name -p force-app/main/default
- Проверяю изминенный profile на developer org , а эти опции включены (галки стоят) …
Что я выяснил:
Когда ты отключаешь один из <userPermissions>
он становиться соответственно в false , а следуя документации, через Metadata API при ретриве будут извлечены только включенные (установленные в true ) <userPermissions>
- http://prntscr.com/omfhag
Т.е. в *.profile-meta.xml не будет:
<userPermissions>
<enabled>false</enabled>
<name>EmailSingle</name>
</userPermissions>
<userPermissions>
<enabled>false</enabled>
<name>EmailMass</name>
</userPermissions>
<userPermissions>
<enabled>false</enabled>
<name>ListEmailSend</name>
</userPermissions>
Соответственно после pull изминений c scratch org их там не будет.
Но вот в чем боль , эти все <userPermissions>
включены на developer org и после deploy они не отключаются, так как в XML их нет установленных в false .
Даже после удаления кастомного профайла и деплоя его по новой.
Т.е. под капотом создается profile с установленными значениями по умолчанию .
В итоге:
Что бы быть на 100500% уверенным, что эти опции ( <userPermissions>
) будут от отключины в profile , нужно вручную их добавить с <enabled>false</enabled>
Это так “неочень” как по мне …
Еще одна боль в том, что не нашел полный список всех <userPermissions>
для profile.
Мне пришлось их узнавать методом “тыка”.
Если кто знает, буду рад, если вы поделитесь.
В доке ссылка битая - https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_profile.htm?search_text=profile