Skip to content

ex0rcist/gophkeeper

Repository files navigation

Gophkeeper

Учебный проект в рамках курса GO-advanced Яндекс.Практикума. Состоит из:

  • сервера хранения секретов
  • пользовательской утилиты хранения секретов

Gophkeeper

Разработка и тестирование

Для получения полного списка доступных команд выполните:

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages