Skip to content

Keeper is a client-server system that allows you to use securely and securely store logins, passwords, binary data and other confidential information

Notifications You must be signed in to change notification settings

kozyrev-m/keeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

keeper - система для хранения приватных данных

Общая информация

keeper - система для хранения приватных данных: тексты, пароли, данные банковских карт, файлы

Архитектура

Блок-схемы

Регистрация/Логин

Регистрация/Логин

Добавление/Получение приватных данных

Добавление/Получение приватных данных

Загрузка/Скачивание файлов

Загрузка/Скачивание файлов

Схема БД

Схема БД

Подробнее migrations/01_keeper.sql

Работа приложения

Конфигурация сервера

Параметры конфигурация сервиса keeper определяются либо файлом конфигурации, либо флагами командной строки, либо переменными окружения.

Переменная окружения Флаг командной строки Описание
CONFIG_KEEPER -c;--config <file> путь к файлу конфигурации
ADDRESS -a <host:port> адрес и порт сервиса
DATABASE_DSN -d <dsn> адрес для подключения к базе данных
SESSION_KEY нет ключ для аутентификаиции

Клиент

Клиент представляет собой CLI-приложение.
Сценарий работы клиента конфигурируется флагом-командой и соответствующим флагами-аргументами.

Шаблон вызова: $keeper-client --action=<команда> [<флаги-аргументы>]

Регистрация пользователя

команда:
--action=register

    флаги-аргументы:
    --user  
    --password  

Пример:  
$ keeper-client --action=register --user=someuser --password=secret

Создание сессии пользователя

команда:
--action=login

    флаги-аргументы:
    --user  
    --password

Пример:  
$ keeper-client --action=login --user=someuser --password=secret

Произвольные текстовые данные

флаг-команда:
--action=text

    флаги-аргументы:
    --content  
    --metadata        дополнительная информация (текстовые данные)

Примеры:
// Добавить произвольный текст
$ keeper-client --action=text --content="some text" --metatdata="some metadata"

// Получить все тексты авторизованного пользователя
$ keeper-client --action=text

Пары логин/пароль

флаг-команда:
--action=pair

    флаги-аргументы:
    --user
    --password
    --metadata        дополнительная информация (текстовые данные)

Примеры:
// Добавить пару логин/пароль
$ keeper-client --action=pair --user="newuser" --password="newpassword" --metatdata="some metadata for new user"

// Получить все пары логин/пароль
$ keeper-client --action=pair

Банковские карты

флаг-команда:
--action=card

    флаги-аргументы:
    --pan           PAN - Номер платежной карты
    --till          Valid Thru Date - дата истечения срока действия карты, указанная на поверхности карты 
    --cvv           CVC/CVV — коды верификации пластикового носителя, которые подтверждают его подлинность
    --name          Имя владельца карты, напечатанное на лицевой стороне карты

    --metadata      дополнительная информация (текстовые данные)

Примеры:
// Добавить данные банковской карты
$ keeper-client --action=card --pan="4321 6543 3214 8766" --till="11/23" --cvv="123" --name="JOHN SMITH" --metatdata="some metadata for new user"

// Получить все данные банковских карт
$ keeper-client --action=card

Файлы

флаг-команда:
--file

    флаги-аргументы:
    --upload          загрузить файл на сервер
    --download        скачать файл

    --metadata        дополнительная информация (текстовые данные)
Примеры:
// Загрузить файл
$ keeper-client --action=file --upload=/path/to/file --metatdata="some file for upload"

// Скачать файл
$ keeper-client --action=file --download="file"

// Получить список загруженных на сервер файлов
$ keeper-client --action=file

Запуск приложения

Подготовка частей приложения, тестирование, и запуск выполняется с помощью команды make.
В Makefile определены основные команды для управления приложением.

Подробнее Makefile

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

  • Создание и запуск контейнеров с приложением и базой данных:
    $ make docker-keeper-up

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

  • Генерация бинарного файла клиента:
    $ make build-client

После генерации, бинарный файл клиента находится в директории bin/.
Например, команда клиента для регистрации пользователя выглядит так:
$ ./bin/keeper-client --register --user=newuser --password=secret

Дальнейшее развитие проекта

Можно добавить в приложение следующий функционал:

  • Возможность редактирования/удаления объектов
  • Поддержка терминального интерфейса для клиента

About

Keeper is a client-server system that allows you to use securely and securely store logins, passwords, binary data and other confidential information

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published