Skip to content

DB feature spec

Trevor Bedford edited this page Aug 8, 2018 · 27 revisions

Feature requirements for DB platform

Must haves

  • ability to add new columns at any point (strongly suggests NoSQL)
  • good JSON support
  • authentication
  • permissions (i.e., authorization)
  • Python bindings actively under development

Preferred

  • ability to sync local <-> master
  • web interface with CRUD operations
  • git-like history (i.e. easy to roll back or diff commit1...commit2)
  • ability to preview changes before syncing (I (james) think this is a must have, or at least to build the tooling to show this before updating the DB)

Open questions

  • REST API layer for CRUD operations? Or done through direct DB connections (via scripts and web client)?

Software packages

Databases

Backend / API

  • Eve --- Python REST API framework

Other useful pieces

  • Passport --- really nice looking library for managing authentication
  • Horizon --- JavaScript backend, access RethinkDB database from the browser, manages sessions, auth, React-friendly