У меня есть код, который интегрируется со сторонней службой, предоставляя веб-перехватчики (методы REST) ​​через общедоступный (не прошедший проверку подлинности) сайт. Я пытаюсь понять, как это должно работать в рамках автоматизированного тестирования сборки, а также разблокированного пакета.

Начнем с того, что у меня есть проект SFDX, который включает в себя класс Apex, содержащий методы REST, и который содержит определение общедоступного сайта (sites/Webhook_Service.site-meta.xml). Если я создам новую временную организацию и попытаюсь отправить код, я получу ошибку для файла .site-meta.xml:

The Force.com Site subdomain has not been set in the organization

Если я открываю организацию и просматриваю страницу «Сайты» в программе «Настройка» («Настройка LEX» -> «Пользовательский интерфейс» -> «Сайты и домены» -> «Сайты»), мне предлагается создать поддомен, прежде чем я смогу создать сайт. Как только я устанавливаю имя поддомена, force:org:push завершается успешно. Это подтверждает мне, что мне нужен «Субдомен сайта», указанный в организации, прежде чем я смогу отправить определение сайта. Насколько я понимаю, этот поддомен сайта нельзя установить/создать через API метаданных, и я не нашел способа указать его через SFDX. Это правильно? Есть ли способ обойти это, например, для автоматической сборки с помощью SFDX?

Мне приходит в голову, что разблокированный пакет, содержащий .site-meta.xml, не будет успешно развернут, если пользователь уже не установил поддомен сайта перед попыткой установить пакет. В случае с разблокированным пакетом (в отличие от автоматизированной сборки SFDX), я полагаю, имеет смысл назвать настройку субдомена сайта необходимым условием для использования разблокированного пакета. Считается ли это передовой практикой или лучше потребовать от пользователя создания собственного общедоступного сайта?

5
Jason Clark 14 Янв 2020 в 16:55
Я думаю, что это по-прежнему применимо, хотя я будут интересны любые ответы
 – 
Kris Goncalves
14 Янв 2020 в 17:29
3
Какие функции и настройки вы запрашиваете в своем шаблоне временной организации?
 – 
David Reed
14 Янв 2020 в 17:31

1 ответ

Лучший ответ

Каков ваш вариант использования разблокированного пакета? Используете ли вы их для организации кода в большой организации? Как способ распространения кода среди многих организаций? Что-то другое?

В нынешнем виде я бы сказал, что Сайты лучше оставить целевой организации, а не быть частью разблокированного пакета. В противном случае вещи, которые вы могли бы на законных основаниях захотеть изменить в рабочей среде (например, контакт сайта), могут быть перезаписаны при установке пакета.

Я склонен делать это, имея сайт как часть моего проекта sfdx, но не в каталоге пакета. Таким образом, когда я создаю временную организацию, у меня есть определение сайта, поэтому я ближе к возможности протестировать его; но это определение нигде не устанавливается.

Это означает, что, как вы указали, мне все еще нужно создать поддомен в рабочей организации, что немного раздражает.

Дополнение

Читая комментарий Дэвида Рида выше, я экспериментировал с добавлением

"features": [
    "Sites"
  ]

По моему определению чистой организации. Это действительно назначает домен при создании временной организации. Я пропустил этот путь назад, когда я впервые сделал пакет, и это действительно полезно!

2
Aidan 14 Янв 2020 в 17:49