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.
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
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.