GophKeeper представляет собой клиент-серверную систему, позволяющую пользователю безопасно хранить логины, пароли, данные банковских карт, произвольные текстовые и бинарные данные.
Сервер поддерживает следующий функционал:
- регистрация, аутентификация и авторизация пользователей;
- хранение приватных данных пользователей;
- синхронизация данных между несколькими авторизованными клиентами одного владельца;
- передача приватных данных владельцу по запросу.
Клиент реализует следующую бизнес-логику:
- регистрация, аутентификация и авторизация пользователей на удалённом сервере;
- доступ к приватным данным по запросу.
Перед запуском сервера необходимо создать конфигурационный файл с настройками или задать переменные окружения. Пример конфигурационного файла:
# server-config.yaml
grpc:
address: 127.0.0.1:9090
db:
url: postgres://postgres:postgres@localhost:5432/postgres?sslmode=disable
auth:
key: xiuw1bi4r98vd1(&*6
expiration_time: 24h
hasher:
key: jc7YSHpH287)(*2bSq
Пример настройки сервера через переменные окружения:
# .env
GRPC_ADDRESS=127.0.0.1:9090
DB_URL=postgres://postgres:postgres@localhost:5432/postgres?sslmode=disable
AUTH_KEY=xiuw1bi4r98vd1(&*6
AUTH_EXPIRATION_TIME=24h
HASHER_KEY=jc7YSHpH287)(*2bSq
После настройки запуск сервера осуществляется командной:
./gophkeeper server
Перед запуском клиента необходимо создать конфигурационный файл с настройками или задать переменные окружения. Пример конфигурационного файла:
# client-config.yaml
grpc:
address: 127.0.0.1:9090
encryption:
key: WYJcWgkItShq513L21E1CFuz6uQWDy3p
Пример настройки клиента через переменные окружения:
# .env
GRPC_ADDRESS=127.0.0.1:9090
ENCRYPTION_KEY=WYJcWgkItShq513L21E1CFuz6uQWDy3p
При регистрации пользователя необходимо указать адрес электронной почты и пароль. Пример команды регистрации:
./gophkeeper-cli auth register -e [email protected] -p 123456
В случае успешного выполнения запроса регистрации нового пользователя, сервер вернет в ответ токен доступа. Токен будет сохранен в текстовый файл.
В случае необходимости, токен доступа можно запросить повторно с помощью команды:
./gophkeeper-cli auth login -e [email protected] -p 123456
После записи полученного при регистрации токена доступа в переменную окружения TOKEN становятся доступны команды для управления приватными данными пользователя.
- Пример команды, сохраняющей данные банковской карты:
./gophkeeper-cli secret create card \
--name visa \
--number 1111222233334444 \
--date 12/22 \
--holder Alexandr \
--code 512
- Пример команды создания пары логин пароль:
./gophkeeper-cli secret create credentials \
--name yandex-mail \
--login [email protected] \
--password 12345678
- Пример команды для сохранения текстовой информации
./gophkeeper-cli secret create text \
--name pushkin \
--data "medny vsadnik"
- Пример команды для сохранения бинарных данных
./gophkeeper-cli secret create bin \
--name code \
-f main.go
Для получения приватных данных необходимо указать название секрета, пример:
./gophkeeper-cli secret get --name visa
Также можно вывести список всех приватных данных пользователя:
./gophkeeper-cli secret list
Пример редактирования данных о банковской карте:
./gophkeeper-cli secret update card \
--name visa \
--number 1111222233335555 \
--date 12/30 \
--holder "Alexandr Pushkin" \
--code 256
Пример команды удаления данных:
./gophkeeper-cli secret delete --name visa