Скрипты
Скрипты используются для исполнения модели в Cleanroom. Подробнее о скриптах и процессе их согласования описано в документации по ссылке.
Для формирования скрипта необходимо сначала создать модель и отправить ее на согласование. При этом будут отправлены запросы на согласование скриптов.
1. Создание модели и отправка запросов на согласование скрипта
1.1. В системе Провайдера
Перейти в DataLab в проект к которому была запрошена витрина. Создать модель с новым скриптом, в качестве витрины выбрать ранее согласованную из этого же проекта. При необходимости воспользоваться инструкцией по ссылке.
Отправить модель на модерацию.
Зафиксировать идентификатор проекта, по которому отправлена на модерацию модель:
Перейти на вкладку Маркетплейс - Запросы (скрипты) Входящие. Зафиксировать номер запроса для датасета по которому только что был отправлен запрос.
Номер запроса у партнера будет такой же.
1.2. В BC на стороне Провайдера
Выполнить чтение BC последних сообщений с отправителем= Провайдер и получателем = Провайдер. Для этого выполнить:
bash search-messages.sh 4 id_компании_провайдера id_компании_провайдера количество_сообщений
Формат ответа:
"id": 755281,
"message": {
"topic": 4,
"sender": "dajwbgctmzxr",
"receiver": "dajwbgctmzxr",
"data": "{\"encryption\":\"rsa4096+aes256cbc\",\"message\":\"z/Vg3Sb9iFEilbNIDh1DisT84CLNmFBZbeohPtkxPoLRW2BnSGM7YZOrNMULCrOLkrS5YyncUXJq1oSk2l3uMrvEScFMGb7qRaW4EzC0FM9l1MY0a7RaKpd0sZu+JR7iwxkE4Ag3uHgPr48sIUoEQrpXYyDIg5jT+peQ8EgMuamM6xspiVMXUznx/1g75sQ1vKeY6Y8VBsgidvNmTjzHmHf5oX4gSRyobkaUNvTsNcgSzS3J8q8lls6DH+ExhUjWJI4k8W5lBgs7F8ImQrxWcv2uWba56MIpQq2EwwerWsZgyzeYyMnZulYFNP8IEn/DE6xNFIRS0mTC/RDJ2cCY8emu9Kgv0uR8GMr+U85mQ1H3oJE3EfE3LMbqAgA6tsAm5KgcaDeXsxJyOXn41Wh72a9g06yoK4P8wadWbvweM3N9p7czvcKT2TV6F3fVIr2Y5sJsVCUdNBaUv9s9Kn2+MxuxtnBcUZCuWHOvdNtHCl2MQpjokzVbb9dkdxJeOV8nDLHkp7ewYs1QqfWV+AwqWzx7JD+qeZ0aICYxKq7FjkUI/No23B3FuWZe+nDFYv4RO8AU9w82hvUGY/66UnpEJGuLfhHPzhRVjYoTFcrihHeP8RmEa4AL/QIQbstHrXw6jDaxwYRX6roowBibffWI+mtHJJ5tKiucXXbfOvNowLiwQgcZDOHCKLOa6X1EG9z3UudXGSF1DhAdyfa/0DeWy33db5+hIivc6Bv1Kej6xO2s68tI2S/0K3qY8b50Pu6C42BNbS3OXmx/J+yevtpNsA==\",\"masterKey\":\"A9a7h7VmH8DumUc7wh60bKurjhMq4dY5w/Ak8EZBcW0GMqweaH9ZPFXMQ94iWxm3MWRtQ9kSAwRTj9P6B/hKWeUjymJMZxTyvsmx8wBLPFTfZdCSoau7ZeKDyGMn6rlI3JmNy/PLx/cnsoHTUpqujlbQhC3ZiDorzeH1yQn9jyC256twJLkcXAUm15e7jzKLtiAjL1ZIF1NWdT83TOiWLRBEoseQ2NPtlsWX+iKbnjBZFZO3MLwLCs1nMzqV6PEMx1DlF512YMQ5baVEN2yZgvaLV5tQztTavo0SsJvXP1NRi1/rmU5DIdvXuimlau92NxvoiVE2nvmBGH4cDZpFQ8H89KJveWVR15kK5EdhhInyDm2l+XhiCH3hlc9AhpFJbRPXsROAXUfSpm+lEO0VV/MrHw6D26FWWYgn0YJt1KNC+BSUt+ZlUaot+G54XgerCunOTFVaQ+fDeJrMM7GH9aHA4w2OhbmwOSsiO6mCG0oJVMCDOjE1n2cAo9xhATte+l0odFE1QoJjl9ZLOVzagb3LVSHRCTe3BVdnq7r2j7jvWHxFyEI1SXFo+da7KNWRdPoBRTjaHWOdoeJy8NobhSU7D1nzfsWyE22+mWb3z816VsMKScGicgAlu/2kjnQ3LALjP1kO0fzvWQKBsD2+bKAPBpXMjOIrg5dCPksN4/o=\"}"Расшифровать последнее сообщение
bash decrypt-messages.sh id_сообщения
Будет получено сообщение согласно примеру ниже. В котором указана информация:status - статус запроса на скрипт
source - репозиторий скрипта
project - идентификатор проекта
name - название скрипта
reviews - информация о проведении ревью по скрипту партнерами.
number - номер скрипта
{
"status": "ready4review",
"source": {
"repository": "2",
"branch": "main",
"tag": "",
"commit": "e4d777a0e4c51cca83c5c89efa93b753b1c080be"
},
"_id": "635fc3c07978d80019909919",
"project": "635fb5327978d800199096b4",
"name": "bc test",
"executableFilePath": "main.py",
"ownerInfo": {
"name": "Страхование"
},
"originProviderInstance": "dajwbgctmzxr",
"owner": "5bqcyjp2lqpd",
"userCreated": "cdgwzx3zeb22",
"reviews": [
{
"status": "approved",
"reviewer": "dajwbgctmzxr",
"reviewedAt": "2022-11-01T06:46:45.019Z",
"sign": "+UDK/Lc0RioDWOS6CdyuHiqQ5Big86VDr8NsNylfUfo=",
"reason": null,
"reviewedBy": "cdgwzx3zeb22"
}
],
"number": 371,
"createdAt": "2022-10-31T12:46:56.742Z",
"updatedAt": "2022-11-01T06:46:45.022Z",
"__v": 0,
"jobSetting": "635fc3c27978d8001990993c"
}
Если значения соответствуют ожидаемым, то есть:
- номер и статус запроса на скрипт соответствуют запросу от Владельца инстанса самому себе (получен выше в разделе 1.1 п.4),
- идентификатор проекта (получен выше в разделе 1.1 п.3), владелец датасета и получатель запроса совпадают с рассматриваемыми в запросе, То проверка прошла успешно.
Если вид сообщения не соответствует, то следует проверить сообщение раньше, чтобы получить ожидаемый вид.
Выполнить чтение сообщения от Провайдера Партнеру
bash search-messages.sh 4 id_компании_провайдера id_компании_партнера количество_сообщений
Формат ответа:
"id": 755282,
"message": {
"topic": 4,
"sender": "dajwbgctmzxr",
"receiver": "3rooa5jcqxbj",
"data": "{\"encryption\":\"rsa4096+aes256cbc\",\"message\":\"d9AFB0UizjL7a+0d5sBvlPs8JNeLZHgBSmLqF5xOXzozDTk70LSZKMlwdwgpt+COb1Ynv/nAWbAvcJglsnAr1AddMuLw7L1PIHWwM68a9t3iVDq84RUCuqan56mlFSFCd65HsgP5Ux1+aEQM4Ih0ryWyCiKumwijcTPL28Im5j8bu+UU0oQ9pJqk06R/WxHnkyg+GB2jrOz1DWua0Nr01qa0ECh/JuXLGcawLSPLOnkPI3QFpq/MJUiXs147YLG9S4sOH7Ixj9+JU3fhHBmfeVljLBPYLxTzO3GC6kaZB0ssmH99rp0RIfN8lq/BleFEuC3dnPOuDo8jChwEkthi2NZPRETr8GmpLe7dU5VExw66zbQASj+BuCn+HTFOFtd9TnMcb2OW8ro91dHm+Jj/xOs7ZJQTaa9ImxPBrQhBnweNYt/Hm6XaZoNhWZ1cr9ZTFdvmLhuIetkmA7wyRJYuG26jArKS/9qQPNOps71ptCPH6amTRgGS/AayQKRpg8rHakKW0absukYl7QjLm0+YGADaLKJBNuxgjlzU+rviANEJJU7cmNK/YCLQDQTmUgUCxO4zoChSmegsG4w6j6qVt3Gbc9MzUjVl5daFzkRohgVMbc0VVkxBVjCIuoJTxcmbgDpnGZOT2z4f62WXzP0HmAbnQzHXHHRH/0ghjfRnVL6Dr0CyTRxx/JnbYP5hkwzxR6zaZHhcSP8PtAVOxnpZEbBYdw6b88VOdAGkg6/2cU2gU+ou5WcBUCzjQIodSPp6ZAsYrrEkgRqe9uaOFNf2JQ==\",\"masterKey\":\"BWbeP7Cf/+0V9KVXh7UQqfeL49w+S7fFrw3spalYqhREFqbTsg/IPPWfw3334b1IMDrjweQd+5/hIXyouAW332GgeMyh1lzLMbyH7rc5Yth4AiYsVkpn0lfsk++nSg+fmPftTKZP67QBoxECgVPP554vH7NBrnb8gODUol9Qq8jOYq9ftAqHe9Zkg0/DfPar3yhPIn5z/gjqUJCHVh+XhqZQV2Lk75C/S/mjwbBE2qqcL2c2KO1F+y2kxW3lgNPxVii7yM9rTiTi+OhZw0rh3DLaH0DmBAJz1JCPUFKlQKyJUMPRmV1l2PpMuHwNAZPSt4K1NECQJ/ypaCyq0wrbJwJ/xTpLrfO4OI759hhcfCzVTW8LEeSu7cEdXPSa524uREZz21MZk+8MdwrPGWidGRwKuygDb45/bRC33kO9bSSXeRyTY2uWGYaliGQr3NQlqU1jQptDAIVWPxX2+11aHaKYRl4o7J8n/utPzGhE/zM+9uQScOAPvtkEgGEnsnDtq8y2DtOuwsyGcf+VMbfIF4IlZSm6DA2pRzR4B0hobNLVZpadOZUxsQ8deI66oXHUzlN0BD2RjcI45iYqLTGeLTeV+Utg2A14lq8ccnH2sSdP3HgndV4zSNqLP5xPxVIQKBcW4LqK/6wqLxJQzpGmyZCgzHtEMLig75mctTMlBhc=\"}"
1.3. В BC на стороне Партнера
Расшифровать последнее сообщение
bash decrypt-messages.sh id_сообщения.
Id полученное на шаге 1.2.5. Будет получено сообщение согласно примеру ниже. В котором указана информация:status - статус запроса на скрипт
source - репозиторий скрипта
project - идентификатор проекта
name - название скрипта
reviews - информация о проведении ревью по скрипту партнерами.
number - номер скрипта
Сообщение от Провайдера партнеру:
{
"status": "ready4review",
"source": {
"repository": "24",
"branch": "main",
"tag": "",
"commit": "26e73cb74cc7825a29faa84e2d03a965e5ddbde2"
},
"_id": "62b5cb1f145d5300307bddeb",
"project": "62b33a63d8084c00313e9daf",
"name": "wrong output",
"executableFilePath": "wrong_output_file.py",
"ownerInfo": {
"name": "Страхование"
},
"originProviderInstance": "dajwbgctmzxr",
"owner": "5bqcyjp2lqpd",
"userCreated": "cdgwzx3zeb22",
"reviews": [
{
"status": "waiting",
"reviewer": "3rooa5jcqxbj"
},
{
"status": "waiting",
"reviewer": "dajwbgctmzxr"
}
],
"number": 226,
"createdAt": "2022-06-24T14:33:03.611Z",
"updatedAt": "2022-06-29T08:08:19.250Z",
"__v": 0,
"jobSetting": "62b5cb20145d5300307bdf53"
}
2. Согласование скриптов
2.1. В системе на стороне Партнера
Перейти в список запросов на скрипты, найти запрос, отправленный в рамках сценария и нажать “Согласовать”.
Отобразится новый статус запроса “Одобрен”.
2.2. В BC на стороне Партнера
Выполнить чтение BC последних сообщений с отправителем= Провайдер и получателем = Провайдер.
Для этого выполнить:
bash search-messages.sh 4 id_компании_партнера id_компании_провайдера количество_сообщений
Проверить содержимое запроса. Получатель должен быть Провайдер, отправитель - Партнер.
Пример зашифрованного сообщения со стороны партнера:
"id": 755294,
"message": {
"topic": 4,
"sender": "3rooa5jcqxbj",
"receiver": "dajwbgctmzxr",
"data": "{\"encryption\":\"rsa4096+aes256cbc\",\"message\":\"xCHM5Pqqp7GnSxweI8zyV3n2c+NKyEnmaMQky0ZGAPNOuBFDQts5oMo3QOpC3pA6TwgfcjdzWGzFrL5W4zqQHAxifCEO1iGlVYn42Ucpr9xZy3hEHH8mHiDFoD7lwbYN7c1YEWwPYEBzWjYgsK2Y3YPHji1fmQhv31+WA6ZQn4VLzciJJl88fBtsKl+03aEyTYtLPkVKRg98vXl/fQ3xLb16u1DhPNFrTWDce0C5WltQjXlIgkwj9KrJzMmHa+gy0+rhwIFBzmC6XGUsDZw8HZYbtZZjiMkteFP8W0iqy8zRyRCwEynC1u/uciBMnYZJIWu3XJo6PNL9ZQMtQaiOAJDZu6TUfluG2Z22XX454VHdFVZYGpV1myttej54fQy7vFfgYQpeWPX96NLSytss1uuCZpnnCVDJQIMecEz+i3H0IfeNqzjiKTrJ4bbA7Ra9QK4WHaSnK3BZ/PPRGVccJ3yNXeLozyfg7bA3c61MUh+BVsTB+VSASx/KyxQCwzyhfvQ8nYR8dGQNjITNPPyxXAsWTpS3pQKwPc53JhBtvObVdd3bnz2DmoVIwomWSwnfnOIM1cqxEVm4wKyEisLjtiwcw3t/kGTRr1R1JEPbApX3w+sWIJ1rliiOfgFMpJz0tgVkwfiq3v8AqIDwczyAKFr4l/lg/FhmBy3DSAGtsJBNoFvt4WI6Y21Bo00RXjrXFjhjjAhVOB3ZdcJWRBy9Eg==\",\"masterKey\":\"Awie9VmQLRMkW3xZ0pWAvvkR4MwVGQCQp4WLCvY6q5h5c0SyNuuf58l09m8cs3pCPo8Mt+1VirIeZedcTmP9uofVNp86K5964z/IfLBGbf3RK8L6J2W2JFTaMpg1MPmvWzzLihOMv2gryRuRKOI4j/My9vqgrwzhRNw11MP3fyTdnQ4znsKajO1USnNhnLPDbRov3Cwe8oQcm35F+goouMTtoJUh2QuvVs2CwLHBxfsXNOy16wdj5Q/6EHxsaj+zUNW+tbhJoyykG+MBlP6sRndwiOr49hened0REro0Ps913uL6v57QJrFFT+14OcjVI/jvOJKi97xoTS27tVVRYNjjT4wyUg1Bs1HjovK1v9jMiNk/ob5ISxZONJB1frHWZrAQrxbkHQwpPnyMNJ2+4QJPr53iHBX4FTQ5cZVlUqiSIofaOw6KgYe9RsV4OzNDPh6gPBETrrBuBShiwXoUzGx7BGFE9pOAqyCTwKNLJ3dC0XEXOzlI7IaIN86LUcvGWD0taxhReKMabhztB+P39F5L6tbFHrD+r7qwm88Il5EX2ImkHcATL/498fVX/XCgTC82Ay+MaEpEkPHMpgiJZCqK6Lsspplo7wM8hSSIzLPOZAshhcwUbAyRumDhfZ/DBDnliCid6VaKyV+8xTA8tPe92SQvOSMenE4ONK9Z7aU=\"}"Расшифровать сообщение может только его получатель. Поэтому далее действия выполняет Провайдер.
2.3. В системе на стороне Провайдера
Перейти на инстанс Провайдера и проверить отображение статуса по запросу партнера в группе. Статус запроса должен смениться. Общий статус группы не изменится.
Согласовать запрос на скрипт. Отображаемый статус скрипта изменится на Одобрен.
Статус модели изменится на Одобрена.
2.4. В BC на стороне Провайдера
Расшифровать сообщение Партнера по полученному идентификатору.
bash decrypt-messages.sh id_сообщения
(с шага 2.2.2 по согласованию скрипта)Пример расшифрованного сообщения:
{
"status": "approved",
"source": {
"repository": "2",
"branch": "main",
"tag": "",
"commit": "e4d777a0e4c51cca83c5c89efa93b753b1c080be"
},
"_id": "635fca4b72d006001258f84f",
"project": "635fb5327978d800199096b4",
"name": "bc test",
"executableFilePath": "main.py",
"ownerInfo": {
"name": "Страхование"
},
"originProviderInstance": "dajwbgctmzxr",
"owner": "5bqcyjp2lqpd",
"userCreated": "cdgwzx3zeb22",
"reviews": [
{
"status": "approved",
"reviewer": "3rooa5jcqxbj",
"reviewedAt": "2022-10-31T14:08:28.712Z",
"sign": "CK9Rjk2x67c0AwLD2ubng2nP8VcF/QWHF8/N7beG1yc="
}
],
"number": 371,
"createdAt": "2022-10-31T13:14:51.228Z",
"updatedAt": "2022-10-31T14:13:08.257Z",
"__v": 0,
"jobSetting": "635fca4e72d006001258f872"
}Получить идентификатор сообщения о согласовании запроса на скрипт от Провайдера к самому себе.
bash search-messages.sh topic:3 id_компании_провайдера id_компании_партнера
В запросе на данные вместе со сменой статуса указывается токен для доступа к данным конкретного партнера. По этому токену будет происходить дальнейший запрос на данные при формировании витрины для выгрузки на виртуальную машину и запуске модели в Cleanroom.
Зашифрованное сообщение:
"id": 755295,
"message": {
"topic": 4,
"sender": "dajwbgctmzxr",
"receiver": "dajwbgctmzxr",
"data": "{\"encryption\":\"rsa4096+aes256cbc\",\"message\":\"j1IdbraoDC3BufuXcjcSdorbLv7hX/lzMQeP9LFgKYhIawBOMAzCkzmedJssgUc6k7jriMCOMRFpo7NRkba3yq+Ub4wQPdhQLxYgYWYpX62sJPeiN4xRKP/th7zKwxpelbJtaaFzs6+usk5QcP/KfjfDIx2K8lgmWF0VMufAtJ3uNy35pggpUNFXfOX09dXF6Px4cGtCc02aPN6+cNcXWM8cgAy7bGA2MdTW7MH7yOr05u5+Q/CdF2xjLIYRgtFNkWISY7oi01F0TXw2e+CBznwMJjBWHuNh8QIKVSsNY1bfkjaew2ijT1pY5MG8PHWjLHMswsKa+Xd+DhCjiYirjdRQTXgJrmnKZSXddAwLgRSkjUNAaudrzxK+IKaAc8W6c2rP06wC39cW41KCy3kGajoSjk7cEjRK33zxOuRmisGdDOPJ4a1m67dXs5kRv2zVRMIez56c8fB184qaFBPVzu1QKS4lPvXbcJ+zT5SIgrUau4AlthwjtNBQIUiLbFnp3ecCZYxU9Iq1+ZdxASoM8TcV4+fs7DWswIPY+Ez4fd2ZTWAuX2vzGnY4QkHIVdA60XhBzRKWRP33nv6/37PAgfcwx533AAAWNg3RrZXduobzs1ow3Qy2kj6yqymjr22rbHawtCQbunJC5ogGt4aN11Y3n6B/f218oMRYZvgCFJp/7fHNZ9vkxgGpC9ZIZVdHqmiEsF6APqbVLTUmEz3vBtsxmwKkBrH0pufYs2SfTSGiIUlxTx66AJg+bRhUPvMkYGpEWbWbj8v9C57iOJrSW6KEet1H7faHHrBklDyInmr0AOrE+7JEgPvL+6GdGwNrRhFGZ4T8gnw7PymBeJuZl4K1aCOw0UPsdV3IsMyiToKZWF5a49OM5aPJQ4CoPTNlO+X0IxjXiHRlIfAE6E1uj+N0Wq0YHLnqItg5Vf2mniKtXG576YunDe8uomtgJ5DuAFrxid0H/xn0uxXJI7CoUw==\",\"masterKey\":\"Aq40+0HKUU0vCUX5GOiEYM7/i1ZWtinFvckYxiQyGfIFLWmEAco4LWm0ZhlsXe5K5aShNt+p0Xjb5pWG1Q3lOcwfPeIWAni0dDsOQrHTEJbf6ZV8cjB2gvYdWiLEOtKlWHtvXBAnl7jqBR98UOQEJE9MJM2XltMQ5zORgxcw5hfiL/4sHEKWcej+Qm0G0p7V+FUGKbhp+f9XndiPQ7dYJpuV6TJPUqAnfa2DLjjFoq+sVc2Fc+H/qGkVvtjjqqerdg31zJ37za7o/nT926lJsfiKahv2Ww1+ncUdheGAjRwZp2qjp0ZtE+2FLjv9DZy3vCq3/XzEDQCen/IuF7J5Yx1jQbzr4vVMU4oeXBjbwz4DMZCOLfkkUGm3ToLDR9a17CJwzn4IxLnI+LkWRLh0g+520FkssUn66Ys+7Q727ibxD64RLJj+U6nAttd7dTm7+n1e0wA083OEog8N+fqIf7kKrlfcSuJh7b2FkbTJIMv6CbdwkCFkWGE1y4PHnxZw6RkSIfC9jPjlTlM2OM2ntHBqyPMCvl9bJYxJISX4C3S8VJ7hb3Y2Oye015kiOF6es5R/zalTdbo1Cr8QSxji/JeBsUV770IYDkhlLLAb9ReDDaqUDY04/EVzIiIsthExCiCHw25x0Fuk3NbnlF65vCOUJ/CVrelSAPSDQFkP1iM=\"}"Расшифровать сообщение
bash decrypt-messages.sh id_сообщения
Формат ответа:
{
"status": "ready4review",
"source": {
"repository": "2",
"branch": "main",
"tag": "",
"commit": "e4d777a0e4c51cca83c5c89efa93b753b1c080be"
},
"_id": "635fca4b72d006001258f84f",
"project": "635fb5327978d800199096b4",
"name": "bc test",
"executableFilePath": "main.py",
"ownerInfo": {
"name": "Страхование"
},
"originProviderInstance": "dajwbgctmzxr",
"owner": "5bqcyjp2lqpd",
"userCreated": "cdgwzx3zeb22",
"reviews": [
{
"status": "approved",
"reviewer": "dajwbgctmzxr",
"reviewedAt": "2022-10-31T14:12:55.862Z",
"sign": "+UDK/Lc0RioDWOS6CdyuHiqQ5Big86VDr8NsNylfUfo=",
"reason": null,
"reviewedBy": "cdgwzx3zeb22"
}
],
"number": 372,
"createdAt": "2022-10-31T13:14:51.228Z",
"updatedAt": "2022-10-31T14:12:55.865Z",
"__v": 0,
"jobSetting": "635fca4e72d006001258f872"
}
Сообщения с обеих сторон получены. Статус модели перейдет в "Одобрена".