+++
title = "Admin HTTP API "
description = "Harvest Admin HTTP API"
keywords = ["harvest", "http", "documentation", "api", "admin"]
aliases = ["/docs/harvest/latest/http_api/admin/"]
+++

# API администратора

HTTP API администратора в настоящее время не работает с токеном API. Токены API в настоящее время связаны только с организацией и ролью организации. Им не может быть предоставлено
разрешение администратора сервера, такое разрешение может быть предоставлено только пользователям. Таким образом, чтобы использовать эти вызовы API, вам придется использовать базовую аутентификацию, а пользователь Harvest
должен иметь разрешение администратора Harvest. (Пользователь-администратор по умолчанию называется "admin" и имеет разрешение на использование этого API.)

## Настройки

`GET /api/admin/настройки`

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
GET /api/admin/settings
Accept: application/json
Content-Type: application/json
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "DEFAULT": {
    "app_mode":"production"
  },
  "analytics": {
    "google_analytics_ua_id":"",
    "reporting_enabled":"false"
  },
  "auth.anonymous":{
    "enabled":"true",
    "org_name":"Main Org.",
    "org_role":"Viewer"
  },
  "auth.basic":{
    "enabled":"false"
  },
  "auth.github":{
    "allow_sign_up":"false",
    "allowed_domains":"",
    "allowed_organizations":"",
    "api_url":"https://api.github.com/user",
    "auth_url":"https://github.com/login/oauth/authorize",
    "client_id":"some_id",
    "client_secret":"************",
    "enabled":"false",
    "scopes":"user:email,read:org",
    "team_ids":"",
    "token_url":"https://github.com/login/oauth/access_token"
  },
  "auth.google":{
    "allow_sign_up":"false","allowed_domains":"",
    "api_url":"https://www.googleapis.com/oauth2/v1/userinfo",
    "auth_url":"https://accounts.google.com/o/oauth2/auth",
    "client_id":"some_client_id",
    "client_secret":"************",
    "enabled":"false",
    "scopes":"https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email",
    "token_url":"https://accounts.google.com/o/oauth2/token"
  },
  "auth.ldap":{
    "config_file":"/etc/harvest/ldap.toml",
    "enabled":"false"
  },
  "auth.proxy":{
    "auto_sign_up":"true",
    "enabled":"false",
    "header_name":"X-WEBAUTH-USER",
    "header_property":"username"
  },
  "dashboards.json":{
    "enabled":"false",
    "path":"/var/lib/harvest/dashboards"
  },
  "database":{
    "host":"127.0.0.1:0000",
    "name":"harvest",
    "password":"************",
    "path":"harvest.db",
    "ssl_mode":"disable",
    "type":"sqlite3",
    "user":"root"
  },
  "emails":{
    "templates_pattern":"emails/*.html",
    "welcome_email_on_sign_up":"false"
  },
  "log":{
    "buffer_len":"10000",
    "level":"Info",
    "mode":"file"
  },
  "log.console":{
    "level":""
  },
  "log.file":{
    "daily_rotate":"true",
    "file_name":"",
    "level":"",
    "log_rotate":"true",
    "max_days":"7",
    "max_lines":"1000000",
    "max_lines_shift":"28",
    "max_size_shift":""
  },
  "paths":{
    "data":"/tsdb/harvest",
    "logs":"/logs/apps/harvest"},
    "security":{
    "admin_password":"************",
    "admin_user":"admin",
    "cookie_remember_name":"harvest_remember",
    "cookie_username":"harvest_user",
    "disable_gravatar":"false",
    "login_remember_days":"7",
    "secret_key":"************"
  },
  "server":{
    "cert_file":"",
    "cert_key":"",
    "domain":"mygraf.com",
    "enable_gzip":"false",
    "enforce_domain":"false",
    "http_addr":"127.0.0.1",
    "http_port":"0000",
    "protocol":"http",
    "root_url":"%(protocol)s://%(domain)s:%(http_port)s/",
    "router_logging":"true",
    "data_proxy_logging":"true",
    "static_root_path":"public"
  },
  "session":{
    "cookie_name":"harvest_sess",
    "cookie_secure":"false",
    "gc_interval_time":"",
    "provider":"file",
    "provider_config":"sessions",
    "session_life_time":"86400"
  },
  "smtp":{
    "cert_file":"",
    "enabled":"false",
    "from_address":"admin@harvest.localhost",
    "from_name":"Harvest",
    "ehlo_identity":"dashboard.example.com",
    "host":"localhost:25",
    "key_file":"",
    "password":"************",
    "skip_verify":"false",
    "user":""
  },
  "users":{
    "allow_org_create":"true",
    "allow_sign_up":"false",
    "auto_assign_org":"true",
    "auto_assign_org_role":"Viewer"
  }
}
```
## Статистика Harvest

`GET /api/admin/статус`

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
GET /api/admin/stats
Accept: application/json
Content-Type: application/json
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "users":2,
  "orgs":1,
  "dashboards":4,
  "snapshots":2,
  "tags":6,
  "datasources":1,
  "playlists":1,
  "stars":2,
  "alerts":2,
  "activeUsers":1
}
```

