Giter Site home page Giter Site logo

geek-fun / dockit Goto Github PK

View Code? Open in Web Editor NEW
103.0 1.0 1.0 3.24 MB

DocKit | GUI clients for elasticsearch, opensearch and etc

Home Page: https://dockit.geekfun.club/

License: Apache License 2.0

JavaScript 0.14% HTML 0.26% Vue 49.19% TypeScript 49.05% SCSS 0.50% Shell 0.86%
elasticsearch-client elasticsearch-gui electron elesticache opensearch opensearch-dashboards elasticsearch-dashboards kibana

dockit's People

Contributors

blankll avatar visionview avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dockit's Issues

enpower AI capability

devs who use Elasticsearch/OpenSearch are all pain for complex DSL queries, but to meet the complex business requirement, there is no choice but to Google, memorize, and even write down the query snippets in notes. and fall into forget nfinite loops eventually.

but with the power of AIGC, gpts will help you to memorize all of that, what you need to do is just describe the requirement in natural language, that's it!!!

import/export

user can export db data as a backup
user can import backup data to restore db

remove connection

remove the connection when the user clicks the remove

DoD:

  1. a dialog show popup to let user double confirm they want to delete the connection, display the connection name
  2. once user click confirm, the connection should delete

[feature] Keyboard shortcuts

Hi,

Playing with Dockit.
The UI is pretty neat!
I found it really useful to get a bunch of connections and being able to switch between them.
๐Ÿ‘ โญ

Do you plan to implement keyboard shortcuts?

There are the one of Kibana, like ctrl+enter that fire the underline request, which should be very common for instance.

image

multiple files support

  • move editor to files section
  • user need to select location at first time create a file
  • can change location at the list bottom with a drop down select
  • can open the file in multiple tabs
  • can close the the response editor
  • [ ]

implement modify connection ui

Context:

DoD:

  1. when click the 3 dot, show remove(text with red color) and modify text with primary color
  2. when clicking the modify, a form modal should popup like when we click the new connection
  3. connection info should fill in related input column and editable

Image

configuration for AIGC

allow user to config their own openai api token, prompts in the configuration page

  • Add an AI section in the configure panel
  • Able to configure the openai key and store it locally
  • The key data need to be encrypted before store to the host
  • user can update the key as well

version update dialog

dockit should prompt a dialog notice user to update to the latest version if there is any new version available

improve connection list ui

DoD:

  1. show a green ElasticSearch icon when the connection is established(hard code to mock the behavior)
  2. show a red ElasticSearch icon when the connection is not established(hard code to mock the behavior)
  3. when selecting (single click) the connection item show 3 dot options as bellow

Image

Seo improve

Context

DocKit is not searchable in search engines like Google, Bing, and Baidu,

Definition of Done

  • When the user searches Dockit, ElasticSearch GUI clients, and OpenSearch GUI clients, the DocKit can appear in the top 10 of the result

integrate OpenAI

  • dockit should able to send requests to openai endpoint and receive the response
  • the response should shown in ai assistant message list

config AI section to configure api key

  • Add an AI section in the configure panel
  • Able to configure the openai key and store it locally
  • The key data need to be encrypted before store to the host
  • user can update the key as well

Dashbaord

Conflicts with connection landing page

once user connect to a server, it should show a dashboard, list metrics, indices, shared, allocations etcs

ui improvement

  • update gutter logo like: Image
    old placeholder: Image cc: @VisionView
  • replace File section to code like: Image
  • improve green tick mark: Image

feature: relaxed json support (json5)

Hi,

In Kibana Devtools, it is very annoying to "fix" you data to be json, adding double quotes and comma, but not too much comma else there is a syntax error.

image

This feature idea is to use a relaxed json option, for example, using json5 in the editor and converting the json5 to json before sending to Elastic. This would allow a syntax that is way more fast to type, and so convenient.

Today, DocKit seems to run the relaxed json (without syntax highlighting), but the result fails ES side.

image

fix _bulk action

the bellow dsql should execute without any issue

