Skip to content

Continuous data provider for development, testing, staging and production.

Notifications You must be signed in to change notification settings

macaca-bot/macaca-datahub

 
 

Repository files navigation

Macaca DataHub

中文版


NPM version build status Test coverage node version npm download docker pull

Continuous data provider for development, testing, staging and production.

Introduction

A Comprehensive Solution

DataHub is born to solving the lifecycle needs of mock/testing data of software development, from development, testing, staging to final production. Software engineers and test engineers use DataHub to manage their mock/testing data.

Decentralization

DataHub is flexible with how and where mock/testing data is stored.

You can use a local instance of Datahub on your local machine to manage your local testing/mock data during development. The mock/testing data is in plain text. It can be versioned and archived with any version control software, together with your project files.

In addition, the local mock/testing data can be pushed and synchronized to a remote Datahub server to meet the needs of data sharing and collaboration.

Data Flow Management

DataHub adopts the principle of unidirectional data flow to make sure you will always get the latest data.

Consistency Between API Document and Mock Data

Datahub can also automatically generate an API document from your mock/testing data, to help keep your API document up to date and consistent with your mock data.

DataHub Dashboard

DataHub adopts multi-scenario design, can group data according to the scene name, and provide scene data addition, deletion, and change, and can operate through DataHub's panel interface

DataHub provides a dashboard for you to manage your data. You can group data by scene, or by stage such as development, testing, or staging. Datahub provides standard CRUD funtions.

Save Snapshot

DataHub can save the response of each request by taking snapshot. You can use the archieved snapshot to find out what happened.

More intro

Installation

Macaca datahub is distibuted through npm. To install it, run the following command line:

$ npm i macaca-datahub -g

Common Usage

Start datahub server

$ datahub server

Run with docker

$ docker run -it -p 9200:9200 -p 9300:9300 macacajs/macaca-datahub

Configuration

key type description default
port Number port for DataHub server 9200
mode String mode for DataHub server 'prod'
protocol String protocol for DataHub server 'http'
database String path to file database $HOME
store String path to migrate directory undefined
view Object view layer config {}

Sample: macaca-datahub.config.js

module.exports = {
  mode: 'local',

  port: 7001,

  store: path.resolve(__dirname, 'data'),

  view: {
    // set assets base url
    assetsUrl: 'https://npmcdn.com/datahub-view@latest',
  },
};

Pass config file[.js|.json] to DataHub server.

$ datahub server -c path/to/config.js --verbose

Schema Syntax

DataHub use standard JSON schema syntax, schema must has the root node.

{
  "type": "object",
  "required": [
    "success"
  ],
  "properties": {
    "success": {
      "type": "boolean"
    },
    "foo": {
      "type": "object",
      "description": "foo description",
      "default": "",
      "required": [
        "bar"
      ],
      "properties": {
        "bar": {
          "type": "string",
          "description": "bar description"
        }
      }
    }
  }
}

live demo: webpack-datahub-sample

Project Integration Sample

Integration with webpack-dev-sever

More about datahub-proxy-middleware

Integration with Egg.js

More about egg-datahub

Build docker image

Build base mirror.

$ docker build -t="macacajs/macaca-datahub" .

Run as standalone just once service.

docker run -it -p 9200:9200 -p 9300:9300 macacajs/macaca-datahub

Run with existed datahub's database in your host.

$ docker run -it -v ~/.macaca-datahub/macaca-datahub.data:/root/.macaca-datahub/macaca-datahub.data -p 9200:9200 -p 9300:9300 macacajs/macaca-datahub

SDKs

DataHub provides SDKs in multiple languages for easy integration with your test code.

Contributors


xudafeng


zhangyuheng


zivyll


brucejcw


Chan-Chun


atian25


BernardTolosajr

This project follows the git-contributor spec, auto upated at Sun Apr 22 2018 18:34:37 GMT+0800.

License

The MIT License (MIT)

About

Continuous data provider for development, testing, staging and production.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 99.8%
  • Shell 0.2%