Metadata-Version: 2.1
Name: oceandb-driver-interface
Version: 0.1.3
Summary: 🐳 Ocean DB driver interface(Python).
Home-page: https://github.com/oceanprotocol/oceandb-driver-interface
Author: leucothia
Author-email: devops@oceanprotocol.com
License: Apache Software License 2.0
Keywords: oceandb-driver-interface
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/x-rst

|banner|

.. raw:: html

   <h1 align="center">

oceandb-driver-interface

.. raw:: html

   </h1>

..

    🐳 Ocean DB driver interface(Python).

.. |banner| image:: docs/imgs/repo-banner@2x.png
   :target: https://oceanprotocol.com

.. image:: https://img.shields.io/pypi/v/oceandb-driver-interface.svg
        :target: https://pypi.python.org/pypi/oceandb-driver-interface

.. image:: https://travis-ci.com/oceanprotocol/oceandb-driver-interface.svg?token=pA8zcB6SCxKW5MHpqs6L&branch=master
        :target: https://travis-ci.com/oceanprotocol/oceandb-driver-interface



High-level, plugin-bound Ocean DB functions. You should implement a plugin class extending this module to connect with Ocean DB.

* Free software: Apache Software License 2.0
* Documentation: https://oceandb-plugin-system.readthedocs.io.


How to use it
-------------

Abstract interface for all persistence layer plugins.
Expects the following to be defined by the subclass:

* type - A string denoting the type of plugin (e.g. BigchainDB).
* write - Write an object in OceanDB
* read - Read the registry for a provided id
* update - Update an object in OceanDB
* delete - Delete the registry for a provided id
* list - List the elements saved in OceanDB

Once you have your plugin, the way to use it is the following:


You have to provide a configuration with the following information:

.. code-block:: python

    [oceandb]

    enabled=true            # In order to enable or not the plugin
    module=bigchaindb       # You can use one the plugins already created. Currently we have mongodb and bigchaindb.
    module.path=            # You can specify the location of your custom plugin.
    db.hostname=localhost   # Address of your persistence.
    db.port=9985            # Port of yout persistence database.

    # If you choose bigchaindb you have to provide this:
    secret=                 # A secret that serves as a seed.
    db.namespace=namespace  # Namespace that you are going to use in bigchaindb
    db.app_id=              # App id of your bigchaindb application.
    db.app_key=             # App key of your bigchaindb application.

    # If you choose mongodb you have to provide this:
    db.username=travis      # If you are using authentication, mongodb username.
    db.password=test        # If you are using authentication, mongodb password.
    db.name=test            # Mongodb database name
    db.collection=col       # Mongodb collection name


..


Plugins availables
------------------

At the moment we have developed two plugins:

* Bigchaindb (https://github.com/oceanprotocol/oceandb-bigchaindb-driver)
* Mongodb (https://github.com/oceanprotocol/oceandb-mongodb-driver)


How to develop a plugin
-----------------------

To create a plugin you have to create a class called Plugin extending AbstractPlugin.

You could find an example in https://github.com/oceanprotocol/oceandb-bigchaindb-driver




