При отсутствии собранных приложений, необходимо выполнить сборку, с помощью make {название приложения}_{название системы} (при запуске make без параметров, будет выполнен билд клиента и сервера для локальной системы). После запустить оба приложения. При необходимости можно изменить файлы конфигурации перед запуском приложений. В клиенте реализовано подобие интерактивного меню, поэтому инструкция по использованию не требуется.
Описание взаимодействия клиент-сервер находится по адресу http://host/api/v1/swagger/index.html, где host - указанный адрес для сервера
Keeper представляет собой клиент-серверную систему, позволяющую пользователю надёжно и безопасно хранить логины, пароли, бинарные данные и прочую приватную информацию.
- регистрация, аутентификация и авторизация пользователей;
- хранение приватных данных;
- синхронизация данных между несколькими авторизованными клиентами одного владельца;
- передача приватных данных владельцу по запросу.
- аутентификация и авторизация пользователей на удалённом сервере;
- доступ к приватным данным по запросу.
- создание, редактирование и удаление данных на стороне сервера или клиента;
- формат регистрации нового пользователя;
- выбор хранилища и формат хранения данных;
- обеспечение безопасности передачи и хранения данных;
- протокол взаимодействия клиента и сервера;
- механизмы аутентификации пользователя и авторизации доступа к информации.
- клиент должен распространяться в виде CLI-приложения с возможностью запуска на платформах Windows, Linux и Mac OS;
- клиент должен давать пользователю возможность получить информацию о версии и дате сборки бинарного файла клиента.
- пары логин/пароль;
- произвольные текстовые данные;
- произвольные бинарные данные;
- данные банковских карт.
Для любых данных должна быть возможность хранения произвольной текстовой метаинформации (принадлежность данных к веб-сайту, личности или банку, списки одноразовых кодов активации и прочее).
Ниже описаны базовые сценарии взаимодействия пользователя с системой. Они не являются исчерпывающими — решение отдельных сценариев (например, разрешение конфликтов данных на сервере) остаётся на усмотрение исполнителя.
- Пользователь получает клиент под необходимую ему платформу.
- Пользователь проходит процедуру первичной регистрации.
- Пользователь добавляет в клиент новые данные.
- Клиент синхронизирует данные с сервером.
- Пользователь получает клиент под необходимую ему платформу.
- Пользователь проходит процедуру аутентификации.
- Клиент синхронизирует данные с сервером.
- Пользователь запрашивает данные.
- Клиент отображает данные для пользователя.
_ - _
_ - _
- В качестве базы данных для клиента выбрано sqlite. Поскольку обеспечивает простоту использования клиента на любой
платформе и для ее использования достаточно 1 файла рядом с проектом - В качестве базы данных для сервера sqlite(простота развертывания, за счет реализации отсутствие многопоточного обращения).
Для работы клиента необходимо расположить рядом с ним файл конфигурации клиента. Файл будет содержать необходимые адреса для подключения к серверу
Принцип взаимодействия был описан выше. Клиенту нужна БД поскольку, со стороны пользователя хотелось бы иметь доступ к паролям\данным, созданным ранее локально. Т.е., БД клиента служит локальным кэшом, на случай отсутствия интернет соединения у клиента или проблем на стороне сервера.