GithubHelp home page GithubHelp logo

geek-fun / dockit Goto Github PK

View Code? Open in Web Editor NEW
268.0 5.0 9.0 4.77 MB

Elasticsearch GUI client for Mac, windows and linux, Opensearch GUI client for Mac, windows and linux

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

License: Apache License 2.0

JavaScript 0.49% HTML 0.13% Vue 48.35% TypeScript 43.16% SCSS 0.27% Shell 0.71% Rust 6.89%
elasticsearch-client elasticsearch-gui elesticache opensearch opensearch-dashboards elasticsearch-dashboards kibana tauri-app tauri tauri-apps

dockit's People

Contributors

annchord avatar 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dockit's Issues

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

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

ui improvement

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

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

[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

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!!!

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

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

Manage

Add a new section Manage to include:

  • cluster
  • Nodes manage
  • Shareds manage
  • Indices manage - index & datastream
  • Index template
    - [ ] shards re-route

setup agent proxy

read from sys env to set fetch client:

  • https Proxy when HTTPS_PROXY or https_proxy is represented
  • http Proxy when HTTP_PROXY or http_proxy is represented
  • soket Proxy when ALL_PROXY or all_proxy is represented

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

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

version update dialog

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

auto completion improvement

Tasks:

  • bulk action support
  • auto-complete insider surroundings
  • fix highlighting issues
  • autocompletion for actions convert to uppercase
  • validator
  • consider to enable json5: #42
  • path highlight and autocompletion

import/export

tasks:

  • The user should able to export the selected index as JSON/CSV
  • The user should able to import the selected JSON/CSV into an index

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

failed to startup dockit AppImage

The output

❯ ./DocKit_0.4.2_amd64_73af545cfedfacaa24482232e1383ab8.AppImage

** (doc-kit:1934759): WARNING **: 18:14:34.906: webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
Cannot get default EGL display: EGL_SUCCESS
Cannot create EGL context: invalid display (last error: EGL_SUCCESS)

Related bugs I found that might help

Bug 238513: [GTK] EGLDisplay Initialization failed on Ubuntu 22.04 built without the wpe renderer

My env

local/lib32-mesa 1:24.1.3-1
    Open-source OpenGL drivers - 32-bit
local/mesa 1:24.1.3-1
    Open-source OpenGL drivers

http proxy for openai request

openai is restrict access for some locations, set HTTP proxy to allow openai to request through a proxy

  • HTTP proxy host
  • HTTP proxy port

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

前端 UI调整

  1. Adjust the right GPT style
  2. Add login registration (later add unified login registration)

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

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"}}

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
  • [ ]

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

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

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.