Преминете към основното съдържание

API за агента и конектора

Тези крайни точки (endpoints) се използват само от агенти и конектори. Те не са част от OpenAPI спецификацията на портала; форматите на съобщенията им са описани в Протокол на агента и конектора.

  • Заявките се автентикират с Authorization: Bearer <agent or connector key>. Ключовете се съхраняват като SHA-256 хешове и се кешират за 60 s; WebSocket връзката на отменен ключ се затваря незабавно с код 4003 на всяка реплика.
  • Ограничението на честотата на заявките по IP на /api/v1 не важи тук (много агенти споделят NAT адреси); ограничава се само регистрирането (RMM_ENROLL_RATE_PER_MINUTE).
  • Непознатите JSON полета се игнорират, така че по-новите агенти продължават да работят с по-стари сървъри.

Агент (/api/agent/v1)​

МетодПътБележки
POST/enroll{enrollment_token, hostname, fqdn, domain, machine_guid, machine_sid, os, agent_version} → 201 {agent_id, device_id, agent_key, ws_url, config}. 401 непознат токен, 409 изчерпан, 410 изтекъл или отменен, 422 невалидна заявка. Повторното регистриране на същата машина (разпозната по machine_guid, после по machine_sid) запазва устройството и ротира ключа.
GET/wsНадграждане до WebSocket.
GET/configТекущата конфигурация на агента (интервали, флагове на функции).
GET/jobs/pendingРезервно HTTP допитване (polling), когато WebSocket е блокиран.
POST/jobs/{id}/ack, /jobs/{id}/progress, /jobs/{id}/resultРезервен HTTP вариант.
PUT/jobs/{id}/outputПълният изход на задача run_script (Content-Encoding: gzip, текст, най-много 10 MiB) → 204.
POST/inventoryПълен или делта отчет; използва се и когато отчетът надхвърля WebSocket рамката от 1 MB. Приема се Content-Encoding: gzip; 32 MB при пренос, 64 MB след декомпресиране.
POST/heartbeatРезервен HTTP вариант.
GET/packages/{id}/download-url{url, sha256, size_bytes, expires_at}: нова връзка с валидност един час за готов пакет на тенанта на агента или за глобален пакет; 404 в противен случай.
GET/releases/winget{files: [{name, url, size_bytes, role: bundle or dependency}]}: файловете на App Installer под releases/winget/; 404 winget_bootstrap_unavailable, когато няма хоствани файлове.
GET/releases/latest?component=agent&channel=stable{version, url, sha256, signature}.

Конектор (/api/connector/v1)​

МетодПътБележки
POST/enroll{enrollment_token, hostname, domain, version} → 201 {connector_id, connector_key, ws_url}. Само токени от вид connector (401 в противен случай). Повторното регистриране на същата машина (тенант, име на хост, домейн) ротира ключа ѝ и затваря старата връзка.
GET/wsWebSocket; сървърът изпраща задачи adsync.run, ldap.test, ldap.ous, push_agent, wake, update_agent.
POST/heartbeatРезервен HTTP вариант.
GET/jobs/pendingРезервен HTTP вариант.
POST/jobs/{id}/ack, /jobs/{id}/progress, /jobs/{id}/resultРезервен HTTP вариант.
POST/adsync/runs/{id}/chunk{seq, computers[], complete, total?} (най-много 1000 компютъра) за части, надхвърлящи ограничението на WebSocket рамката; приема се gzip, 16 MiB → 202.
POST/push/targetsРезервен HTTP вариант на push.target.
GET/releases/latest?component=connectorНай-новото издание на конектора.