// Bulk API
POST _bulk
{"index": {"_index": "dockit_sample_index", "_id": "1"}}
{"name": "Document 1"}
{"delete": {"_index": "dockit_sample_index", "_id": "2"}}

dockit chat UI

user able to trigger a dockit chat panel like GitHub copilot chat, and interact with configured ai model

AC:

  • tool box column in right side created
  • toggle dockit chat box by clicking the logo
  • send message box
  • send button and click send button the message will send out
  • received message are shown in scrollable box with will formated display

query history

user able to view the query history and copy & paste the query DSQL
user can execute the query history directly to the current selected db and index
user can add the history to the editor

QDSL code interpreter for monaco editor

to enable openai automatic analysis and provide code suggestions
AC:

  • support openai to auto-suggestion/complete when the user writing the query DSL
  • user applies the suggestions by entering tab

setup monaco-editor

tasks:

Operation Description Command Curl Command Sample Status
Indexing Documents Adds or updates a JSON document in an index. POST_QDSL bash curl -X POST "http://localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d '{"name": "Elasticsearch", "category": "Search Engine"}'
Searching Performs a search query on one or more indices. POST_QDSL bash curl -X GET "http://localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d '{"query": {"match": {"name": "Elasticsearch"}}}'
Count Returns the number of documents that match a query. POST_QDSL bash curl -X GET "http://localhost:9200/my_index/_count" -H 'Content-Type: application/json' -d '{"query": {"term": {"category.keyword": "Search Engine"}}}'
Get Document Retrieves a document by its index, type, and ID. GET_QDSL bash curl -X GET "http://localhost:9200/my_index/_doc/1"
Update Document Updates a document without fetching it first. POST_QDSL bash curl -X POST "http://localhost:9200/my_index/_update/1" -H 'Content-Type: application/json' -d '{"doc": {"category": "Search Engine"}}'
Delete Document Deletes a document by its index, type, and ID. DELETE_QDSL bash curl -X DELETE "http://localhost:9200/my_index/_doc/1"
Create Index Creates an index. PUT_QDSL bash curl -X PUT "http://localhost:9200/my_index"
Delete Index Deletes an index. DELETE_QDSL bash curl -X DELETE "http://localhost:9200/my_index"
Bulk API Performs multiple index, create, update, or delete operations in a single request. POST_QDSL bash curl -X POST "http://localhost:9200/_bulk" -H 'Content-Type: application/json' -d '{"index": {"_index": "my_index", "_id": "1"}}\n{"name": "Document 1"}\n{"delete": {"_index": "my_index", "_id": "2"}}'
Put Mapping Defines a mapping for a type. PUT_QDSL bash curl -X PUT "http://localhost:9200/my_index/_mapping" -H 'Content-Type: application/json' -d '{"properties": {"name": {"type": "text"}}}'
Get Mapping Retrieves the mapping definition of an index. GET_QDSL bash curl -X GET "http://localhost:9200/my_index/_mapping"
Aliases Manages index aliases. POST_QDSL bash curl -X POST "http://localhost:9200/_aliases" -H 'Content-Type: application/json' -d '{"actions": [{"add": {"index": "my_index", "alias": "alias_name"}}]}'
Cluster Health Provides information about the cluster health. GET_QDSL bash curl -X GET "http://localhost:9200/_cluster/health"
Cluster State Returns the cluster state. GET_QDSL bash curl -X GET "http://localhost:9200/_cluster/state"
Nodes Info Provides information about nodes in the cluster. GET_QDSL bash curl -X GET "http://localhost:9200/_nodes/info"
  • GET_QDSL
  • PUT_QDSL
  • POST_QDSL
  • DELETE_QDSL

bug: download button on website is broken

Hi,

On DocKit website, the download button is not working.
I think the error comes from:

TypeError: navigator.userAgentData is undefined
    n https://dockit.geekfun.club/assets/chunks/theme.lK2rZp0k.js:1
    Ge https://dockit.geekfun.club/assets/chunks/framework.PNMSvVW_.js:1
    Se https://dockit.geekfun.club/assets/chunks/framework.PNMSvVW_.js:1
    n https://dockit.geekfun.club/assets/chunks/framework.PNMSvVW_.js:1

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.