Public Repository

Last pushed: 7 months ago
Short Description
Data Federation as a RESTful service, based on Apache MetaModel
Full Description

Membrane - an Apache MetaModel sub-project

Membrane offers a RESTful service for Data Federation, ie. comprehension of multiple data sources via one API.

Some of the features offered:

  • Leverages the wide connectivity options of Apache MetaModel.
  • Universal API for exploring schemas of data sources.
  • Universal API for querying data sources.
  • Universal API for inserting, updating, deleting records.
  • Multi-tenant architecture, allowing data sources to be registered in private namespaces per user, team, organization or other.

Project info: https://cwiki.apache.org/confluence/display/METAMODEL/Membrane

How to use

Essentially you can just go the docker run route, like this:

docker run -p 8080:8080 apache/metamodel-membrane

And now access the service at http://localhost:8080

You can find an Open API (aka Swagger) spec at http://localhost:8080/swagger.json

Example compose

But to show a somewhat more useful scenario, we've built some basic tests around connecting to both a PostgreSQL and an Apache CouchDB database.

A compose file would look like this:

version: '2'
services:
  metamodel-membrane:
    container_name: metamodel-membrane
    image: apache/metamodel-membrane
    ports:
    - "8080:8080"
    environment:
    - MEMBRANE_HTTP_PORT=8080
    depends_on:
    - example-postgres
    - example-couchdb
  example-postgres:
    container_name: example-postgres
    image: postgres:9.6
    environment:
    - POSTGRES_USER=membrane
    - POSTGRES_PASSWORD=secret
    - POSTGRES_DB=membrane
  example-couchdb:
    container_name: example-couchdb
    image: couchdb:1.6
    environment:
    - COUCHDB_USER=membrane
    - COUCHDB_PASSWORD=secret
    ports:
    - 5984:5984

This compose would bring up the three containers and you would be able to connect Apache MetaModel Membrane to the database using for instance our example Postman collections in the source tree for Membrane.

Docker Pull Command
Owner
apache