dejavu is a free, open source databases project written in JavaScript and released under MIT. It has 8,467 GitHub stars, 512 forks and 69 open issues, and was last pushed 3 months ago. On this registry it ranks #105 of 203 tracked projects in Databases, with 5 head-to-head comparisons available.

What is dejavu?

Dejavu is a modern, 100% client-side web UI for Elasticsearch and OpenSearch that lets developers import, browse, filter and edit index data and build faceted search UIs, aimed at engineers and operations teams who need to inspect a cluster without hand-writing queries.

What it is

Dejavu is a browser-based data browser for Elasticsearch and OpenSearch, written in JavaScript with React and released under the MIT licence. Rendering is entirely client-side, so it ships either as a hosted app on GitHub Pages or as a Docker image, rather than as a server-side service with its own data tier. It sits in the Elasticsearch and OpenSearch tooling ecosystem and talks to a cluster's indices over their HTTP API.

The problem it solves is the gap the cluster itself leaves: Elasticsearch and OpenSearch expose documents through a query API, not a UI, so inspecting a mapping, correcting one document, bulk-updating by query or loading a CSV file means hand-writing requests. Dejavu replaces that hand-written workflow with a guided interface covering index connection and local caching, visual filters, pagination, import with GUI-defined field mappings, and bulk updates built on Elasticsearch's Query DSL. Since v1.0 it has imported JSON and CSV files and defined field mappings from the GUI; since v1.5 it has supported custom headers for passing authentication headers.

Key capabilities

  • Connect to any index in a cluster, with each connected index cached locally so it stays reachable on return visits.
  • Visual filters over native data types; any filtered view exports as a JSON or CSV file.
  • Global search bar that performs text searches across a dataset.
  • Paginated browsing with configurable page size, for indices holding thousands of documents.
  • Bulk updates through Elasticsearch's Query DSL, plus individual updates, deletions, and browsing across multiple indexes and types.
  • Import of CSV or JSON data through a guided data mapping configuration, with field mappings defined from the GUI.
  • Search Preview, which builds faceted search UIs to test relevancy and exports the generated code to CodeSandbox.

Who uses it and how

  • Developers and operations teams inspecting a cluster while debugging, checking mappings, sampling documents or repairing individual records.
  • Search relevance work: Search Preview tests relevancy against a live index, then the exported code goes to front-end engineers.
  • Data onboarding: analysts load CSV or JSON exports through the importer and its guided mapping step, without writing bulk requests.
  • Multi-index environments: from v3.0 users connect to several indexes and search across them from the global search bar.
  • The topic list includes chrome-extension, indicating a browser-extension form factor alongside the hosted app and the Docker image.

Getting started

Run the published appbaseio/dejavu Docker image, or open the hosted app at https://dejavu.reactivesearch.io. The README's Build Locally section covers building the project for contribution.

How it compares

The README compares dejavu with other data browsers: ES-head, ES-kopf, ES-browser and Kibana. Its stated differentiators are JSON and CSV import plus GUI-defined field mappings from v1.0, and building and exporting faceted search UIs from v2.0. It is MIT-licensed and runs without a server-side component of its own, so it adds no separate data store to the cluster.

When to use it — and when not to

A self-hoster runs the Docker image or opens the hosted app; because rendering is 100% client-side, no database or mail server is introduced, and the cluster is the only backend. Teams that need dashboards, alerting, log pipelines or role-based access control should not pick it, since that is Kibana's territory rather than this project's. The weaknesses are visible in the facts: the badge pins React v16.6, the project carries 69 open issues, and the README excerpt says little about securing the credentials and custom headers it passes from the browser to the cluster.

project readme (upstream, from github) — read inline

dejavu: The Web UI for OpenSearch and Elasticsearch

GitHub License React Version Docker Pulls

  1. Dejavu: Intro
  2. Features
    a. Easily Connect to Indices
    b. Visual Filters
    c. Modern UI Elements
    d. Import JSON or CSV Data
    e. Build search UIs
  3. Comparison
  4. Roadmap
  5. Build Locally / Contributing
  6. Get Dejavu
    a. Docker Installation
    b. Hosted Alternatives

1. Dejavu Intro

Dejavu is a modern web UI for OpenSearch and Elasticsearch.

