Использование API


Для того, чтобы иметь доступ к выполнению API запросов необходимо аутентифицироваться в системе аутентификации (Keycloak).

При этом будет получен токен доступа (access_token), обеспечивающий дальнейшую работу с API:

export USER_NAME="<your_user_name>"
export USER_PASSWORD="<your_user_password>"
export ADMINUI_ENDPOINT="<url_to_your_admin_ui>"
curl --silent -k -X POST \
  -d "grant_type=password&username=${USER_NAME}&password=${USER_PASSWORD}&client_id=admin-ui" \
  -H "Content-Type:application/x-www-form-urlencoded" ${ADMINUI_ENDPOINT}/oauth/login | jq
{
  "token_type": "Bearer",
  "access_token": "******",
  "id_token": "******",
  "refresh_token": "******",
  "expires_in": 300,
  "scope": "openid audience-admin-ui profile email"
}

После получения токена можно выполнять запросы к API, например:

export USER_NAME="<your_user_name>"
export USER_PASSWORD="<your_user_password>"
export ADMINUI_ENDPOINT="<url_to_your_admin_ui>"
export access_token=`curl --silent k -X POST \
  -d "grant_type=password&username=${USER_NAME}&password=${USER_PASSWORD}&client_id=admin-ui" \
  -H "Content-Type:application/x-www-form-urlencoded" ${ADMINUI_ENDPOINT}/oauth/login | \
  jq -r '.access_token'`

curl --silent -k -H "Authorization: Bearer ${access_token}" ${ADMINUI_ENDPOINT}/api/endpoints | jq
[
  {
    "id": 19,
    "instance": "<ip_address>:9100",
    "fqdn": "<fqdn_host>",
    "tags": [
      {
        "id": 16,
        "name": "group",
        "value": "ald-pro",
        "color": "#5aafed",
        "endpoint_count": null
      },
      {
        "id": 20,
        "name": "subsystem",
        "value": "controller",
        "color": "#f7afb0",
        "endpoint_count": null
      }
    ],
    "type": {
      "id": 4,
      "name": "Astra Linux",
      "agent_config": "",
      "template_url": "http(s)://astra-monitoring.server/d/rYdddlPWkwwkkD453/node-exporter-full",
      "default_port": 9100
    },
    "deleted_at": null,
    "url": "http(s)://astra-monitoring.server/d/rYdddlPWkwwkkD453/node-exporter-full"
  },
  ...
]

Примечание

С документацией в формате swagger можно ознакомиться на запущенном сервере используя адрес: http(s)://astra-monitoring.server/api/v1/docs/index.html