HTTP API модуля (OpenAPI)
SDK автоматически поднимает HTTP-сервер с тремя эндпоинтами.
Спецификация: module_sdk/openapi/openapi.yaml.
GET /scan/status
Возвращает текущее состояние модуля и данные.
Ответ: 200 OK
{
"status": "ASSETS_READY",
"packet_num": 1,
"values": {},
"error_message": null,
"data": {
"confidence": null,
"force": null,
"autorule_action_execution_id": null,
"zone_id": null,
"tenant_id": null,
"host": [
{
"name": "server-01",
"responsible": "00000000-0000-0000-0000-000000000000",
"display_name": "Сервер #1",
"operation_system": "Ubuntu 22.04",
"net_interfaces": [],
"packages": [],
"network_services": [],
"metadata": {}
}
],
"account": [],
"network": [],
"external_address": [],
"global_metadata": []
}
}
Логика хендлера:
-
Если есть неподтвержденные пакеты ->
packet_num= ID первого пакета,dataзаполняется из JSON-файла этого пакета -
Если пакетов нет ->
packet_num= 0,dataпустой
POST /scan/got-packet
Keeper подтверждает получение пакета.
Тело запроса:
{
"packet_num": 1
}
Ответ: 200 OK
Логика: вызывает scan_status_storage.confirm_packet_delivery(packet_num).
POST /scan/shutdown
Остановка модуля.
Ответ: 200 OK (но ответ может не дойти, т.к. процесс завершается)
Логика: вызывает os._exit(0).
Swagger UI
При локальном запуске доступен по адресу http://localhost:{port}/ui/.