Skip to content

[pull] main from danvergara:main#19

Open
pull[bot] wants to merge 52 commits into
Mu-L:mainfrom
danvergara:main
Open

[pull] main from danvergara:main#19
pull[bot] wants to merge 52 commits into
Mu-L:mainfrom
danvergara:main

Conversation

@pull

@pull pull Bot commented Jun 13, 2025

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

* build(gomod): install clipboard

* feat(tui): add the ability to copy the content of a cell by pressing enter key

* feat(tui): scroll back to the the beginning the cell selected when a table is selected

* feat(tui): set focus to the content view after a successful query

* feat(tui): fix table header visible after scrolling

* docs(readme): add guidelines on how to copy content from table cell
@pull pull Bot added ⤵️ pull merge-conflict Resolve conflicts manually labels Jun 13, 2025
danvergara and others added 26 commits October 8, 2025 13:00
* build(gomod): bump the golang version to 1.25.2

* build(dockerfile): bump the golang version to 1.25

* ci(github-actions): update actions to latest release

* ci(github-actions): update ci actions on the docs config file

* ci(github): bump linter binary version to support go 1.25

* ci(github): fix some errors in ci config

* ci(github): fix yaml format on golang versions
* build(gomod): install testcontainers library and modules to run containers at will

* test(client): refactor the client test suite to use testify's suite pkg and testcontainers to run containers at will without depending on docker compose

* build(makefile): unify the test command to run the integration tests with the test target without docker compose

* ci(actions): refactor the CI file to run the integration tests using test container without the external container services

* build(scripts): remove the test_all.sh script

* docs(contributing): update the CONTRIBUTING guidelines based on these changes

* ci(actions): fix the db user for posgres

* style(client): fix a typo

* build(makefile): make db user a parameter
* feat(cmd): add a new flag

* feat(config): add a function to read the keybindings values from the config values

* test(config): add a new test function to validate the SetupKeybindings function

* feat(root): set the keybindings value if the flag is set

* build(make): add a k flag to the run command for testing purposes

* docs(readme): update the documentation

* docs(tui): update the outdated help string
* feat(oracle): add the ability to switch to other schemas

* feat(client): fix the queries to query against ALL* tables

* fix(client): fix set search_path query for postgres

* feat(client): add a way to handle the schema in the client side for the oracle databases

* feat(oracle): add a way to build queries based on if the schema flag is present or not

* docs(config): fix a typo in the example config file

* docs(readme): update the readme file to include the use of the schema for the oracle databases

* refactor(client): refactor the oracle client to remove the else statements

* docs(docs): update the documents in the docs directory
* fix(config): add missing fig struct tags

* test(config): add missing ssh test assertions

* docs: update docs to show example of the new fixes
Co-authored-by: karthickkannans <k.kannan_krossark@heru.net>
* docs(mkdocs): add a logo to the docs site

