Git Product home page Git Product logo

redact-store's Introduction

redact-store

License: GPL-3.0 crates.io docs.rs Coverage Status

redact-store is a storage server

Setup

redact-store currently only supports being run with a MongoDB back-end, although more will be added in the future. There are a couple options for getting a free mongo database:

  1. Get a 100% free, fully-managed database at mongodb.com (easier, available from any device)
  2. Host it locally by installing and running mongo (harder, only available locally)

The storage server simply takes in a connection string and database name and is agnostic to where the database is hosted.

Run

  1. git clone https://github.com/pauwels-labs/redact-crypto
  2. echo "export REDACT_DB_URL=\"<mongo connection string>\"" >> config/config.env
  3. echo "export REDACT_DB_NAME=\"<db name>\"" >> config/config.env
  4. source config/config.env
  5. cargo r

Usage

  • Get data route. This route takes in a data path and will return the data at that path if it exists.
    • GET /<path>
    • <path> is a jsonpath-style string prepended and appended by a period, e.g. .profile.firstName.
  • Post data route. This route access an entire data entry and will store it in the database if possible.
    • POST /
    • The body of the request should be an Entry struct serialized as JSON

Test

To run unit tests:

  1. cargo t

To run unit tests+code coverage output (does not work on macos or windows):

  1. cargo install tarpaulin
  2. cargo tarpaulin -o html

Docs & Support

Docs are available at docs.redact.ws.

Join us in our Keybase channel! You can download the keybase client here.

Once there, click on Teams, select Join a team, and our team name is pauwelslabs.

Once you're in, Redact discussion happens in the #redact channel.

Discussions in the Keybase team should be respectful, focused on Redact, and free of profanity.

redact-store's People

Contributors

ajpauwels avatar capt-haddock avatar howhelan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

redact-store's Issues

Create basic storage trait

The trait will define interactions between the redact-store codebase and whichever backing storage system has been implemented. It should allow for the following base functionality:

  • CRUD a user and its metadata
  • CRUD individual data points for an associated user

The data points need some sort of organization in order for third-party entities to lay claim to namespaces of data that other orgs can't touch. I think the most straightforward way to this would be the classify data at the highest level by the identity which created it (e.g. hash of the cert, or maybe something that allows cert renewal, like issuer+cn, this logic should be replaceable as well).

Each data point is therefore grouped by this high-level namespace, and is identified within that namespace by a "path". This path can be interpreted as JSONPath into some sort of data object which contains all data for that namespace.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.