Безопасность:
- Секреты (токены JWT, пароль БД) теперь читаются из переменных окружения
- Удалены секретные данные из application.yaml
- Добавлен .env.example для документации
- .env уже в .gitignore
Изменения:
- Обновлен config.go для загрузки переменных окружения
- Добавлена библиотека godotenv для удобной работы с .env
- Добавлена валидация обязательных переменных окружения
- Поддержка переопределения любых настроек через env
Обязательные переменные окружения:
- DB_PASSWORD - пароль базы данных
- ACCESS_TOKEN_SECRET - секрет для access токенов
- REFRESH_TOKEN_SECRET - секрет для refresh токенов
Опциональные переопределения:
- DB_HOST, DB_PORT, DB_NAME, DB_USER
- ACCESS_TOKEN_TTL_MINUTES, REFRESH_TOKEN_TTL_MINUTES
- SERVER_PORT
Документация:
- Добавлен README.md с полной документацией API
- Описание структуры проекта
- Инструкции по настройке и запуску
- Примеры использования API
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Добавлен базовый middleware userIdentity для валидации токенов
- Реализован middleware requireRole для проверки конкретных ролей
- Добавлены вспомогательные методы requireAdmin, requireTeacher, requireStudent
- Обновлена структура роутов с разделением прав доступа
- Добавлены примеры handler'ов: getAllUsers, getUserByUsername, deleteUser
- Исправлен роутинг api группы (было router.Group, стало serviceRouter.Group)
Теперь поддерживается:
- GET /api/users - доступ для всех авторизованных пользователей
- GET /api/users/:username - доступ для всех авторизованных
- POST /api/users/:username - только для администраторов
- DELETE /api/users/:username - только для администраторов
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>