Учебный проект в рамках курса GO-advanced Яндекс.Практикума. Состоит из:
- сервера хранения секретов
- пользовательской утилиты хранения секретов
Для получения полного списка доступных команд выполните:
make help
Сервер автоматически применит новые миграции при запуске.
Новые миграции можно добавить с помощью goose в директорию internal/server/storage/postgres/migrations
Утилита может использоваться самостоятельно без участия сервера, для работы с локальными хранилищами секретов.
Утилита позволяет:
- создавать новое хранилище
- работать с существующим хранилищем
- добавлять секреты: парыы логин-пароль, произвольные текстовые данные, файлы, данные банковских карт
Локальные хранилища шифруются симметричным алгоритмом GCM помощью пароля, предоставленного пользователем. Данные в удаленном хранилище так же шифриуются с помощью пароля доступа пользователя, указанного при регистрации.
# Адрес и порт сервера
export GOPH_ADDRESS=127.0.0.1:50051 # значение по умолчанию
Сервер может хранить секреты пользователя удаленно. Один пользователь имеет одно хранилище секретов. В качестве БД поддерживается PostgreSQL. Данные секретов шифруются на стороне утилиты, используя пароль доступа к хранилищу, указанный при регистрации.
Запуск сервераЖ
GOPH_POSTGRES_DSN="postgres:// ... " ./cmd/server/server
# Адрес и порт для http-api:
export GOPH_POSTGRES_DSN="postgres://user:password@localhost:5432/dbname?sslmode=disable"
# Адрес и порт для grpc-api:
export GOPH_ADDRESS=127.0.0.1:50051 # адрес по умолчанию
# Секрет для шифрования jwt токена
export GOPH_SECRET_KEY