a68331c86b
- PROJECT_STATUS: что сделано (черновики, версии, разбор, каталог) и планы - DEV_CONTOUR_USER_GUIDE: сценарии для проверяющих на dev-стенде - README, ТЗ, card1, журнал, бэклоги, шаги 01–11+README, спринты, TEST_TABLES: ссылки и примечания - backend/PROGRESS: ссылка на PROJECT_STATUS Made-with: Cursor
69 lines
1.8 KiB
Markdown
69 lines
1.8 KiB
Markdown
# Шаг 11: Страница настроек
|
|
|
|
## Цель
|
|
|
|
Реализовать страницу настроек для управления API ключами и системными параметрами.
|
|
|
|
---
|
|
|
|
## Задачи
|
|
|
|
### 11.1. Страница настроек
|
|
|
|
| Эндпоинт | Метод | Описание |
|
|
|----------|-------|----------|
|
|
| `/api/settings` | GET | Получить настройки |
|
|
| `/api/settings` | PUT | Обновить настройки |
|
|
|
|
### 11.2. Поля настроек
|
|
|
|
| Поле | Описание |
|
|
|------|----------|
|
|
| deepseek_api_key | API ключ DeepSeek (скрыт на фронтенде) |
|
|
|
|
### 11.3. Проверка подключения
|
|
|
|
| Эндпоинт | Метод | Описание |
|
|
|----------|-------|----------|
|
|
| `/api/settings/test-connection` | POST | Проверить подключение к DeepSeek |
|
|
|
|
**Ответ:**
|
|
```json
|
|
{
|
|
"success": true,
|
|
"message": "Подключение успешно"
|
|
}
|
|
```
|
|
|
|
или
|
|
|
|
```json
|
|
{
|
|
"success": false,
|
|
"message": "Ошибка: неверный API ключ"
|
|
}
|
|
```
|
|
|
|
### 11.4. Безопасность
|
|
|
|
- API ключ никогда не передаётся в ответах GET `/api/settings`
|
|
- При GET возвращается `***hidden***` вместо ключа
|
|
- PUT принимает новый ключ и сохраняет в БД
|
|
|
|
### 11.5. Права доступа
|
|
|
|
- Только HR может изменять настройки
|
|
|
|
---
|
|
|
|
## Результат
|
|
|
|
- Страница `/settings`
|
|
- Ввод и сохранение API ключа
|
|
- Проверка подключения к DeepSeek
|
|
|
|
|
|
---
|
|
|
|
*Актуальная привязка к коду: [../PROJECT_STATUS.md](../PROJECT_STATUS.md) · индекс шагов: [README.md](README.md).*
|