Commit Graph

816 Commits

Author SHA1 Message Date
Matthew Rathbone
fbf1753f2d Merge pull request #3955 from beekeeper-studio/rc-56
Rc 56
2026-03-06 15:38:22 -06:00
Matthew Rathbone
dbe3d594a9 refactor: use nginx load balancer for Trino SSL integration tests
Replace direct Trino HTTPS configuration with nginx reverse proxy
for TLS termination, following Trino docs best practices. Add
http-server.process-forwarded=true to Trino config. Remove alpha
warning from TrinoForm.vue.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 14:33:55 -07:00
Matthew Rathbone
1c145aee61 fix: escape user-supplied values in SQL queries (buildSchemaFilter + Trino)
- buildSchemaFilter now uses escapeString() to escape single quotes in
  schema, only, and ignore filter values.
- Trino driver now wraps this.db with wrapIdentifier() in all queries
  (listSchemas, listTables, listTableColumns, buildPaginatedQuery).
- Trino listTableColumns escapes table and schema string literals.
- Added unit tests for SQL injection in buildSchemaFilter and Trino.
2026-03-06 14:33:55 -07:00
Matthew Rathbone
ab89dcaa67 fix: Trino listTables returns empty and SSL connections not supported (#3947, #3695)
- listTables(null) no longer returns []. Uses buildSchemaFilter() to
  optionally filter by schema, matching the PostgreSQL driver pattern.
- SSL/TLS connections now work. Certificate files (CA, cert, key) are
  read and passed to trino-client. When no certs are provided,
  rejectUnauthorized defaults to false (trust server cert).
- Removed server:ssl from Trino disabledFeatures so the SSL toggle
  appears in the connection form.
- URL parser now auto-enables ssl for https:// URLs.
- Added integration tests for listTables and SSL (with HTTPS-enabled
  Trino testcontainer).
- Added unit tests for SSL config propagation.
- Updated Trino connection docs (EN + ES) with SSL section.
2026-03-06 14:33:55 -07:00
Matthew Rathbone
044832008c drag drop to root now working 2026-03-04 15:11:40 -06:00
Matthew Rathbone
e487c35ffd fix: update client to handle folder_id in reorder response
- Add connectionFolderId/queryFolderId to ReorderResult interface
- Update cloud modules to apply folder_id from reorder response
- Update test mocks to include folder_id

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-02 16:21:16 -06:00
Matthew Rathbone
9a354bb866 fix: drag/drop reorder snap-back and unify local/cloud workflows
- Add dedicated reorder API endpoint that returns all affected siblings
- Fix position collisions by updating all sibling positions from API response
- Unify local and cloud workspace reorder actions with same interface
- Fix local workspace bug where unsorted state caused incorrect positions
- Add pendingSaveIds tracking to prevent poll from overwriting optimistic updates
- Add comprehensive unit tests for reorder scenarios

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-02 15:58:06 -06:00
Matthew Rathbone
c261ae28f5 more fixes for drag drop and some tests 2026-03-02 13:34:15 -06:00
Matthew Rathbone
6eb81b8583 fix: moving a connection/query between folders now persists correctly
TypeORM @ManyToOne relation fields were initialized to null (= null),
making them own properties that cls.merge() copied into every transport.
On the next save, TypeORM treated the explicit null relation as "unset
this FK", resetting connectionFolderId/queryFolderId in-memory even
though the SQL write was correct.

Fix: remove = null initializers from all @ManyToOne relation fields so
they are not own properties when unloaded. TypeORM then uses the
explicit FK column value exclusively.

Also moves foldersWithConnections from ConnectionSidebar into the
connectionFolders store module as a parameterized getter, and adds a
moveToFolder action to both local and cloud connection folder modules.

Adds tests for the appdb save handler and the store module.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 11:18:06 -06:00
Matthew Rathbone
e4e6149b33 test: add @BeforeRemove guards and unit tests for folder models
Add entity-level deletion guards to QueryFolder and ConnectionFolder:
if a folder still has queries/connections, .remove() throws a
descriptive error before touching the database. This mirrors the
cloud API behaviour where non-empty folders cannot be deleted.

Unit tests (18 total, 9 per model) cover:
- Basic save/retrieve
- Deletion blocked when folder contains items (checks error message,
  count wording, singular vs plural)
- Deletion succeeds when folder is empty
- Deletion succeeds after items are moved out (items survive)
- Parent folder relationship is persisted correctly
- Deleting a parent folder (no direct items) succeeds and sets
  child folder parentId to NULL via DB-level SET NULL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 13:20:19 -06:00
Day Matchullis
bcca1a6dd9 Merge pull request #3864 from beekeeper-studio/feat/keyboard-shortcuts-modal
Keyboard shortcuts modal
2026-02-18 15:18:01 -07:00
Day Matchullis
e4a128bf53 Merge pull request #3425 from beekeeper-studio/fix/clickhouse-export-query
Fix clickhouse query export
2026-02-18 12:43:38 -07:00
Matthew Rathbone
4f1ef507e8 Merge pull request #3884 from beekeeper-studio/fix/surreal-tests
fix surrealdb tests
2026-02-18 10:25:53 -06:00
Day Matchullis
34073dd63f Merge branch 'rc-56' into feat/bundled-plugins 2026-02-17 12:04:20 -07:00
Day Matchullis
00195d402d fix surrealdb tests
Will need to look into what changed in v3 :(
2026-02-17 11:44:18 -07:00
Mohammad Azmi
6029749649 move config metadata tests to a separate file 2026-02-17 18:17:42 +07:00
Mohammad Azmi
fde987f77c refactor 2026-02-17 17:44:14 +07:00
Day Matchullis
7900cf42ed fix tests 2026-02-16 23:42:45 -07:00
Day Matchullis
7da80633ac Merge branch 'master' into fix/clickhouse-export-query 2026-02-16 19:30:36 -07:00
Mohammad Azmi
14685c1fb5 Merge branch 'master' into feat/keyboard-shortcuts-modal 2026-02-16 19:05:01 +07:00
Mohammad Azmi
1dac9256b3 fix initialization error 2026-02-14 19:03:07 +07:00
Mohammad Azmi
e2581d43e2 move bundled plugin installer tests to its own file 2026-02-14 18:57:31 +07:00
Mohammad Azmi
6becd01b61 Merge pull request #3874 from beekeeper-studio/feat/community-plugins
Basic support for community-plugins.json
2026-02-13 23:16:08 +07:00
Mohammad Azmi
935ae86151 use vuex to store plugins data in front end 2026-02-13 17:07:42 +07:00
Mohammad Azmi
f794f79e42 Support community-plugins.json 2026-02-12 23:06:32 +07:00
Mohammad Azmi
c31c5d5691 create module system for plugin system (inspired by Tabulator) 2026-02-12 20:30:58 +07:00
Mohammad Azmi
d044353727 move constants to globals 2026-02-12 20:02:08 +07:00
Mohammad Azmi
c5c4d5bde2 feat: use plugins as npm dependencies 2026-02-12 19:28:14 +07:00
Mohammad Azmi
fa1081da2b fix config type generator hook 2026-02-11 18:09:23 +07:00
Mohammad Azmi
73a7462d3a fix test 2026-02-10 22:47:57 +07:00
Mohammad Azmi
3f55227176 add keyboard shortcuts modal 2026-02-10 22:40:28 +07:00
Day Matchullis
490406df2d skip some tests on cockroach because it decided to be special 2025-12-02 14:02:30 -07:00
Day Matchullis
3a08a65119 Merge branch 'master' into feat/manual-commit-mode 2025-12-01 16:07:25 -07:00
Mohammad Azmi
06f302cb27 fix plugin test again 2025-11-29 21:55:54 +07:00
Mohammad Azmi
edf8c2fb35 Merge branch 'master' into feat/get-table-keys-incoming 2025-11-28 22:06:16 +07:00
Day Matchullis
4eb0158754 merge master into feat/manual-commit-mode 2025-11-27 19:54:17 -07:00
Day Matchullis
e07b216b7b Merge branch 'master' into ioredis-to-node-redis 2025-11-26 15:03:37 -07:00
Mohammad Azmi
6b4ab7281f Merge branch 'master' into feat/get-table-keys-incoming 2025-11-26 20:46:17 +07:00
Mohammad Azmi
8436af3973 fix webPluginManager tests 2025-11-26 16:24:37 +07:00
Day Matchullis
6227580b94 merge main into ioredis-to-node-redis 2025-11-24 17:15:08 -07:00
Day Matchullis
ffd3a30d5b Merge branch 'master' into feature/ilike-to-filters 2025-11-24 17:04:04 -07:00
Day Matchullis
25f0c551db Merge pull request #3660 from beekeeper-studio/feature/record-count-on-filter 2025-11-24 17:01:09 -07:00
Day Matchullis
cb8ebb52db Merge branch 'rc-54' 2025-11-24 11:58:58 -07:00
Andrew Pavlov
2e3f92c37e fix: change shape for zset values, deduce types when inserting new keys, fix insert/update execution order, update tests 2025-11-23 21:49:55 +03:00
Mohammad Azmi
c5233f3579 refactor 2025-11-17 20:25:17 +07:00
Mohammad Azmi
e4644f26d6 test front end plugin manager and fix getTables and getColumns 2025-11-17 20:18:05 +07:00
Will Montgomery
907ad8ce0f test: 💍 fix test for firebird 2025-11-16 14:08:37 -05:00
Will Montgomery
d54eeaad8e test: 💍 update ilike test
only run for DBs that support ilike and make ids strings at all times
(better to equal there)
2025-11-16 13:53:13 -05:00
Will Montgomery
51e1485fa6 test: 💍 add tests for ilike support 2025-11-16 13:37:38 -05:00
Will Montgomery
7e45cb1409 test: 💍 fix up firebird tests 2025-11-16 12:33:42 -05:00