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

Безопасность:
- Секреты (токены 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

View File

@@ -1,15 +1,21 @@
# Конфигурация сервера авторизации
# ВАЖНО: Секретные данные (пароли, токены) должны быть в .env файле!
server:
port: 8081
db:
username: postgres
host: localhost
port: 5432
sslmode: disable
dbname: authorization
# password читается из переменной окружения DB_PASSWORD
token:
accessToken:
TTL-in-min: 15
secretWord: kdfmklsdlmk;asdmkl;ds
# secretWord читается из переменной окружения ACCESS_TOKEN_SECRET
refreshToken:
TTL-in-min: 90
secretWord: asdflmkasdfklmsdafklm
# secretWord читается из переменной окружения REFRESH_TOKEN_SECRET