It was designed with the goal of providing a seamless user experience, featuring no page reloads, infinite scroll, filtered views, real-time updates, and a search UI builder. With 100% client-side rendering, Dejavu can easily be run as a hosted app on github pages or as a docker image.

Starting v1.0, dejavu is the only Elasticsearch web UI that supports importing data via JSON and CSV files, as well as defining field mappings from the GUI.

Starting with v1.5, we support the ability of creating custom headers so you can easily pass different authentication headers, provide enhanced filtering and bulk updating of data via Elasticsearch's Query DSL.

Starting with v2.0, we support the ability to build faceted search UIs to test relevancy. You can also export the generated code to a codesandbox.

Starting with v3.0, we support the ability to connect to multiple indexes. You can also globally search across your indexes using global search bar.

2. Features

Easily Connect and Remember Indices

Connect to an Index

Dejavu allows you to connect to any index present in your cluster and caches each connected index locally, making them easily accessible when browsing again.

Visual Filters

Filter Views

Sort through data, find information visually, hide irrelevant data, and make sense of everything using the native data types. The global search bar allows you to perform text searches across your dataset.

Additionally, any filtered view can be exported as a JSON or CSV file.

Modern UI Elements

Pagination

It's not uncommon to have thousands of documents in your index. Dejavu supports a paginated view that also allows you to change the page size.

Dejavu also supports browsing data from multiple indexes and types, updating data either individually or via queries in bulk. Deletions are also supported.

Import JSON or CSV Data

Import JSON or CSV files

The importer view allows you to import CSV or JSON data directly into Elasticsearch through a guided data mapping configuration.

Build Search UIs

Build search UIs

With Search Preview, you can now build visual search UIs, test search relevancy, and export code to CodeSandbox.


3. Comparison with other data browsers

Features dejavu ES-head ES-kopf ES-browser Kibana
Installation Docker image, Hosted app Elasticsearch plugin, static page Elasticsearch plugin, static page Elasticsearch plugin (doesn't work with 2.0+) Elasticsearch plugin
Modern UI React 16.6. jQuery 1.6.1, slightly stodgy Angular 1.x ExtJs, a bit stodgy Node.JS, Hapi, Jade
Browser features CRUD, data filters Read data, full-text search Data view for a single type Read view, visualizations, charting
Data import/export ✔️ JSON, CSV Only export, no CSV
Search preview Visually build and test search UI
License MIT Apache 2.0 MIT Apache 2.0 Apache 2.0

4. Roadmap

Here's a rough roadmap of things to come in the version 1.0.0 release.

🎆 We just hit the 1.0.0 roadmap:

  • Battle-testing with different datasets
  • Feature support for advanced filtering Offline detection and reconnection for realtime updates
  • Performance improvements while scrolling
  • Support for importing and exporting data
  • Support for a continuous query view
  • Available as a docker image

🍾 We just hit the 2.0.0 release:

  • An intuitive data editing experience in tabular mode (v/s JSON edit mode)
  • View data types from within the data browser view
  • A more streamlined import process
  • Refactor codebase to improve hackability (Migrate to React 16+, ES6 syntax)
  • Ability to build (and test) search visually

✨ We just hit the 3.0.0 release:

  • Rewrite dejavu browser for high performance when browsing large datasets
  • Add support for browsing multiple indexes
  • Powerful filtering of data with field level facet based filters and a global search
  • Built on React 16.6 and future compatible with React 17
  • A more intuitive data editing experience (in addition to the raw JSON, we now show a relevant UI field with validations)

5. Build Locally

See the contributing guidelines.


6. Get Dejavu

Docker Installation
docker run -p 1358:1358 -d appbaseio/dejavu
open http://localhost:1358/

You can also run a specific version of dejavu by specifying a tag. For example, version 3.6.0 can be used by specifying the docker run -p 1358:1358 appbaseio/dejavu:3.6.0 command.

Cross-origin resource sharing (CORS)

To make sure you enable CORS settings for your Elasticsea

readme truncated — read the full docs on github

Frequently asked questions

Is dejavu free to use?

dejavu is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does dejavu do?

A Web UI for Elasticsearch and OpenSearch: Import, browse and edit data with rich filters and query views, create reference search UIs.

What is dejavu written in?

dejavu is primarily written in JavaScript. Its source is publicly available at https://github.com/appbaseio/dejavu, and it has 8,467 GitHub stars.