{"id":13503332,"url":"https://github.com/appbaseio/mirage","last_synced_at":"2025-05-15T14:05:38.468Z","repository":{"id":4888824,"uuid":"52501630","full_name":"appbaseio/mirage","owner":"appbaseio","description":":art: GUI for simplifying Elasticsearch Query DSL","archived":false,"fork":false,"pushed_at":"2022-12-02T23:51:22.000Z","size":96611,"stargazers_count":2211,"open_issues_count":30,"forks_count":123,"subscribers_count":50,"default_branch":"dev","last_synced_at":"2025-05-15T14:05:29.755Z","etag":null,"topics":["chrome-extension","database-gui","elasticsearch","elasticsearch-plugin","kibana","mirage"],"latest_commit_sha":null,"homepage":"http://opensource.appbase.io/mirage","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appbaseio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-02-25T06:15:36.000Z","updated_at":"2025-04-23T05:22:03.000Z","dependencies_parsed_at":"2023-01-11T20:12:47.405Z","dependency_job_id":null,"html_url":"https://github.com/appbaseio/mirage","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fmirage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fmirage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fmirage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appbaseio%2Fmirage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appbaseio","download_url":"https://codeload.github.com/appbaseio/mirage/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254355334,"owners_count":22057354,"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":["chrome-extension","database-gui","elasticsearch","elasticsearch-plugin","kibana","mirage"],"created_at":"2024-07-31T22:02:46.908Z","updated_at":"2025-05-15T14:05:33.486Z","avatar_url":"https://github.com/appbaseio.png","language":"TypeScript","readme":" [![](https://img.shields.io/badge/license-Apache%202-blue.svg)](https://github.com/appbaseio/mirage/blob/dev/LICENSE.md) [![](https://img.shields.io/badge/angular-2.0.2-red.svg)](https://github.com/appbaseio/mirage/blob/dev/package.json#L20)  [![Docker Pulls](https://img.shields.io/docker/pulls/appbaseio/mirage.svg)](https://hub.docker.com/r/appbaseio/mirage/)\n\n![](http://i.imgur.com/RoyFbSb.png?1)\n\n## Mirage: 🔎 GUI for Elasticsearch Queries\n\n1. **[Mirage: Intro](#1-mirage-intro)**   \n2. **[Features](#2-features)**  \n3. **[Roadmap](#3-roadmap)**\n4. **[Build Locally](#4-build-locally)**  \n5. **[How to contribute](#5-how-to-contribute)**\n6. **[Get Mirage](#6-get-mirage)**  \n  a. [Hosted](#use-hosted-app)  \n  b. [Chrome Extension](#get-the-chrome-extension)  \n  c. [Appbase.io](#appbaseio-dashboard)  \n  d. [Run with Docker](#run-with-docker)  \n  e. [Elasticsearch Plugin (deprecated)](#install-as-elasticsearch-plugin)\n\n\u003cbr\u003e\n\n### 1. Mirage: Intro\n\nThe Elasticsearch query DSL supports 100+ query APIs ranging from full-text search, numeric range filters, geolocation queries to nested and span queries.\n\nMirage is a modern, open-source web based query explorer for Elasticsearch.\n\n[![2-min Intro to Mirage](https://i.imgur.com/mBMBdfU.png)](https://vimeo.com/185000306)\n\nIt offers a blocks based GUI for composing Elasticsearch queries and comes with an on-the-fly transformer to show the corresponding JSON query API of Elasticsearch.\n\n\u003cbr\u003e\n\n### 2. Features\n\n* Mirage's GUI building blocks offer a smart way to creating queries. It uses the index's Elasticsearch mappings and the selected field's datatype to show only the applicable queries in the dropdown.\n\n![Watch Queries being built in realtime](http://i.imgur.com/9ActpEK.gif)  \n\n\u003cbr\u003e\n\n* Mirage provides two ways to add compound query clauses,\n  * `Add Conditions` allows adding additional clauses within the same query and  \n  * `Nested Query` allows adding a nested query clause.\n\n![Intuitively layer complexity to your queries](http://i.imgur.com/uFpBv4e.gif)  \n\n\u003cbr\u003e\n\n* Queries can be saved for later reuse. They can also be captured and shared by copying the URL.\n\n![Save queries for later reuse](http://i.imgur.com/NMAi5tn.gif)\n\n* See docs for any query from within the app.\n\n![Browse docs from within Mirage](http://i.imgur.com/9bDf6ax.gif)\n\n\u003cbr\u003e\n\n### 3. Roadmap\n\nMirage works with any Elasticsearch 2.x, 5.x, 6.x and 7.x index currently. Below is the roadmap for query support.\n\n✓ indicates queries already supported.  \n➕ indicates queries we would like to support and see [contributions for](#5-how-to-contribute).  \n❌ indicates queries that can't be supported currently.\n\n| Full-text Queries      | Term Level Queries    | Joining Queries | Geo Queries          | Specialized Queries | Span Queries |\n| :--------------------: |:---------------------:| :--------------:| :-------------------:|:-------------------:|:------------:|\n| \t✓ Match               | \t✓ Term             | ✓ Nested       | ✓ GeoDistance        | ➕ MoreLikeThis     | ✓ SpanTerm   |\n| \t✓ Multi-match         | \t✓ Terms            | ✓ HasChild     | ✓ GeoBoundingBox     | ➕ Template         | ➕ SpanMulti  |\n| \t✓ Query String        | \t✓ Range            | ✓ HasParent    |  ✓ GeoShape          | ❌ Script           | ✓ SpanFirst  |\n| \t✓ Simple Query String | \t✓ Exists           | ✓ ParentId     | ✓ GeoDistanceRange   |                     | ➕ SpanNear   |\n| \t✓ Common Terms        | \t✓ Missing          |                 | ✓ GeoPolygon         |                     | ➕ SpanOr     |\n|                         | \t✓ Prefix           |                 | ✓ GeoHashCell        |                     | ➕ SpanNot    |\n|                         | \t✓ Wildcard         |                 |                      |                     | ➕ SpanContaining |\n|                         | \t✓ Regexp           |                 |                      |                     | ➕ SpanWithin |\n|                         | \t✓ Fuzzy            |                 |                      |                     |\n|                         | \t✓ Ids              |                 |                      |                     |\n|                         | ❌ Type              |                 |                      |                     |\n\nBesides broadening the query support, we would like to see Mirage support Elasticsearch v5.0.\n\n\u003cbr\u003e\n\n### 4. Build Locally\n\n```sh\n$ npm install\n$ bower install\n$ npm start\n```\n\nThis will start a local webserver running on port 3030 serving mirage locally.\n\n#### Tests\n\n```sh\n$ npm test\n```\n\nwill fire up the jasmine tests.\n\n#### `master` branch: Elasticsearch Plugin\n\n```sh\n$ npm run build_es_plugin\n```\n\n#### `chrome-extension` branch: Chrome extension\n\n```sh\n$ npm run build_chrome_extension\n```\n\n\u003cbr\u003e\n\n### 5. How to Contribute  \n\n1. Find a query that can be supported from the [roadmap](#3-roadmap).  \n2. Fork the mirage repo and update in \"dev\" branch.\n3. [Create the query files](https://github.com/appbaseio/mirage/blob/dev/HOW-TO-CONTRIBUTE.md).  \n4. Build locally and run `npm test`.\n5. Submit a PR!\n\n\u003cbr\u003e\n\n### 6. Get Mirage\n\nMirage is available as a hosted app and as a chrome extension.\n\n#### [Use hosted app](https://opensource.appbase.io/mirage/)  \n\nor  \n\n#### [Get the Chrome extension](https://chrome.google.com/webstore/detail/mirage/dcnlpfmnpoggchflmdnkgiepijgljoka)\n\n`Note:` We're working on bringing this back.\n\nor\n\n#### [appbase.io dashboard](https://appbase.io/scalr/apps)\n\nEvery app in appbase.io has a query explorer view, which uses mirage.\n\n![Mirage Gif](https://uploads.intercomcdn.com/i/o/11609686/0425a4651aab31dde481fa6c/Mirage_Gif.gif)\n\nor\n\n#### [Run with docker](https://hub.docker.com/r/appbaseio/mirage)\n\nWorks with Elasticsearch versions 1.x, 2.x, 5.x, 6.x and 7.x.\n\n```sh\ndocker run -p 3030:3030 -d appbaseio/mirage\n```\n**CORS settings**: To make sure you enable CORS settings for your ElasticSearch instance, add the following lines in the ES configuration file.\n\n```\nhttp.port: 9200\nhttp.cors.allow-origin: \"/.*/\"\nhttp.cors.enabled: true\nhttp.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type, Content-Length, Authorization\nhttp.cors.allow-credentials: true\n```\n\n#### Install as Elasticsearch Plugin\n\n[Deprecated] Works with Elasticsearch versions 1.x and 2.x. Site plugins have been disabled starting v5.0. We recommend running mirage with docker instead.\n\n```sh\nplugin install appbaseio/mirage\n```\n\n``Note:`` Elasticsearch has a [CORS header issue](https://github.com/elastic/elasticsearch/issues/17483) with v2.3.0, use v2.3.2 and above.\n\n```\nhttp.port: 9200\nhttp.cors.allow-origin: \"/.*/\"\nhttp.cors.enabled: true\nhttp.cors.allow-headers: X-Requested-With,X-Auth-Token,Content-Type, Content-Length, Authorization\nhttp.cors.allow-credentials: true\n```\n\nAfter installing the plugin, start the elasticsearch service and visit the following URL to access it.\n\nhttp://127.0.0.1:9200/_plugin/mirage\n\n``Note:`` If you use Elasticsearch from a different port, the URL to access and the http.cors.allow-origin value in the configuration file would change accordingly.\n\nMirage can be used along with ⊞ [DejaVu](https://github.com/appbaseio/dejaVu) to browse data and perform CRUD operations inside an Elasticsearch index.\n\n---\n\nProudly built with ![](https://avatars0.githubusercontent.com/u/139426?v=3\u0026s=20)\n","funding_links":[],"categories":["TypeScript","Open-source and free products, based on Elasticsearch"],"sub_categories":["Elastic Certified Engineer"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappbaseio%2Fmirage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappbaseio%2Fmirage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappbaseio%2Fmirage/lists"}