Разработка коннекторов
Исполнение действия
ActionRunner вызывает runAction($type, $config, $context) для любого действия, чей тип не встроенный. Контекст события уже разрешён.
ActionRunner вызывает runAction($type, $config, $context) для любого действия, чей тип не встроенный. Контекст события уже разрешён.
php
final class ActionContext {
public readonly Automation $automation;
public readonly ?Workspace $workspace;
public readonly ?Record $record;
public readonly ?Collection $collection;
public readonly array $ctx; // сырой контекст события
public function render(?string $s): string; // разворот токенов {{…}}
}#Правила
- Возвращайте человекочитаемую строку — она попадёт в журнал запуска (виден в UI и тест-прогоне).
- При ошибке бросайте исключение — движок поймает, залогирует и продолжит остальные действия; запуск пометится
failed. - Действие best-effort и по возможности идемпотентное: авто-ретрая джобы нет (
tries=1). - Токены рендерьте через
$context->render()— семантика та же, что у встроенных действий. - Учётные данные читайте из
IntegrationConnection(модель сама расшифровываетcredentials()), не из конфига шага.