/squaas

sql query as a service

Primary LanguageJavaScript

Build Status codecov

SQUAAS

SQUAAS (SQL query as a service). Despite the hipster name, this is all a mistake. An automated solution to a bad habit. However sometimes we need to look for a proper way of doing wrong things.

Query Flow

[On Hold] (Query can still be edited)
    |
[Ready] - After enough approvals -> [Approved] - Query is added to the running queue -> [Done/Failed]

Goals

  • Remove developers direct access to the databases (Only PostgreSQL support for now)
  • Enforce some behaviors on the queries (must have transactions, no delete/update without where, hehe)
  • Enforce queries to be run only with tickets (only Jira support for now)
  • Enforce a flow where the queries have to be 'reviewed/approved' by other developers
  • Prevent multiple 'user queries' from running in parallel in the database
  • Simple 'built in' SQL parser (users can't add broken queries, used https://github.com/xwb1989/sqlparser for a while and now using https://github.com/lfittl/pg_query_go)
  • Last but not least, learn some react