# Управление API ключами и пользователями

# Управление API ключами и пользователями интеграция с внешними сервисами

🔑

### 0

Всего API ключей

✅

### 0

Активных ключей

👤

### 0

Пользователей

📊

### 0

С API ключами

Загрузка API ключей...
Загрузка пользователей...

## 📚 Документация API

### Аутентификация

Все запросы требуют заголовок `X-API-Key` с вашим ключом.

### Эндпоинты

`GET /api/external/tasks`

Получение списка задач, назначенных пользователю.

#### Параметры:

- `status` - фильтр по статусу (assigned, in_progress, completed)
- `limit` - количество записей (по умолчанию 50)
- `offset` - смещение для пагинации

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

    {
      "success": true,
      "tasks": [
        {
          "id": 123,
          "title": "Название задачи",
          "description": "Описание задачи",
          "created_at": "2024-01-01T10:00:00Z",
          "due_date": "2024-01-02T19:01:00Z",
          "task_type": "document",
          "creator_name": "Иванов И.И.",
          "files": []
        }
      ]
    }

`PUT /api/external/tasks/{taskId}/status`

Изменение статуса задачи.

#### Тело запроса:

    {
      "status": "in_progress", // или "completed"
      "comment": "Комментарий к изменению"
    }

`POST /api/external/tasks/{taskId}/files`

Загрузка файла к задаче.

#### Формат:

multipart/form-data с полем `file`

`GET /api/external/tasks/{taskId}/files/{fileId}/download`

Скачивание файла.

### Примеры использования

#### cURL:

    # Получение задач
    curl -H "X-API-Key: ваш_ключ" https://ваш-сервер/api/external/tasks

    # Изменение статуса
    curl -X PUT -H "X-API-Key: ваш_ключ" \
      -H "Content-Type: application/json" \
      -d '{"status":"in_progress","comment":"Начинаю работу"}' \
      https://ваш-сервер/api/external/tasks/123/status

    # Загрузка файла
    curl -X POST -H "X-API-Key: ваш_ключ" \
      -F "file=@document.pdf" \
      https://ваш-сервер/api/external/tasks/123/files

#### JavaScript:

    const API_KEY = 'ваш_ключ';

    async function getTasks() {
      const response = await fetch('/api/external/tasks', {
        headers: { 'X-API-Key': API_KEY }
      });
      return response.json();
    }

    async function updateStatus(taskId, status) {
      const response = await fetch(`/api/external/tasks/${taskId}/status`, {
        method: 'PUT',
        headers: {
          'X-API-Key': API_KEY,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({ status, comment: 'Комментарий' })
      });
      return response.json();
    }

### 🔑 Создать новый API ключ

×
Название ключа * Удобное название для идентификации
Пользователь *
Задачи будут назначаться этому пользователю
Описание
Разрешенные IP адреса Оставьте пустым для разрешения всех IP
Активировать сразу после создания

### ✅ API ключ создан

×
⚠️ Сохраните этот ключ в безопасном месте! Он больше не будет показан.
Ваш API ключ:

#### Быстрый старт:

    # Проверка подключения
    curl -H "X-API-Key: <ваш_ключ>" https://ваш-сервер/api/external/tasks

Информация о пользователе:

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

×
Логин
Имя
Email
Роль
Тип авторизации
Активен

### 🔑 API ключи пользователя

×