<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5_%C2%AB%D0%97%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C_JavaScript%C2%BB_%D0%B4%D0%BB%D1%8F_Workflows</id>
	<title>Действие «Запустить JavaScript» для Workflows - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5_%C2%AB%D0%97%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C_JavaScript%C2%BB_%D0%B4%D0%BB%D1%8F_Workflows"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5_%C2%AB%D0%97%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C_JavaScript%C2%BB_%D0%B4%D0%BB%D1%8F_Workflows&amp;action=history"/>
	<updated>2026-10-26T19:39:04Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5_%C2%AB%D0%97%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C_JavaScript%C2%BB_%D0%B4%D0%BB%D1%8F_Workflows&amp;diff=7109&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: « = Действие «Запустить JavaScript» для Workflows = Действие &#039;&#039;&#039;Запустить JavaScript&#039;&#039;&#039; позволяет добавить пользовательскую логику в Workflow. Используйте его для вызова API Ключ-АСТРОМ или внешних сервисов, а также для преобразования и обогащения данных между задачами. Скри...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%94%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5_%C2%AB%D0%97%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C_JavaScript%C2%BB_%D0%B4%D0%BB%D1%8F_Workflows&amp;diff=7109&amp;oldid=prev"/>
		<updated>2026-10-14T16:24:54Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: « = Действие «Запустить JavaScript» для Workflows = Действие &amp;#039;&amp;#039;&amp;#039;Запустить JavaScript&amp;#039;&amp;#039;&amp;#039; позволяет добавить пользовательскую логику в Workflow. Используйте его для вызова API Ключ-АСТРОМ или внешних сервисов, а также для преобразования и обогащения данных между задачами. Скри...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