* docs(mkdocs): update docs to catch up with the latest changes
* fix(tui): fix panic index out of range (#289)

* fix: typo in Makefile
* bump to Go 1.26

* bump golangci-lint to 2.10
* update bubbletea dependencies

* initial model

* more boilerplate

* add more boilerplate

* basic UI setup

* setup refactor

* almost the basic dlab experience

* refactor(bubbletui): refactor the dimension variables to keeep the View method clean

* fix model dimensions

* style(bubbletui): remove unused variables

* feature parity with tview

* add some doc comments

* remove tview and the tui package

* minor tweaks

* keybindings

* update the README

* update screenshots

* fix tree overflow

* add got to top-down to the tree

* add go to top/down navigation to the table list

* fix undesire quit from the list

* remove validation on database from the config connection

* center logo and reduce the size of the title box

* use bubbles table rather than the go-pretty one

* update screenshots with the native table

* fix a static check error indicating how to copy an slice to another
* update navigation docus

* update usage
* migrate to treeview

* fix error not checked errors

* omit type at sideViewContent declaration

* add icons

* update tree image

* remove a comment
* fix table cell size by storing the max width from rows

* remove redundant conditional

* change focus to the resulset view after successful queries

* fix footer height calculation

* fix node id collision by providing a guaranteed-unique id

* add node id formatting

* set the first database as the default one in the graph
* chore: add a file to dump messages for debugging using spew

* add a new make command to connect to the pagila database for testing
#300)

* feat: add keybindings to navigate all the way to end or the beginning of the current line on the viewport

* docs: add the $ and 0 keybinginds to the dos

* docs: add key bindings to the docs

* fix fig tags

* add test to validate new key bindings
* refactor(bubbletui): refactor the app model into different components

* route query success msg to the sidebar

* remove the old model

* move the helper functions where they belong
danvergara and others added 24 commits April 14, 2026 19:38
* rename the keybindings variable

* add keys to the config for the editor

* add key handling to the editor

* add key bindings to the config files

* add more key bindings to the editor

* update the readme file to remove the old tcell reference

* deprecate the original execute query key binding

* update the readme file based on the new key bindings

* update the website documentation

* add dump files

* remove obvious comments

* remove another obvious comment
* record demo gif with vhs

* update the tape output
* refactor(client): add a way to return the database hierarchy from the db client

* add db node data to build the tree on the ui

* more progress

* wip refactor: preload database graph

* first working graph with postgres

* correct behavior of the new graph making the schema optional

* test(client): fix the test by passing the schemas since the tests run against a postgres container

* chore: improve automation

* fix(bubbletui): fix the sidebar height limit

* feat(client): implement the catalog method across the board

* style: fix linter errors

* test(client): fix the query for mysql on CI

* docs(docs): update docs and readme to support the new changes on the db name and schema flags

* fix: remove the width constraint on the style wrapping the tree

* chore(docs): update screenshots
* chore(bubbletui): upgrade to bubbletea v2

* fixes based on new sizes calculations

* chore(git): add the sidebar debug file to the gitignore

* fix(bubbletui): fix the title overflow

* calculate the available height for  the side viewport based on the actual height of the app title
* feat(bubbletui): refresh the catalog when a ddl query is executed

* refactor(sidebar): remove the expand all method call

* refactor(bubbletui): add an error message on the resultset view whenever the catalog loading fails
* feat(client): add fetch views methods to postgres and oracle

* feat(bubbletui): add emoji for view

* chore(client): call the fetchViews method

* feat(client): add schema handling to the sql server

* add full support for views listing and defintions across all database integrations

* chore(makefile): add make target commands to run dblab agains test databases

* docs(client): add doc comments
* chore(gomod): install deps

* refactor: refactor keymaps handling

* add profiles package

* chore: add example config file

* feat: add save-as feature flag that enables the user to store the database connection profile and the password in the os keyring

* feat: add a connect command to spin up a form to display the profiles

* feat(connect): make the form show the connection options and connect to the database

* chore(makefile): add connect target to the makefile

 On branch add-keyring

* feat(profiles): add the ability to remove profiles

* feat(connect): full implementation of the connect form using bubbles list

* feat: add ssh password handling in the os keyring

* docs(connect): add doc comments to the connect model

* chore(connect): improve the help menu

* style(profiles): rename a err variable

* remove example file

* docs: update docs on how to use the keyring feature

* chore: add assets

* style: fix a doc comment
* run go fix to modernize the codebase

* fix lint error
* feat(client): add method to run multiple queries concurrently

* feat(bubbletui): run the concurrent query method asynchronously as tea.Cmd

* feat(editor): split the queries by ; from the editor and pass to the executeQueryMsg message

* feat(resultset): show the queries and potential errors in the resulset

* style(bubbletui): remove unused variables

* docs: add doc comments

* test(client): add test to validate asyncquery

* docs: update the documentation with the multi queries feature

* docs: add screenshots to the documentation

* fix(bubbletuie): clears cancelQuery whenever a query result comes back

* docs: update the docs to let the user know ctrl+c always quits the app
* Fix query to show table definition and placeholder for view definition
* feat(bubbletui): add the query history model

* some fixes

* feat: full functionality complete

* chore(bubbletui): revert the loaded query history to show it in descending order based on the timestamp

* docs(history): add doc comments

* feat(editor): add ctrl+d keybinding to clear the editor

* test(history): add test to validate the history package content

* feat(editore): add vertical motions inside the editor for normal mode

* fix(history): format test file

* docs: update the readme file and the docs website

* refactor(client): call ExecContext for data manipulation queries

* feat(bubbletui): show execution time and rows affected

* docs: update screenshots
* feat(cmd): add a readonly bool flag to enable the read-only connection feature

* feat(connection): add a ReadOnly field to the Options struct

* feat(client): add a readOnly bool flag to enable the read only mode and execute queries that force the connection to enter into read only mode

* feat(connection): handler sql server differently by adding a parameter to the connection string (dsn)

* test(client): add a test case to validate the the read-only in the client

* add support for read-only mode in the config file

* docs: update doc files with the read-only feature

* test(client): fix the client test to validate the read only query
* Feat: Execute query at cursor only

* Fix tests

* refactor(editor): make the queryAtCursor function returns the line the cursor is on

* fix(editor): check if the query is empty

---------

Co-authored-by: Daniel Omar Vergara Pérez <daniel.omar.vergara@gmail.com>
* add help and quit keys

* add help modal to show keys

* feat(config): make quit and help configurable
* Feat: status bar

* Fix comment

* Add keys and description from key bindings

* Fix: attending code review

* fix(bubbletui): fix status bar height calculation

* fix(status_bar): remove the break line

---------

Co-authored-by: Daniel Omar Vergara Pérez <daniel.omar.vergara@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants