Для AI-агентов: markdown этой страницы — /docs-content/infra/jobs/update.md индекс документации — /llms.txt

Заменить настройки задачи

PATCH /v1/infra/servers/:id/jobs/:jobId

PATCH полностью заменяет пользовательские настройки, а не объединяет отдельные поля. Cron, timezone и path обязательны; пропущенные label/enabled становятся пустой строкой/true. Перед выключением прочитайте список и передайте прежние значения остальных полей. Только такое выключение без иных изменений разрешено при недоступности функции или допуска. Секрет не меняется.

Нужен ключ с vibe:infra и существующие права на сервер. Для записи — управляющий ключ или роль команды с правом управления жизненным циклом. Общие правила; проверка подписи.

Параметры

Параметр Где Тип Обязателен Описание
id path string yes ID сервера из списка серверов
jobId path string yes ID задачи из списка
cronExpr body string yes Пять полей, 9–120 символов; интервал по умолчанию не меньше 5 минут
timezone body string yes Поддерживаемый IANA-пояс, например Europe/Moscow
path body string yes Относительный путь с query, 1–512 символов; без URL, traversal, control и сырого #
label body string no До 80 символов, по умолчанию пустая строка
enabled body boolean no По умолчанию true

Неизвестные поля отвергаются; lead здесь отсутствует. ALWAYS разрешён, конфликт с бессрочной работой не применяется. Хост галактики не поддерживается; приложение в галактике требует отдельного допуска.

Примеры

curl — личный ключ

Terminal
curl --max-time 20 -X PATCH "https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/jobs/JOB_ID" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "cronExpr": "0 9 * * *",
  "timezone": "Europe/Moscow",
  "path": "/tasks/digest?mode=daily",
  "label": "daily digest",
  "enabled": true
}'

curl — OAuth-приложение

Terminal
curl --max-time 20 -X PATCH "https://vibecode.bitrix24.tech/v1/infra/servers/SERVER_ID/jobs/JOB_ID" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "cronExpr": "0 9 * * *",
  "timezone": "Europe/Moscow",
  "path": "/tasks/digest?mode=daily",
  "label": "daily digest",
  "enabled": true
}'

JavaScript — личный ключ

javascript
const serverId = 'SERVER_ID';
const jobId = 'JOB_ID';
const res = await fetch(`https://vibecode.bitrix24.tech/v1/infra/servers/${encodeURIComponent(serverId)}/jobs/${encodeURIComponent(jobId)}`, {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "cronExpr": "0 9 * * *",
  "timezone": "Europe/Moscow",
  "path": "/tasks/digest?mode=daily",
  "label": "daily digest",
  "enabled": true
}),
});
const result = await res.json();
if (!res.ok || !result.success) throw new Error(result.error?.code ?? `HTTP_${res.status}`);
console.log(result);

JavaScript — OAuth-приложение

javascript
const serverId = 'SERVER_ID';
const jobId = 'JOB_ID';
const res = await fetch(`https://vibecode.bitrix24.tech/v1/infra/servers/${encodeURIComponent(serverId)}/jobs/${encodeURIComponent(jobId)}`, {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "cronExpr": "0 9 * * *",
  "timezone": "Europe/Moscow",
  "path": "/tasks/digest?mode=daily",
  "label": "daily digest",
  "enabled": true
}),
});
const result = await res.json();
if (!res.ok || !result.success) throw new Error(result.error?.code ?? `HTTP_${res.status}`);
console.log(result);

Ответ

HTTP 200. Пример формы ответа с вымышленными идентификаторами, не результат живого запроса.

JSON
{
  "success": true,
  "data": {
    "id": "job_example",
    "serverId": "server_example",
    "label": "daily digest",
    "cronExpr": "0 9 * * *",
    "timezone": "Europe/Moscow",
    "path": "/tasks/digest?mode=daily",
    "enabled": true,
    "nextScheduledFor": "2026-10-10T06:00:00.000Z",
    "scheduleRevision": 1,
    "availableSince": "2026-10-09T10:00:00.000Z",
    "createdAt": "2026-10-09T10:00:00.000Z",
    "updatedAt": "2026-10-09T10:00:00.000Z"
  }
}

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе.
data object Обновлённая задача; поля объекта описаны ниже.

Секрет подписи в ответе отсутствует.

Поля объекта data:

Поле Тип Описание
id string Идентификатор задачи
serverId string Идентификатор сервера
label string Подпись задачи
cronExpr string Пять полей cron
timezone string Часовой пояс расписания
path string Путь и необязательная query-строка
enabled boolean Включены ли плановые запуски
nextScheduledFor string Следующее плановое вхождение, UTC ISO-8601
scheduleRevision integer Ревизия расписания
availableSince string Начало текущего периода расписания, UTC ISO-8601
createdAt string Время создания, UTC ISO-8601
updatedAt string Время последнего изменения, UTC ISO-8601

Ошибки

HTTP Код Причина
401 MISSING_API_KEY Не передан ключ
403 INFRA_FORBIDDEN_FOR_COWORK_KEY Ключ Коворка не допускает запись в инфраструктуру; используйте ключ для развёртывания
403 INFRA_SCOPE_REQUIRED Нужен scope vibe:infra
403 WRITE_BLOCKED_READONLY_KEY Ключ только для чтения не допускает запись
403 SERVER_ROLE_FORBIDDEN Роль участника команды не допускает это действие
404 NOT_FOUND Сервер не найден или недоступен вызывающему
404 NOT_FOUND Задача отсутствует, удалена или принадлежит другому серверу
404 FEATURE_DISABLED Функция недоступна порталу
403 WAKE_SCHEDULE_DISABLED Порталу недоступны расписания
400 BLACKHOLE_ONLY Нужен сервер Black Hole
400 GALAXY_NOT_SUPPORTED Хост галактики не поддерживается
403 WAKE_SCHEDULE_GALAXY_DISABLED Расписания приложений галактики недоступны
400 VALIDATION_ERROR Неверная форма запроса, путь или часовой пояс
400 INVALID_CRON Cron не разобран или следующее вхождение не вычисляется
400 CADENCE_TOO_LOW Частота превышает разрешённую
429 RATE_LIMITED Слишком много запросов; настройка мутаций 10 в минуту, общие ограничения также действуют

Полный список общих ошибок API — Ошибки.

JSON
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Job not found"
  }
}

Смотрите также