Afina

Скачать приложение

AppleWindows
RU

RPA-модули — Node.js-код внутри ваших сценариев

Пишите собственные Node.js-модули с npm-зависимостями и вызывайте их из RPA-сценариев через блок executeModule. Подписанное исполнение, изолированный рантайм, полная переиспользуемость — мост между no-code автоматизацией и настоящей разработкой.

RPA-модули — Node.js-код внутри ваших сценариев
Node.js • npm • executeModule

Когда кликов мало — переходите в код

Большинство RPA-сценариев живут на визуальном холсте. Сложные 10% — кастомные API-вызовы, нишевые библиотеки, серьёзные трансформации данных — хотят настоящего кода. Модули Afina — это полноценные Node.js-пакеты с npm-зависимостями, Ed25519-подписью для безопасного исполнения и чистым form-based UI в родительском сценарии.

Пишите Node.js, доставляйте как npm-пакет

Пишите Node.js, доставляйте как npm-пакет

Каждый модуль — папка с index.js, package.json и любыми npm-зависимостями. Правьте файлы в любимом редакторе — VS Code, Cursor, JetBrains — Afina следит и пере-подписывает по запросу.

Вызывайте модули из RPA-сценариев

Вызывайте модули из RPA-сценариев

Новый блок executeModule принимает hash модуля + form-payload. Функция модуля получает args, общается с браузером через хелперы Afina, возвращает значение в сценарий. Нативный interop с остальным стеком scripts-and-automation.

Полная экосистема npm

Полная экосистема npm

Берите любимые пакеты — axios, cheerio, ethers, sharp, что угодно. Afina ставит зависимости в папку модуля; runtime allowlist ограничивает поверхность Node API, чтобы криво написанный модуль не уронил машину. Идеальный спутник для локального API.

Ed25519-подпись исполнения

Ed25519-подпись исполнения

У каждого модуля Ed25519-подпись над md5-манифестом файлов. Executor отказывается запускать неподписанный или устаревший модуль — защита от случайного повреждения и supply-chain подмен. Вместе с MCP-сервером ИИ-агенты тоже могут писать модули безопасно.

FAQs

Есть вопросы? Мы на связи и поможем.

Поддержка онлайн

Скрипт — это граф блоков на визуальном холсте. Модуль — это Node.js-функция, чистый код, который вы оборачиваете form-схемой и зовёте изнутри скрипта через блок executeModule. Скрипт даёт оркестрацию; модуль — императивную логику, когда блоков недостаточно.

Вызовите create_module через API, MCP или UI — Afina скаффолдит папку с index.js, utils.js, package.json и settings.json. Правите index.js в редакторе, добавляете npm-зависимости, потом resign_module — executor принимает новые файлы. Новый модуль появляется в пикере executeModule.

Чтобы executor не запускал подменённый код. Каждое сохранение обновляет Ed25519-подпись над md5-манифестом всех файлов модуля. Если подпись не сходится с манифестом, executor отказывается стартовать — отдаёт явный modules.error.signature_invalid.

Практически любые. Afina выполняет npm install в папке модуля, поэтому зависимости вашего package.json лежат там изолированно. Список allowedFunctions runtime'а контролирует, какие Node-built-in'ы доступны; можно расширять или ограничивать на модуль.

Да — через хелперы модулей Afina. Модуль получает context, который позволяет звать те же примитивы, что и сценарии: navigate, click, eval, set/get переменных аккаунта, дёрнуть локальный API. Работает в той же задаче, что и родительский сценарий.

Да. MCP-сервер отдаёт инструменты create_module/update_module/resign_module, а LLM использует хостовые файл-инструменты (Read/Edit/Write) для правки файлов модуля в moduleDirAbs. Подпись — это то, что гарантирует, что ИИ выкатил ровно то, что запустится.

Кастомный Node.js внутри антидетект-браузера

Пишете модуль, подписываете, кидаете в сценарий — ваш код, подписанный и изолированный, работает на реальном браузере.

Модули в Afina позволяют писать настоящий Node.js-код, который выполняется в контексте антидетект-браузера, вызывать его из RPA-флоу, переиспользовать на профилях и поставлять с криптоподписями, чтобы ничего не запускалось без подписи. Подключите npm-экосистему к автоматизации, не жертвуя безопасностью.

Почему модули — звено между RPA-блоками и API

Визуальные RPA-блоки покрывают 80% автоматизации; локальный HTTP API покрывает engineering-heavy 10%. Модули закрывают gap — когда flow нужен кастомный API-вызов, крипто-подпись, сложный парсер или приватный SDK, вы пишете Node.js-модуль один раз, подписываете, кладёте в RPA-библиотеку, и каждый flow может его использовать.

Что внутри модулей Afina

1. Пишите на Node.js с полной npm-экосистемой

Стандартные CommonJS / ESM-модули. Используйте любой npm-пакет (axios, ethers, jsonwebtoken, sharp, ваш приватный SDK). Модули запускаются в Node.js-субпроцессе с контекстом профиля внутри.

2. Переиспользование между RPA-скриптами

Вызывайте модуль из любого RPA-флоу через блок executeModule. Передал input, получил output, продолжаешь flow. Один модуль — каждый скрипт выигрывает. Уходит копи-паст ад из 30 скриптов с одной и той же Puppeteer-логикой.

3. Ed25519-подписанный запуск

Каждый модуль несёт Ed25519-подпись над md5-манифестом своих файлов. Executor сверяет перед каждым запуском. Один изменённый байт — отказ. Часть zero-knowledge модели: никаких тихих supply-chain подмен, никаких вредоносных dependency-update втихую.

4. AI-friendly генерация кода

Через MCP-сервер LLM может создать модуль, отредактировать файлы, запустить и переподписать через инструмент resign_module. Агенты собирают флоу end-to-end, не покидая хост-редактор.

5. Local-first, опциональная синхронизация

Модули живут в вашем moduleDirAbs на диске. Push в Afina cloud или Google Drive для шеринга между командой и машинами — opt-in на модуль.

Где модули сияют

Крипто-флоу с подписью транзакций на устройстве (ключ не покидает машину). Кастомные интеграции с внутренними SaaS-API без публичного web UI. Тяжёлый парсинг — PDF-extract, OCR post-processing, парсинг HTML маркетплейсов. Интеграция CAPTCHA-сольверов. Везде, где вы написали бы скрипт на Puppeteer или Playwright, но хотите per-profile fingerprint-контекст и общую переиспользуемость в RPA-библиотеке.