Переход на использование переменных окружения для секретов

Безопасность:
- Секреты (токены 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>
This commit is contained in:
Ганеев Артем
2025-10-28 21:30:12 +03:00
parent 397dad830f
commit 83910be95d
4 changed files with 375 additions and 2 deletions

18
.env.example Normal file
View File

@@ -0,0 +1,18 @@
# Database Configuration
DB_PASSWORD=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_NAME=authorization
# JWT Tokens (ВАЖНО: Сгенерируйте сложные случайные строки!)
# Можно использовать: openssl rand -base64 32
ACCESS_TOKEN_SECRET=kdfmklsdlmk;asdmkl;ds
REFRESH_TOKEN_SECRET=asdflmkasdfklmsdafklm
# Token TTL (optional, defaults from application.yaml)
# ACCESS_TOKEN_TTL_MINUTES=15
# REFRESH_TOKEN_TTL_MINUTES=90
# Server (optional)
# SERVER_PORT=8081