- Add GaussDB/openGauss support via ODBC (resolves#106)
- Use pg_catalog queries instead of information_schema for compatibility
- Share ODBC environment across drivers with auto ODBCSYSINI detection
- Fix ODBC error message false positive on "Driver" keyword match
- Merge connection dialog categories into a single flat list
- Remove duplicate DDL button from data grid footer
Connect to DM8 databases using the odbc-api crate with unixODBC.
Includes schema browsing, query execution, DDL generation,
and full frontend integration with download link to DM ODBC driver.
Use `marked` library to parse LLM output so bold, headings, lists and
other markdown syntax render properly instead of showing raw symbols.
Also fix missing oxfmt darwin-arm64 native binding.
Add create, drop, empty, truncate, and duplicate structure operations
to the sidebar table right-click menu. Also extends the table structure
editor to support create mode from the database/schema context menu.
Add a third transfer mode that inserts new rows and updates existing
rows based on primary key, supporting PostgreSQL, MySQL, SQLite,
SQL Server, Oracle, and DuckDB with database-specific upsert syntax.
Also fixes DuckDB primary key detection in transfer operations.
Move the column type annotation from inline display (#type) to a hover
tooltip on the header cell. The tooltip shows the column type with color
and comment (if present), matching the tab tooltip style.
Add i16 to the type fallback chain in pg_value_to_json. The sqlx driver
requires INT2 to be decoded as i16 specifically; the existing i64/i32
attempts silently failed, causing smallint values to fall through to null.
MySQL BOOLEAN is an alias for TINYINT(1). The sqlx driver reports it as
BOOLEAN type, causing values to display as true/false. Read the value as
i8 first to show the actual integer value.
Add a browse button next to the file path input for SQLite and DuckDB
connections, allowing users to select database files via system dialog
instead of manually typing paths. Clear the default host value when
switching to file-based database types.
Add schema selector to the editor toolbar for schema-aware databases
(PostgreSQL, SQL Server, Oracle). When a schema is selected, the backend
sets the appropriate search_path before executing queries so users no
longer need to write schema-qualified table names.
Detect closed Oracle connections in get_or_create_pool and
automatically reconnect instead of failing all subsequent operations.
Add debug/error logging to Oracle driver for easier troubleshooting.
Switch oracle-rs to t8y2/oracle-rs fork with SYSDBA support.
Add sysdba field to ConnectionConfig and a checkbox in the
Oracle connection dialog to enable connecting as SYS with
SYSDBA privileges.
Use try_get_raw + as_bytes fallback for types that sqlx cannot decode
via standard type mappings (e.g. PostGIS geometry, citext, ltree).
UTF-8 decodable values display as text; binary values display as hex.
Closes#108
- Replace VitePress with Fumadocs + Next.js for documentation site
- Configure i18n (English + 简体中文) with language switcher
- Migrate all 17 guide documents to MDX format with updated content
- Add ocean theme, GitHub/Discord/QQ social links
- Update GitHub Actions workflow for Next.js static export
- Update .gitignore for .next, out, .source directories
- Restructure features into categorized sections
- Add new 2x2 screenshot grid (light, dark, ER diagram, data grid)
- Add Docker self-hosted section
- Add Elasticsearch to supported databases
- Add missing features (schema diff, explain plan, field lineage, etc.)
- Switch license from MIT to AGPL-3.0
- Update macOS install note (now code-signed and notarized)
Split the single docker job into a matrix (amd64/arm64) that builds in
parallel, then merge via docker-manifest job. Also restructure the
Dockerfile to pre-compile dependencies with dummy sources so the dep
layer is cached by GHA when only application code changes.
- First-time visitors see a password setup page instead of open access
- Password persisted to SQLite (env var DBX_PASSWORD takes priority)
- Add change password in settings dialog (Security tab, web only)
- Split settings dialog into Editor and Security tabs
- Argon2 hashing for all password storage
- Switch sqlx, reqwest, tiberius from native-tls to rustls to eliminate
OpenSSL dependency, enabling clean cross-compilation
- Use cargo-zigbuild to cross-compile dbx-web for both amd64 and arm64
natively without QEMU emulation for Rust compilation
- Frontend and backend stages use --platform=$BUILDPLATFORM to avoid
emulation during build
- Remove libssl3 from runtime image (no longer needed with rustls)
- Run docker build in parallel with platform builds instead of sequentially
- Publish release as pre-release instead of full release for manual verification
- Integrate brew/scoop package publishing into release workflow
- Keep publish-packages.yml with workflow_dispatch only for manual re-runs