quickwit-oss / quickwit-oss/quickwit
support being the backend for OpenSearch Dashboards
Open
Nobody has claimed this yet.
enhancement
- Dominant language
- Rust
- Stars
- 11.7k
- Forks
- 597
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 37
Description
endpoints opensearch dashboards uses:
- GET
/_nodes=> support getting some information about cluster. Could be mocked for a MVP - GET
/_alias/<name>=> report whether an alias exists - PUT
/<name>=> create index, we need this for.kibana_1, but also foropensearch_dashboards_sample_data_logs&co (loading sample data, which is for all intent and purpose a normal index). for .kibana, it uses features we don't support (nested fields at least) - POST
/_aliases=> create an alias (from .kibana to .kibana_1 mostly) - *
/.kibana*=> these indexes will need to be handled out of the normal index flow: we need to support document update & co- GET
_doc/<doc_id>=> return doc by id - DELETE
_doc/<doc_id>=> delete doc by id - PUT
_create/<doc_id>?refresh=wait_for=> create doc with id - POST
_update/<doc_id>?refresh=wait_for&_source_includes=.*=> update existing doc - POST
_search=> normal search (on a not so normal index), some queries use nested fields :-/ - GET
_refresh=> probably a no-op (every call will be sequentially consistent) - GET
count=> return number of docs in index
- GET
- ANY
/_plugins/.*=> i hope we can mock/not implement these. osd seems fine with at least some returning 400. - POST
/_bulk=> in most case unchanged, but we need to support writing to.kibana(we may want to forbid writing in kibana and anything else) - HEAD/GET
/<name>=> verify index exists - POST
/_mget=> get multiple docs by id (only for .kibana) - GET
/_cat/templates/*=> report no template exists - GET
/_cat/plugins?*=> report no plugin exists? - GET
/_resolve/index/*=> already exists, plug .kibana indexes inside
note: all sample have geo data we don't support, we should see to fail as gracefully as possible, it would be nice for everything else to keep working
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start from the existing /_resolve/index/* handling and the normal index flow, then trace how the listed OpenSearch Dashboards endpoints are routed. Implementing this requires deciding how .kibana*, aliases, bulk operations, plugins, and unsupported geo data should behave. Done means the listed dashboard and sample-data operations work or fail gracefully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, backend, search
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100