Открытое бета-тестирование: все тарифы со скидкой 100% на время тестирования. Нашли изъян или есть идея — напишите нам.

Агент

Агент это отдельный бинарник на вашей машине. Он сам подключается к облаку по ключу интеграции команды и отдаёт холсту ровно то, что вы выдали в его конфиге: подключения к базам и папки. Входящих портов, туннелей и белых списков не нужно. Внутри нет ни сервера, ни редактора.

Установка

  1. В кабинете команды выпустите ключ интеграции. Ключ можно отозвать в любой момент, агент отключится сразу.
  2. Скачайте агента на странице «Агент» под свою систему.
  3. Положите рядом agent.json и запустите myetern-agent agent.json.
{
  "key": "mik_…",
  "cloud": "https://myetern.com",
  "name": "офисный",
  "connections": {
    "main": {"kind": "mysql", "host": "localhost", "port": 3306,
             "user": "reader", "password": "…", "database": "shop"}
  },
  "mounts": [
    {"name": "images", "path": "/srv/images", "mode": "ro"},
    {"name": "out",    "path": "/srv/out",    "mode": "rw"}
  ],
  "allowRemoteConnections": false,
  "allowBuild": false
}

Виды подключений: mysql, pgsql, sqlite. Папка с режимом ro никогда не примет запись.

Что видно на холсте

  • Агент появляется в списке команды сразу после входа.
  • Источник с подключением agent:офисный/main выполняет SQL на вашей машине.
  • «Файлы агента» в меню: обзор папок, подтягивание файлов во вложения по хэшу, запись результатов генерации деревом в папку rw.
  • Проект из файлов: языки разбирают каталог с вашей машины, транслятор остаётся на сервере.

Флаги хозяина

  • allowRemoteConnections: разрешить облаку добавлять подключения из кабинета. Двойной ключ: флаг ставит хозяин машины, а на облачной стороне это может только распорядитель команды. Такие подключения пишутся в отдельный файл, ваш agent.json агент никогда не переписывает.
  • allowBuild: собирать и запускать присланные сгенерированные файлы своим компилятором. Облако чужой код нативно не исполняет никогда, поэтому запуск в облаке идёт либо через агента, либо в песочнице wasm.

Команды, HTTP и серверы языков

Три секции agent.json открывают агенту работу с внешними инструментами, каждая под собственным allow-списком хозяина:

"exec": {"allow": ["gh *", "dart *", "bash tools/dist/*", "docker compose *", "claude *"],
         "cwd": "/home/me/projects/app", "timeoutSeconds": 120},
"http": {"allow": ["https://tracker.example.com/"],
         "headers": {"https://tracker.example.com/": {"Authorization": "Bearer …"}}},
"lsp":  {"dart": "dart language-server --protocol=lsp", "php": "intelephense --stdio"}

exec выполняет команды заданий, действий и трекеров, http ходит по адресам трекеров с заголовками, которые не покидают машину, lsp поднимает серверы языков для редактора. Полный пример со всеми секциями лежит в архиве агента как agent.example.json. Подробности в главах «Код на холсте», «Проект» и «Задачи и трекеры».

Self-host: агент встроен

На сервере self-host отдельный агент не нужен. Положите agent.json рядом с сервером или укажите путь в MYETERN_HOME_AGENT: поля key и cloud не требуются, сервер сам выдаёт себе ключ на время работы. Агент называется «дом» или именем из конфига и умеет всё, что описано в конфиге. Другие машины подключаются как обычные агенты: myetern-server agent add ИМЯ печатает ключ один раз, дальше agent list и agent rm. Кто сейчас на связи, показывает «Данные → 🤖 Агенты…».

Права

Чтение файлов и баз через агента, запись и сборка требуют способностей cap.file, cap.sql, cap.shell у того, кто нажимает. Способности выдаёт распорядитель команды.

← Данные, базы и файлы