Skip to content

eugene982/yp-gophkeeper

Repository files navigation

Менеджер паролей GophKeeper

codecov

Общие требования

GophKeeper представляет собой клиент-серверную систему, позволяющую пользователю надёжно и безопасно хранить логины, пароли, бинарные данные и прочую приватную информацию.

Сервер должен реализовывать следующую бизнес-логику:

  • регистрация, аутентификация и авторизация пользователей;
  • хранение приватных данных;
  • синхронизация данных между несколькими авторизованными клиентами одного владельца;
  • передача приватных данных владельцу по запросу.

Клиент должен реализовывать следующую бизнес-логику:

  • аутентификация и авторизация пользователей на удалённом сервере;
  • доступ к приватным данным по запросу.

Сборка и запуск

Сборка сервера

Сборка go:

go build -o gophkeeper cmd/gophkeeper/main.go 

Сборка gophkeeper в папку bin:

make buildsrv

Сборка клиента

Сборка go:

go build -o gk-client cmd/grpcclient/main.go 

Сборка gk-client в папку bin:

make buildcli 

Запуск сервиса

Флаг "d" или переменная окружения "DATABASE_DSN" - строка соединения с базой данных postgres. Не обязательный, по умолчанию "postgres://postgres:postgres@localhost/gophkeeper". Пример:

gophkeeper -d postgres://user:passwd@db:5432/basename 

Флаг "m" или переменная окружения "MIGRATE_PATH" - путь к файлам миграции. Не обязательный, по умолчанию "". Создаёт в указанной базе данных необходимые таблицы. Пример:

gophkeeper -m ./migrations 

Флаг "a" или переменная окружения "RUN_ADDRESS" - адрес, порт запуска сервера. Не обязательный, по умолчанию ":28000". Пример:

gophkeeper -a :8080 

Флаг "l" или переменная окружения "LOG_LEVEL" - уровень выводимых логов (debug, error, info, warn). Не обязательный, по умолчанию "info". Пример:

gophkeeper -l warn

Запуск клиента

Флаг "a" - адрес, порт сервера, который будет слушать клиент. Не обязательный, по умолчанию ":28000". Пример:

gk-client -a :8080

Клиент работает в интерактивном режиме, после запуска ждёт команды пользователя. Основные команды:

  • exit - выход из клиента
  • ping - проверка соединения
  • login - авторизация пользователя
  • reg - регистрация нового пользователя
  • user - выбор авторизованного пользователя
  • list (ls) - список хранимых данных

Хранилища которыми можно управлять после регистрации или авторизации:

  • password - работа с хранилищем паролей
  • note - работа с хранилищем заметок
  • card - работа с хранилищем карт
  • file - работа с хранилищем файлов

Для хранилищ определены следующие команд:

  • ls - показать список
  • get - прочитать данные из хранилища
  • new - добавить данные в хранилище
  • upd - обновить данные
  • del - удалить из хранилища

Чтение, изменение, удаление выполняются по имени элемента.


Пример регистрации:

:28000> reg
login: user-1
password: super-password

После удачной регистрации приглашение изменится на вид user@server> в данном случае "user-1@:28000>"

Пример получения списка заметок:

user-1@:28000> note ls

Пример создания новой заметки:

user-1@:28000> note new
name: note#1
notes: Какая-то важная заметка

Пример получения заметки:

user-1@:28000> note get note#1
name: note#1
notes: Какая-то важная заметка

About

Менеджер паролей GophKeeper

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published