Standard library - dbRemote

module dbRemote
  def getOne : database -> recordID -> record
  def getArray : database -> array(recordID) -> array(record)
  def getStream : database -> array(recordID) -> stream(record)                         // since PR1612
  def get : database -> array(recordID) -> stream(record)
  def getWithDefault : record -> database -> array(recordID) -> stream(record)
  def saveOne : appstate -> database -> record -> record
  def saveOneGetID : appstate -> database -> record -> recordID                         // since PR1612
  def saveArray : appstate -> database -> array(record) -> array(record)                // since PR1612
  def saveArrayGetIDs : appstate -> database -> array(record) -> array(recordID)        // since PR1612
  def saveStream : appstate -> database -> stream(record) -> stream(record)             // since PR1612
  def saveStreamGetIDs : appstate -> database -> stream(record) -> stream(recordID)     // since PR1612
  def save : appstate -> database -> stream(record) -> stream(record)
  def upsertOne : appstate -> database -> record -> record
  def upsertOneGetID : appstate -> database -> record -> recordID                       // since PR1612
  def upsertArray : appstate -> database -> array(record) -> array(record)              // since PR1612
  def upsertArrayGetIDs : appstate -> database -> array(record) -> array(recordID)      // since PR1612
  def upsertStream : appstate -> database -> stream(record) -> stream(record)           // since PR1612
  def upsertStreamGetIDs : appstate -> database -> stream(record) -> stream(recordID)   // since PR1612
  def upsert : appstate -> database -> stream(record) -> stream(record)
  def deleteOne : appstate -> database -> recordID -> record
  def deleteOneStm : appstate -> database -> recordID -> null                           // since PR1612
  def deleteArray : appstate -> database -> array(recordID) -> array(record)            // since PR1612
  def deleteArrayStm : appstate -> database -> array(recordID) -> null                  // since PR1612
  def deleteStream : appstate -> database -> stream(recordID) -> stream(record)         // since PR1612
  def deleteStreamStm : appstate -> database -> stream(recordID) -> null                // since PR1612
  def delete : appstate -> database -> stream(recordID) -> stream(record)
  def parseQueryString : database -> string -> ast                                      // since PR1651
  def queryASTToStream : db.database -> array(data) -> bool -> bool -> stream(db.record)
module end

dbRemote provides access to databases with the http protocol. In all functions, the database parameter needs to look like

{ "type": "rmx_remote", "url": "baseURL", "db": "dbname" }

and such a record can be created by calling db.remoteDB("baseURL", "dbname").

Note that you can also use the corresponding functions from the db module.