Changelog
August 24, 2026 · View on GitHub
[0.1.6] — 2026-08-24
Fixed
ORDER BYclauses in PartiQLSELECTstatements no longer fail withValidationException: Must have WHERE clause in the statement when using ORDER BY clause.DynamoDB'sExecuteStatementonly acceptsORDER BYwhen aWHEREpins the partition key and the ordered column is the sort key, so any other form (e.g. sorting a table without a sort key, or ordering by a non-key column — exactly what the GUI emits when a column header is clicked) was rejected outright. The clause is now detected, stripped from the statement, and re-applied client-side over a bounded paged read of the result set (ORDER BY ... LIMIT nchains correctly:LIMITis stripped first, thenORDER BY). A 1000-row cap keeps the client-side sort bounded; when the cap is hit a warning is returned explaining how to get server-side ordering instead.- Filtered browses with a LIMIT no longer fail with
ValidationException: Statement wasn't well formed, can't be processed: Expected RIGHT_PAREN. The GUI wraps such browses in a derived table —SELECT * FROM (<base> <where> <order_by> <limit>) AS limited_subset— which DynamoDB PartiQL does not support. The wrapper is now unwrapped before the LIMIT/ORDER BY strippers run, so they operate on the inner statement instead of slicing into the subquery and dropping its closing paren. A wrapper is only unwrapped when it is a single derived table with nothing else at the top level (a following JOIN or outer WHERE is left untouched).
[0.1.5] — 2026-08-07
Added
- Official Amazon DynamoDB brand icon (SVG) added to the plugin repository
and referenced via the
iconfield in.tabularium, following the same pattern as the DuckDB plugin.
[0.1.4] — 2026-08-06
Fixed
normalized_paramsbuilthttp://host:443for AWS endpoints, which fail at the transport level (DynamoDB endpoints only speak TLS). HTTPS is now used when the port is 443 or the host ends with.amazonaws.com.normalized_paramsdefaulted the signing region tous-east-1even when the endpoint was another region's AWS endpoint, so every request failed withInvalidSignatureException. The signing region is now resolved in order: explicitregionparam,extra["region"]connection field, region parsed from an AWS endpoint hostname (dynamodb.us-west-2.amazonaws.com→us-west-2), the plugin-level default-region setting, and only thenus-east-1. Together these restore connecting to real AWS DynamoDB via the generic GUI connection form (host/port/username/password).
Added
- Plugin-level Default AWS region setting (Settings → Plugins →
DynamoDB), declared in
.tabulariumand delivered via theinitializeRPC. Used when a connection supplies neither an explicit region nor an AWS endpoint hostname to parse one from. ConnectionParamsnow parses the opaqueextra: HashMap<String, String>connection fields the host persists and forwards to drivers unchanged.extra["region"]acts as the per-connection signing region when no explicitregionparam is present — once the host ships the generic connection-UI support (TabularisDB/tabularis#596), a region selector lives entirely in this plugin instead of the core app.
[0.1.3] — 2026-08-04
Fixed
execute_queryresponses now include a completepaginationobject with thepage,page_size,total_rowsandhas_morefields the Tabularis app'sPaginationstruct requires. Previously onlynext_tokenwas sent, and the app rejected every query response with "missing fieldpage". The page number is read from the request'spageparam (default 1) andpage_sizefromlimit(falling back to the returned row count).get_tablesno longer issues DescribeTable calls serially. On AWS accounts with hundreds of tables the serial loop took over a minute (~300ms per table), exceeding the GUI's connection timeout and failing the initial connection. Describes now run with bounded concurrency (16 in flight) and results are re-sorted alphabetically to preserve ListTables ordering.
[0.1.2] — 2026-08-03
Changed
- Bumped
base64from 0.22.1 to 0.23.0.
Fixed
manifest.jsonupdated to satisfy the Tabularium driver-kind contract.
[0.1.1] — 2026-08-02
Added
- Migrated to the
.tabulariummanifest for the Tabularium registry.
Fixed
get_indexesnow returns one row per indexed column to match the GUI contract.
[0.1.0] — 2026-07-22
Added
- Initial plugin scaffold with Rust project structure
- JSON-RPC 2.0 over stdio transport with async worker pool (4 workers, bounded queue)
- AWS DynamoDB client wrapper with connection pool caching (30-min TTL)
- AWS credential resolution: explicit keys, profile, environment variables, IMDS
- Endpoint override for DynamoDB Local testing
- RPC method dispatch:
initialize,ping,test_connection - Metadata handlers:
get_tables,get_columns,get_indexes,get_foreign_keys - Query execution via PartiQL (
execute_query) with 4 query modes:#!partiql,#!scan,#!query,#!get - CRUD handlers:
insert_record,update_record,delete_record(via PartiQL) - DDL handlers:
get_create_table_sql,get_add_column_sql,get_alter_column_sql,get_create_index_sql,drop_index manifest.jsonwith DynamoDB-specific data types and capabilities- Local REPL (
cargo run --bin test_plugin) for testing RPC handlers - 78 unit tests covering all modules
- GitHub Actions release workflow (cross-platform builds)
justfilewith development recipes
Changed
- Rename plugin binary and release assets from
tabularis-dynamodb-plugintodynamodb-pluginto match the org-wide plugin naming convention (e.g.elasticsearch-plugin).Cargo.tomlpackage/[[bin]]name,manifest.jsonexecutable, and the release archive names are updated accordingly. manifest.jsonnow references the plugin manifest$schemaand uses the standard capability key set (folder_based,no_connection_required,alter_column,create_foreign_keys).- Release workflow gains a forward-compatible UI-extension build step (no-op
until a
ui/folder is added) and shipsdynamodb-plugin-<platform>.zipartifacts. justfiledev-install/uninstallare split per OS (linux/macos/windows), fixing the macOS plugin directory path, andbuild/releasenow chain abuild-uipassthrough.
Added
LICENSEfile (Apache-2.0, matching the license already declared inCargo.toml).CODEOWNERS,.editorconfig, and Dependabot config (cargo + GitHub Actions, weekly).- Expanded
.gitignorewith IDE and build directories.