## Глобальные пользователи

`POST /api/admin/users`

Создайте нового пользователя. Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
POST /api/admin/users HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "name":"User",
  "email":"user@graf.com",
  "login":"user",
  "password":"userpassword",
  "OrgId": 1
}
```

Обратите внимание, что `OrgID` является необязательным параметром, который можно использовать для назначения нового пользователя в другую организацию, когда [auto_assign_org]({{< relref "../administration/configuration.md#auto-assign-org" >}}) имеет значение `true`.

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"id":5,"message":"User created"}
```

## Пароль для пользователя

`PUT /api/admin/users/:идентификатор/пароль`

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.
Измените пароль для определенного пользователя.

**Пример Запроса**:

```http
PUT /api/admin/users/2/password HTTP/1.1
Accept: application/json
Content-Type: application/json

{"password":"userpassword"}
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"message": "User password updated"}
```

## Разрешения

`PUT /api/admin/users/:идентификатор/разрешения`

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
PUT /api/admin/users/2/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json

{"isHarvestAdmin": true}
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"message": "User permissions updated"}
```

## Удалить глобального пользователя

`DELETE /api/admin/users/:id`

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
DELETE /api/admin/users/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{"message": "User deleted"}
```

## Приостановить все оповещения

`POST /api/admin/pause-all-alerts`

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
POST /api/admin/pause-all-alerts HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "paused": true
}
```

Схема тела JSON:

- ** приостановлено ** – Если true, то все оповещения должны быть приостановлены, false отключает все оповещения.

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "state":   "Paused",
  "message": "alert paused",
  "alertsAffected": 1
}
```

## Токены авторизации для пользователя

`GET /api/admin/users/:id/auth-токены`

Возвращает список всех токенов авторизации (устройств), с которых пользователь в данный момент вошел в систему.

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
GET /api/admin/users/1/auth-tokens HTTP/1.1
Accept: application/json
Content-Type: application/json
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

[
  {
    "id": 361,
    "isActive": false,
    "clientIp": "127.0.0.1",
    "browser": "Chrome",
    "browserVersion": "72.0",
    "os": "Linux",
    "osVersion": "",
    "device": "Other",
    "createdAt": "2019-03-05T21:22:54+01:00",
    "seenAt": "2019-03-06T19:41:06+01:00"
  },
  {
    "id": 364,
    "isActive": false,
    "clientIp": "127.0.0.1",
    "browser": "Mobile Safari",
    "browserVersion": "11.0",
    "os": "iOS",
    "osVersion": "11.0",
    "device": "iPhone",
    "createdAt": "2019-03-06T19:41:19+01:00",
    "seenAt": "2019-03-06T19:41:21+01:00"
  }
]
```

## Отозвать токен авторизации для пользователя

`POST /api/admin/users/:id/revoke-auth-token`

Отменяет указанный токен авторизации (устройство) для пользователя. Пользователь выданного токена авторизации (устройства) больше не будет входить в
систему, и ему потребуется повторно пройти аутентификацию при следующем действии.

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
POST /api/admin/users/1/revoke-auth-token HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "authTokenId": 364
}
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "message": "User auth token revoked"
}
```

## Пользователь, вышедший из системы

`POST /api/admin/users/:идентификатор/выход из системы`

Пользователь, выходящий из системы, отменяет все токены авторизации (устройства) для пользователя. Пользователь выданных токенов аутентификации (устройств) больше не будет входить в
систему, и ему потребуется повторно пройти аутентификацию при следующем действии.

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
POST /api/admin/users/1/logout HTTP/1.1
Accept: application/json
Content-Type: application/json
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "message": "User auth token revoked"
}
```

## Перезагрузить конфигурации подготовки

`POST /api/admin/provisioning/dashboards/reload`

`POST /api/admin/provisioning/datasources/reload`

`POST /api/admin/provisioning/plugins/reload`

`POST /api/admin/provisioning/notifications/reload`

Снова перезагружает конфигурационные файлы подготовки для объектов указанного типа и обеспечения. Он не вернется
до тех пор, пока новые подготовленные объекты не будут уже сохранены в базе данных. В случае панелей мониторинга он прекратит
опрос на предмет изменений в файлах панели мониторинга, а затем перезапустит его с новыми конфигурациями после возвращения.

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
POST /api/admin/provisioning/dashboards/reload HTTP/1.1
Accept: application/json
Content-Type: application/json
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "message": "Dashboards config reloaded"
}
```

## Перезагрузить конфигурацию LDAP

`POST /api/admin/ldap/перезагрузка`

Перезагружает конфигурацию LDAP.

Работает только с базовой аутентификацией (имя пользователя и пароль). См. [введение](http://docs.harvest.org/http_api/admin/#admin-api ) для объяснения.

**Пример Запроса**:

```http
POST /api/admin/ldap/reload HTTP/1.1
Accept: application/json
Content-Type: application/json
```

**Пример Ответа**:

```http
HTTP/1.1 200
Content-Type: application/json

{
  "message": "LDAP config reloaded"
}
```