= Действие «Запустить JavaScript» для Workflows =&lt;br /&gt;
Действие &amp;#039;&amp;#039;&amp;#039;Запустить JavaScript&amp;#039;&amp;#039;&amp;#039; позволяет добавить пользовательскую логику в Workflow. Используйте его для вызова API Ключ-АСТРОМ или внешних сервисов, а также для преобразования и обогащения данных между задачами. Скрипты выполняются в среде выполнения JavaScript Ключ-АСТРОМ со встроенным доступом к контексту Workflow, результатам предыдущих задач и значениям элементов цикла без использования выражений Jinja.&lt;br /&gt;
&lt;br /&gt;
== Требования и ограничения ==&lt;br /&gt;
Среда выполнения JavaScript накладывает общие ограничения на функции, включая 120-секундный тайм-аут и лимит оперативной памяти в 256 МБ. К задачам Workflow применяются следующие дополнительные ограничения:&lt;br /&gt;
&lt;br /&gt;
* Размер результата задачи ограничен 6 МБ.&lt;br /&gt;
* Задачи JavaScript выполняются без контекста приложения. Для доступа к секретам Credential Vault требуются определённые настройки учётных данных. Подробности см. в разделе «Секреты Credential Vault».&lt;br /&gt;
* Некоторые пакеты SDK Ключ-АСТРОМ, например &amp;lt;code&amp;gt;@astromkey-sdk/platform/app-environment&amp;lt;/code&amp;gt; и &amp;lt;code&amp;gt;@astromkey-sdk/navigation&amp;lt;/code&amp;gt;, требуют контекста приложения или браузера и недоступны в среде выполнения JavaScript для Workflow. Для получения URL текущего тенанта используйте относительный запрос (&amp;lt;code&amp;gt;fetch(&amp;quot;/api/v2/...&amp;quot;)&amp;lt;/code&amp;gt;) вместо SDK платформы.&lt;br /&gt;
&lt;br /&gt;
== Действие «Запустить JavaScript» ==&lt;br /&gt;
&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Script&amp;#039;&amp;#039;&amp;#039;: код JavaScript для выполнения.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;sdkMajorVersions&amp;#039;&amp;#039;&amp;#039;: имена пакетов SDK Ключ-АСТРОМ и выбранная основная версия.&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
Результат определяется как возвращаемое значение функции по умолчанию выполняемого скрипта.&lt;br /&gt;
&lt;br /&gt;
== Лучшие практики для действия «Запустить JavaScript» ==&lt;br /&gt;
В следующих разделах описано, как создавать эффективные и безопасные действия JavaScript: структурирование скрипта, доступ к контексту Workflow и результатам предыдущих задач, передача данных последующим задачам, выполнение HTTP-запросов, использование секретов Credential Vault, импорт сторонних библиотек и фиксация версий SDK.&lt;br /&gt;
&lt;br /&gt;
=== Написание скрипта ===&lt;br /&gt;
Каждый скрипт должен экспортировать асинхронную функцию по умолчанию. Среда выполнения вызывает эту функцию при выполнении задачи.&amp;lt;pre&amp;gt;export default async function () {&lt;br /&gt;
  // ваша логика здесь&lt;br /&gt;
  return {&lt;br /&gt;
    myValue: 42&lt;br /&gt;
  };&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Намеренный сбой задачи ===&lt;br /&gt;
Чтобы намеренно провалить задачу «Запустить JavaScript», выбросьте необработанное исключение:&amp;lt;pre&amp;gt;export default async function() {&lt;br /&gt;
  throw new Error();&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Доступ к контексту Workflow ===&lt;br /&gt;
&lt;br /&gt;
==== Идентификаторы выполнения ====&lt;br /&gt;
Среда выполнения внедряет идентификаторы Workflow и задачи в параметры функции:&amp;lt;pre&amp;gt;export default async function ({ executionId, actionExecutionId }) {&lt;br /&gt;
  console.log(&amp;#039;Workflow execution id: &amp;#039;, executionId);&lt;br /&gt;
  console.log(&amp;#039;Action execution id: &amp;#039;, actionExecutionId);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;Вы также можете импортировать эти значения из пакета &amp;lt;code&amp;gt;@astromkey-sdk/automation-utils&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;import { actionExecutionId, executionId, taskName, workflowId } from &amp;#039;@astromkey-sdk/automation-utils&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
export default async function () {&lt;br /&gt;
  console.log(`Running action execution &amp;#039;${actionExecutionId}&amp;#039; for task &amp;#039;${taskName}&amp;#039; of workflow &amp;#039;${workflowId}&amp;#039; in workflow execution &amp;#039;${executionId}&amp;#039;`);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;Доступные свойства контекста:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;workflowId&amp;lt;/code&amp;gt;: ID выполненного Workflow.&lt;br /&gt;
* &amp;lt;code&amp;gt;executionId&amp;lt;/code&amp;gt;: ID связанного выполнения Workflow.&lt;br /&gt;
* &amp;lt;code&amp;gt;actionExecutionId&amp;lt;/code&amp;gt;: ID текущего выполнения действия.&lt;br /&gt;
* &amp;lt;code&amp;gt;taskName&amp;lt;/code&amp;gt;: имя задачи в выполнении Workflow.&lt;br /&gt;
&lt;br /&gt;
==== Результаты предыдущих задач ====&lt;br /&gt;
Используйте SDK &amp;lt;code&amp;gt;automation-utils&amp;lt;/code&amp;gt; для краткого получения результата задачи-предшественника:&amp;lt;pre&amp;gt;import { result } from &amp;#039;@astromkey-sdk/automation-utils&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
export default async function () {&lt;br /&gt;
  const myResult = await result(&amp;#039;my_task&amp;#039;);&lt;br /&gt;
  console.log(&amp;#039;The whole result object: &amp;#039;, myResult);&lt;br /&gt;
  console.log(&amp;#039;Only one variable: &amp;#039;, myResult.myVariable);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;Для полного доступа к Automation API используйте SDK &amp;lt;code&amp;gt;client-automation&amp;lt;/code&amp;gt;:&amp;lt;pre&amp;gt;import { executionsClient } from &amp;#039;@astromkey-sdk/client-automation&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
export default async function ({ executionId }) {&lt;br /&gt;
  const config = { executionId, id: &amp;#039;my_task&amp;#039; };&lt;br /&gt;
  const myResult = await executionsClient.getTaskExecutionResult(config);&lt;br /&gt;
  console.log(&amp;#039;My task result: &amp;#039;, myResult);&lt;br /&gt;
  console.log(&amp;#039;Only one variable: &amp;#039;, myResult.myVariable);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Текущий элемент цикла ====&lt;br /&gt;
Когда задача настроена на цикл, используйте &amp;lt;code&amp;gt;loopItemValue&amp;lt;/code&amp;gt; для доступа к значению текущей итерации:&amp;lt;pre&amp;gt;export default async function ({ loopItemValue }) {&lt;br /&gt;
  console.log(loopItemValue);&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Полезная нагрузка событийного триггера ====&lt;br /&gt;
Для Workflow, запускаемых событием, получите полезную нагрузку события из выполнения:&amp;lt;pre&amp;gt;import { execution } from &amp;#039;@astromkey-sdk/automation-utils&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
export default async function () {&lt;br /&gt;
  const ex = await execution();&lt;br /&gt;
  console.log(ex.params.event);&lt;br /&gt;
  // ваш код здесь&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Передача вывода последующим задачам ===&lt;br /&gt;
Возвращаемое значение задачи JavaScript доступно в последующих задачах с помощью выражений Jinja. Используйте &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ result(&amp;quot;task_name&amp;quot;)[&amp;quot;property&amp;quot;] }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; для ссылки на конкретное свойство из вывода задачи. Если ваша задача JavaScript возвращает объект:&amp;lt;pre&amp;gt;export default async function () {&lt;br /&gt;
  return {&lt;br /&gt;
    newJobs: [&amp;quot;job1&amp;quot;, &amp;quot;job2&amp;quot;],&lt;br /&gt;
    count: 2&lt;br /&gt;
  };&lt;br /&gt;
}&amp;lt;/pre&amp;gt;Последующая задача может ссылаться на результат с помощью следующих выражений:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ result(&amp;quot;run_javascript_1&amp;quot;)[&amp;quot;newJobs&amp;quot;] }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: весь массив.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ result(&amp;quot;run_javascript_1&amp;quot;)[&amp;quot;count&amp;quot;] }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: конкретное свойство.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{ result(&amp;quot;run_javascript_1&amp;quot;)[&amp;quot;newJobs&amp;quot;] | default([]) }}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;: с запасным значением, когда свойство отсутствует.&lt;br /&gt;
&lt;br /&gt;
Чтобы проверить доступные выходные данные перед запуском Workflow, используйте предварительный просмотр выражения в редакторе задач. Введите выражение и выберите &amp;#039;&amp;#039;&amp;#039;Preview&amp;#039;&amp;#039;&amp;#039;, чтобы вычислить его по последнему результату задачи. Задача может ссылаться только на выходные данные своих непосредственных предшественников в графе Workflow. Если задача-производитель не является непосредственным предшественником, выражение разрешается в &amp;lt;code&amp;gt;Undefined&amp;lt;/code&amp;gt; во время выполнения.&lt;br /&gt;
&lt;br /&gt;
=== Выполнение HTTP-запросов ===&lt;br /&gt;
Используйте Fetch API для вызова API Ключ-АСТРОМ или внешних конечных точек из задачи JavaScript.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Относительные URL (API Ключ-АСТРОМ):&amp;#039;&amp;#039;&amp;#039; Используйте относительные пути, например &amp;lt;code&amp;gt;/api/v2/entities&amp;lt;/code&amp;gt;, для вызова API Ключ-АСТРОМ. Среда выполнения автоматически добавляет необходимые заголовки аутентификации. Не устанавливайте пользовательский заголовок &amp;lt;code&amp;gt;Authorization&amp;lt;/code&amp;gt; для запросов с относительными URL. Среда выполнения перезаписывает его, что приводит к ошибке 403.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Абсолютные URL (внешние конечные точки):&amp;#039;&amp;#039;&amp;#039; Используйте полный URL и предоставьте собственный bearer-токен или API-ключ. Внешняя конечная точка должна быть добавлена в раздел «Внешние запросы». Внешние запросы включают исходящие сетевые подключения из вашей среды Ключ-АСТРОМ к внешним сервисам. Они позволяют управлять доступом к публичным конечным точкам из AppEngine с помощью функций приложений и функций в &amp;#039;&amp;#039;&amp;#039;Дашбордах&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Блокнотах&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;Автоматизациях&amp;#039;&amp;#039;&amp;#039;. Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Общие &amp;gt; Внешние запросы&amp;#039;&amp;#039;&amp;#039;. Выберите &amp;#039;&amp;#039;&amp;#039;Новый шаблон хоста&amp;#039;&amp;#039;&amp;#039;. Добавьте доменные имена. Выберите &amp;#039;&amp;#039;&amp;#039;Добавить&amp;#039;&amp;#039;&amp;#039;. Таким образом можно детально управлять веб-сервисами, к которым могут подключаться ваши функции.&lt;br /&gt;
&lt;br /&gt;
==== Секреты Credential Vault ====&lt;br /&gt;
Чтобы использовать секрет Credential Vault в скрипте, например в качестве API-ключа в HTTP-запросе, получите его с помощью &amp;lt;code&amp;gt;credentialVaultClient&amp;lt;/code&amp;gt; и используйте напрямую, не сохраняя в результате задачи.&amp;lt;pre&amp;gt;import { credentialVaultClient } from &amp;#039;@astromkey-sdk/client-classic-environment-v2&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
export default async function () {&lt;br /&gt;
  const credential = await credentialVaultClient.getCredentialsDetails({ id: &amp;#039;CREDENTIALS_VAULT-XXXXXXXXXXXXXXXX&amp;#039; });&lt;br /&gt;
  const token = credential.token;&lt;br /&gt;
  const response = await fetch(&amp;#039;https://example.com/api/resource&amp;#039;, {&lt;br /&gt;
    method: &amp;#039;GET&amp;#039;,&lt;br /&gt;
    headers: {&lt;br /&gt;
      &amp;#039;X-API-Key&amp;#039;: token&lt;br /&gt;
    },&lt;br /&gt;
  });&lt;br /&gt;
  // Не включайте токен или другие учётные данные в результат задачи —&lt;br /&gt;
  // результаты выполнения видны всем, у кого есть доступ на чтение к Workflow.&lt;br /&gt;
  return response.json();&lt;br /&gt;
}&amp;lt;/pre&amp;gt;Требуются следующие настройки учётных данных:&lt;br /&gt;
&lt;br /&gt;
* Выбрана область действия AppEngine.&lt;br /&gt;
* Включена опция «Разрешить доступ без контекста приложения».&lt;br /&gt;
* Актор Workflow имеет доступ к учётным данным.&lt;br /&gt;
&lt;br /&gt;
=== Импорт сторонних библиотек ===&lt;br /&gt;
Чтобы использовать стороннюю библиотеку, импортируйте её через URL. Применяются ограничения:&lt;br /&gt;
&lt;br /&gt;
* Модули JavaScript должны быть допустимыми модулями ECMAScript. Они выполняются в контексте среды выполнения JavaScript Ключ-АСТРОМ и соответствующей совместимости.&lt;br /&gt;
* Можно загружать только модули из URL, внесённых в список разрешённых. Вам нужно добавить их в раздел «Внешние запросы». Внешние запросы включают исходящие сетевые подключения из вашей среды Ключ-АСТРОМ к внешним сервисам. Перейдите в &amp;#039;&amp;#039;&amp;#039;Настройки &amp;gt; Общие &amp;gt; Внешние запросы&amp;#039;&amp;#039;&amp;#039;. Выберите &amp;#039;&amp;#039;&amp;#039;Новый шаблон хоста&amp;#039;&amp;#039;&amp;#039;. Добавьте доменные имена. Выберите &amp;#039;&amp;#039;&amp;#039;Добавить&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Импорты не могут превышать 6 МБ в размере (суммарно).&lt;br /&gt;
&lt;br /&gt;
==== Пример — использование библиотеки XMLJSON для разбора XML-ввода ====&lt;br /&gt;
Если ваш бэкенд создаёт устаревший вывод XML, но вам нужно обрабатывать данные как JSON, используйте библиотеку, например XML2JSON, вместо написания собственного парсера. Добавьте URL библиотеки XMLJSON в разрешённые «Внешние запросы». Добавьте фрагмент, подобный следующему, в ваше действие JavaScript для разбора XML и преобразования его в JSON.&amp;lt;pre&amp;gt;// Загрузка XML-парсера из ESM&lt;br /&gt;
import xml2js from &amp;quot;https://esm.sh/xml2js@0.6.2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
export default async function() {&lt;br /&gt;
  // Фиктивный XML, можно получить из вашего бэкенда&lt;br /&gt;
  const xml = &amp;quot;&amp;lt;root&amp;gt;&amp;lt;message&amp;gt;Hello World&amp;lt;/message&amp;gt;&amp;lt;/root&amp;gt;&amp;quot;;&lt;br /&gt;
  const parser = new xml2js.Parser();&lt;br /&gt;
  const json = await parser.parseStringPromise(xml);&lt;br /&gt;
  return json;&lt;br /&gt;
}&amp;lt;/pre&amp;gt;Обратите внимание, что некоторые библиотеки зависят от встроенных модулей Node.js — таких как &amp;lt;code&amp;gt;net&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tls&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;fs&amp;lt;/code&amp;gt; или &amp;lt;code&amp;gt;crypto&amp;lt;/code&amp;gt; — которые среда выполнения JavaScript Ключ-АСТРОМ не предоставляет. Библиотеки, требующие низкоуровневого доступа к сокетам или файловой системе (например, клиенты Kafka, такие как KafkaJS), не загрузятся. Полные сведения о совместимости см. в документации по среде выполнения JavaScript.&lt;br /&gt;
&lt;br /&gt;
=== Фиксация версий SDK Ключ-АСТРОМ ===&lt;br /&gt;
В действии «Запустить JavaScript» вы можете зафиксировать каждый пакет SDK Ключ-АСТРОМ на определённой основной версии, чтобы контролировать, когда ваше действие принимает критические изменения. Минорные обновления и обновления патчей в пределах выбранной основной версии применяются автоматически. Раздел «Версии SDK Ключ-АСТРОМ» в редакторе задач показывает каждый доступный пакет и его текущую выбранную основную версию. Фиксация влияет только на версию пакетов, которые вы импортируете напрямую. Если у импортированного пакета есть собственные зависимости, они разрешаются в соответствии с собственным определением зависимостей пакета. Когда вы добавляете новую задачу «Запустить JavaScript», по умолчанию выбирается последняя основная версия SDK. Задачи, созданные до появления этой функции или в которых опущен входной параметр &amp;lt;code&amp;gt;sdkMajorVersions&amp;lt;/code&amp;gt;, по умолчанию используют самую старую доступную основную версию. Когда вы открываете такую задачу, редактор показывает предупреждение. Выберите &amp;#039;&amp;#039;&amp;#039;Настроить версии пакетов&amp;#039;&amp;#039;&amp;#039;, чтобы загрузить доступные версии и явно задать их. Чтобы обновить или откатить пакет SDK:&lt;br /&gt;
&lt;br /&gt;
* Откройте задачу в редакторе.&lt;br /&gt;
* Разверните &amp;#039;&amp;#039;&amp;#039;Версии SDK Ключ-АСТРОМ&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* Выберите нужную основную версию из раскрывающегося списка для каждого пакета.&lt;br /&gt;
&lt;br /&gt;
Задачи, для которых доступна более новая основная версия, показывают подсказку «Доступна новая основная версия».&lt;br /&gt;
&lt;br /&gt;
=== Безопасность ===&lt;br /&gt;
&lt;br /&gt;
* Действие «Запустить JavaScript» не поддерживает выражения в своих входных данных, чтобы избежать возможности внедрения кода.&lt;br /&gt;
* Все HTTP-вызовы проверяются по глобальному списку разрешённых.&lt;br /&gt;
* Если вы импортируете сторонние библиотеки, домены CDN из списка разрешённых предоставляют доступ ко всему портфелю пакетов. Среда выполнения JavaScript Ключ-АСТРОМ устойчива к определённым векторам атак, но вы можете случайно разрешить вредоносный код. Зеркалируйте зависимости в вашей внутренней инфраструктуре и отслеживайте их последствия для безопасности с помощью Application Security Ключ-АСТРОМ или сторонних инструментов, таких как Snyk.&lt;br /&gt;
* Не возвращайте секреты как часть результата задачи. Результаты выполнения видны всем, у кого есть доступ на чтение к Workflow.&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>