+++
title = "HTTP API разрешений источника данных"
description = "API разрешений источника данных"
keywords = ["harvest", "http", "documentation", "api", "datasource", "permission", "permissions", "acl", "enterprise"]
aliases = ["/docs/harvest/latest/http_api/datasourcepermissions/"]
+++

# API разрешений для источников данных

> Разрешения на источник данных доступны только в Harvest Enterprise. Узнайте больше о [Harvest Enterprise]({{< рельеф "../enterprise" >}}).

Этот API можно использовать для включения, отключения, перечисления, добавления и удаления разрешений для источника данных.

Разрешения могут быть установлены для пользователя или команды. Разрешения не могут быть установлены для администраторов - у них всегда есть доступ ко всему.

Уровни разрешений для поля разрешений:

- 1 = Query

## Включить разрешения для источника данных

`POST /api/datasources/:id/enable-permissions`

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

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

```http
POST /api/datasources/1/enable-permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{}
```

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

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permissions enabled"}
```

Коды состояния:

- **200** - Хорошо
- **400** - Разрешения не могут быть включены, подробности см. в тексте ответа
- **401** - Несанкционированный
- **403** - Доступ запрещен
- **- **404** - Источник данных не найден

## Отключить разрешения для источника данных

`POST /api/datasources/:id/disable-permissions`

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

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

```http
POST /api/datasources/1/disable-permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{}
```

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

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permissions disabled"}
```

Коды состояния:

- **200** - Хорошо
- **400** - Разрешения не могут быть отключены, подробности см. в тексте ответа
- **401** - Несанкционированный
- **403** - Доступ запрещен
- **- **404** - Источник данных не найден

## Получение разрешений для источника данных

`GET /api/datasources/:id/permissions`

Получает все существующие разрешения для источника данных с заданным идентификатором.

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

```http
GET /api/datasources/1/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

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

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 551

{
  "datasourceId": 1,
  "enabled": true,
  "permissions":
  [
    {
      "id": 1,
      "datasourceId": 1,
      "userId": 1,
      "userLogin": "user",
      "userEmail": "user@test.com",
      "userAvatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56",
      "permission": 1,
      "permissionName": "Query",
      "created": "2017-06-20T02:00:00+02:00",
      "updated": "2017-06-20T02:00:00+02:00",
    },
    {
      "id": 2,
      "datasourceId": 1,
      "teamId": 1,
      "team": "A Team",
      "teamAvatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56",
      "permission": 1,
      "permissionName": "Query",
      "created": "2017-06-20T02:00:00+02:00",
      "updated": "2017-06-20T02:00:00+02:00",
    }
  ]
}
```

Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - Доступ запрещен
- **- **404** - Источник данных не найден

## Добавить разрешение для источника данных

`POST /api/datasources/:id/permissions`

Добавляет разрешение пользователя для источника данных с заданным идентификатором.

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

```http
POST /api/datasources/1/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "userId": 1,
  "permission": 1
}
```

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

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission added"}
```

Добавляет командное разрешение для источника данных с заданным идентификатором.

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

```http
POST /api/datasources/1/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk

{
  "teamId": 1,
  "permission": 1
}
```

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

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission added"}
```

Коды состояния:

- **200** - Хорошо
- **400** - Разрешение не может быть добавлено, подробности см. в тексте ответа
- **401** - Несанкционированный
- **403** - Доступ запрещен
- **- **404** - Источник данных не найден

## Удалить разрешение для источника данных

`DELETE /api/datasources/:id/permissions/:permissionId`

Удаляет разрешение с заданным "разрешением` для источника данных с заданным "идентификатором".

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

```http
DELETE /api/datasources/1/permissions/2
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```

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

```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35

{"message":"Datasource permission removed"}
```

Коды состояния:

- **200** - Хорошо
- **401** - Несанкционированный
- **403** - Доступ запрещен
- **404** - Источник данных не найден или разрешение не найдено
