{"id":20630200,"url":"https://github.com/macacajs/macaca-datahub","last_synced_at":"2025-05-14T17:04:04.509Z","repository":{"id":37335635,"uuid":"111818989","full_name":"macacajs/macaca-datahub","owner":"macacajs","description":"Continuous data provider for development, testing, staging and production. Just enjoy the data out-of-the-box.📦","archived":false,"fork":false,"pushed_at":"2025-01-27T08:50:34.000Z","size":15799,"stargazers_count":477,"open_issues_count":5,"forks_count":55,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-04-13T16:50:26.528Z","etag":null,"topics":["datahub","environment","macaca","mock"],"latest_commit_sha":null,"homepage":"https://macacajs.github.io/macaca-datahub","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/macacajs.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-11-23T14:28:42.000Z","updated_at":"2025-01-31T07:50:19.000Z","dependencies_parsed_at":"2024-06-18T14:37:45.447Z","dependency_job_id":"0095d5d4-f084-412a-a564-822fc3679840","html_url":"https://github.com/macacajs/macaca-datahub","commit_stats":{"total_commits":463,"total_committers":20,"mean_commits":23.15,"dds":0.509719222462203,"last_synced_commit":"cc22e536de55c7b4ba7958f19a190c8f6e2d53de"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macacajs%2Fmacaca-datahub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macacajs%2Fmacaca-datahub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macacajs%2Fmacaca-datahub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macacajs%2Fmacaca-datahub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macacajs","download_url":"https://codeload.github.com/macacajs/macaca-datahub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254190383,"owners_count":22029632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datahub","environment","macaca","mock"],"created_at":"2024-11-16T14:07:10.801Z","updated_at":"2025-05-14T17:04:04.430Z","avatar_url":"https://github.com/macacajs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"//macacajs.github.io\"\u003e\n    \u003cimg\n      alt=\"Macaca\"\n      src=\"https://macacajs.github.io/macaca-datahub/logo/logo-color.svg\"\n      width=\"160\"\n    /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Macaca DataHub\n\n[中文版](./README.zh.md) | [Offical Site](//macacajs.github.io/macaca-datahub)\n\n---\n\n[![NPM version][npm-image]][npm-url]\n[![Package quality][quality-image]][quality-url]\n[![CI][ci-image]][ci-url]\n[![Test coverage][codecov-image]][codecov-url]\n[![node version][node-image]][node-url]\n[![npm download][download-image]][download-url]\n[![docker pull][docker-pull-image]][docker-url]\n\n[npm-image]: https://img.shields.io/npm/v/macaca-datahub.svg?logo=npm\n[npm-url]: https://npmjs.org/package/macaca-datahub\n[ci-image]: https://github.com/macacajs/macaca-datahub/actions/workflows/ci.yml/badge.svg\n[ci-url]: https://github.com/macacajs/macaca-datahub/actions/workflows/ci.yml\n[quality-image]: https://packagequality.com/shield/macaca-datahub.svg\n[quality-url]: https://packagequality.com/#?package=macaca-datahub\n[codecov-image]: https://img.shields.io/codecov/c/github/macacajs/macaca-datahub.svg?logo=codecov\n[codecov-url]: https://codecov.io/gh/macacajs/macaca-datahub\n[node-image]: https://img.shields.io/badge/node.js-%3E=_12-green.svg?logo=node.js\n[node-url]: http://nodejs.org/download/\n[download-image]: https://img.shields.io/npm/dm/macaca-datahub.svg?logo=npm\n[download-url]: https://npmjs.org/package/macaca-datahub\n[docker-pull-image]: https://img.shields.io/docker/pulls/macacajs/macaca-datahub.svg?logo=docker\n[docker-url]: https://hub.docker.com/r/macacajs/macaca-datahub/\n\n\u003e Continuous data provider for development, testing, staging and production.\n\n## Introduction\n\nMacaca DataHub is a continuous data provider for development, testing, staging and production.\n\n### A Comprehensive Solution\n\nDataHub 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.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087483456-13b5cae9-1d6c-4cd5-a331-12c729c45a67.png\" width=\"50%\" /\u003e\n\u003c/div\u003e\n\n### Decentralization\n\nDataHub is flexible with how and where mock/testing data is stored.\n\nYou 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.\n\nIn 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.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087494964-b9c2be28-4a7d-41ad-8e26-06fda41e1623.png\" width=\"50%\" /\u003e\n\u003c/div\u003e\n\n### Data Flow Management\n\nDataHub adopts the principle of unidirectional data flow to make sure you will always get the latest data.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087504806-35d3b20c-8aef-450d-a069-9581ba117321.png\" width=\"50%\" /\u003e\n\u003c/div\u003e\n\n### Consistency Between API Document and Mock Data\n\nDatahub 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.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087321021-f5514eb2-62f6-484b-ad58-24433c7f8906.png\" width=\"75%\" /\u003e\n\u003c/div\u003e\n\n### Dashboard\n\nDataHub 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.\n\nDataHub 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.\n\nDatahub use [path-to-regexp](https://github.com/pillarjs/path-to-regexp) for dynamic path matching.\n\nAPI name example:\n\n| DataHub API name | matched request path |\n| ---------------- | -------------------- |\n| api1/books       | api1/books           |\n| api2/:foo/:bar   | api2/group/project   |\n| api3/:id         | api3/fred            |\n| api3/:id         | api3/baz             |\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087382255-adf7e3a6-60d8-42f9-b6b1-6b27917fa038.png\" width=\"75%\" /\u003e\n\u003c/div\u003e\n\n### Save Snapshot\n\nDataHub can save the response of each request by taking snapshot. You can use the archieved snapshot to find out what happened.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087335320-a477734e-e661-4045-b702-58904a5dfd0c.png\" width=\"75%\" /\u003e\n\u003c/div\u003e\n\n### Automation Testing\n\nThrough the seamless integration of the [switchScene(scenario) API](https://macacajs.github.io/macaca-wd/#switchScene) in test cases, higher test coverage can be achieved.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087346280-f26a2534-8898-4538-bf9c-928c73b2ed62.png\" width=\"75%\" /\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087359122-6abfe674-771a-45dd-a008-0271df7b05e8.png\" width=\"75%\" /\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://macacajs.github.io/macaca-datahub/assets/1556087370670-c4d89f7f-2c06-4e10-915f-99562f80fac9.png\" width=\"75%\" /\u003e\n\u003c/div\u003e\n\n\u003c!-- GITCONTRIBUTOR_START --\u003e\n\n## Contributors\n\n|[\u003cimg src=\"https://avatars.githubusercontent.com/u/1011681?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003exudafeng\u003c/b\u003e\u003c/sub\u003e](https://github.com/xudafeng)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/2139038?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003ezhangyuheng\u003c/b\u003e\u003c/sub\u003e](https://github.com/zhangyuheng)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/11460601?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003ezivyangll\u003c/b\u003e\u003c/sub\u003e](https://github.com/zivyangll)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/52845048?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003esnapre\u003c/b\u003e\u003c/sub\u003e](https://github.com/snapre)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/8085088?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003ebrucejcw\u003c/b\u003e\u003c/sub\u003e](https://github.com/brucejcw)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/17233599?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eChan-Chun\u003c/b\u003e\u003c/sub\u003e](https://github.com/Chan-Chun)\u003cbr/\u003e|\n| :---: | :---: | :---: | :---: | :---: | :---: |\n|[\u003cimg src=\"https://avatars.githubusercontent.com/u/3807955?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eBernardTolosajr\u003c/b\u003e\u003c/sub\u003e](https://github.com/BernardTolosajr)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/15025212?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003ezhuyali\u003c/b\u003e\u003c/sub\u003e](https://github.com/zhuyali)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/1209810?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eparadite\u003c/b\u003e\u003c/sub\u003e](https://github.com/paradite)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/227713?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eatian25\u003c/b\u003e\u003c/sub\u003e](https://github.com/atian25)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/40885641?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003etimeLorder\u003c/b\u003e\u003c/sub\u003e](https://github.com/timeLorder)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/6828924?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003evagusX\u003c/b\u003e\u003c/sub\u003e](https://github.com/vagusX)\u003cbr/\u003e|\n[\u003cimg src=\"https://avatars.githubusercontent.com/u/15955374?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003egaius-qi\u003c/b\u003e\u003c/sub\u003e](https://github.com/gaius-qi)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/465125?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eyesmeck\u003c/b\u003e\u003c/sub\u003e](https://github.com/yesmeck)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/17687614?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003eed2nd\u003c/b\u003e\u003c/sub\u003e](https://github.com/ed2nd)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/156269?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003efengmk2\u003c/b\u003e\u003c/sub\u003e](https://github.com/fengmk2)\u003cbr/\u003e|[\u003cimg src=\"https://avatars.githubusercontent.com/u/2972143?v=4\" width=\"100px;\"/\u003e\u003cbr/\u003e\u003csub\u003e\u003cb\u003enightink\u003c/b\u003e\u003c/sub\u003e](https://github.com/nightink)\u003cbr/\u003e\n\nThis project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Thu Apr 21 2022 10:01:16 GMT+0800`.\n\n\u003c!-- GITCONTRIBUTOR_END --\u003e\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=macacajs/macaca-datahub)](https://star-history.com/#macacajs/macaca-datahub)\n\n## License\n\nThe MIT License (MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacacajs%2Fmacaca-datahub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmacacajs%2Fmacaca-datahub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacacajs%2Fmacaca-datahub/lists"}