dynobase-icon
Dynobase

Changelog

Every Dynobase release since 3.0, newest first. Dynobase updates itself; new users can download the latest version. To follow new releases, subscribe to the Atom feed.

3.0.9 · 3.0.8 · 3.0.6 · 3.0.5 · 3.0.4 · 3.0.3 · 3.0.2 · 3.0.1 · 3.0.0

3.0.9

Added

  • "Only import attributes that have a value" in the Import Wizard leaves out null and empty values instead of writing them, and hides the columns that are empty in every row of the file. A file whose rows carry every column of the table, most of them null, no longer has to be set to "exclude attribute" column by column. The choice is remembered for the next import.

Fixed

  • Profiles with role_arn and source_profile but no region of their own load again, as they did in 2.x. Since 3.0 they failed with "AWS credentials are invalid" ("Missing credentials in config") because the role could not be assumed without a region. They now assume it through us-east-1, as the AWS SDKs do.
  • After an MFA code is entered for a role profile (role_arn with mfa_serial), its tables are listed with the new session. Since 3.0.5 they were listed with the session from before the code, so a role that requires MFA was denied and the profile's region showed "AWS credentials are invalid".
  • Progress updates of a running import no longer re-measure every cell of the Import Wizard's preview. That happened several times a second, kept the window busy for the whole import and, on slower machines, left the progress counter seconds behind the actual import.

3.0.8

Added

  • Windows installers again, signed through Azure Artifact Signing. The last Windows build was 2.5.1; Windows installs update to this release.

Fixed

  • After choosing an index from "Query patterns", typing a value into the partition-key row keeps that row above the sort-key row. Before, the first keystroke moved it below the sort-key row, so the row being typed in jumped down under the cursor.
  • Editing a filter of an imported access pattern in the Single-Table Designer keeps the filter in its place instead of moving it to the end of the list.
  • "Save Changes" works after editing two cells of the same row, or after opening a row with unsaved changes in the item editor and saving it. The save checked the item against the first unsaved edit instead of the values loaded from DynamoDB, so it failed with "The write's condition was not met; the item was not changed." although nobody else had changed the item.
  • A second cell edit of a row fetched through an index that projects only some attributes keeps the first edit; before, only the attribute edited last was written.
  • Changing the key of a row with unsaved changes in the item editor replaces that row's pending write instead of leaving it queued next to the move.
  • Drop-down lists, menus and tooltips opened inside a dialog appear on top of it. Since 3.0 they opened behind the dialog, out of sight: the Profile type list in "Add new AWS Profile", the Export format, Table to export, Language and Target lists of the export, code generation and infrastructure code dialogs, the projection list of the designer's Add GSI dialog, and the tooltips of the icon buttons in bulk edit and the item editor.
  • A row marked for deletion keeps showing its values, tinted red, until the change is saved or discarded. Before, every cell except the key went blank.
  • Saved rows keep their place in the grid after Save Changes instead of moving to the bottom.
  • Toasts appear above open dialogs. One raised from a dialog, such as "Change reverted." after Undo in the History dialog, was drawn under the dialog's blurred backdrop, and its buttons could not be clicked.
  • Selected text is readable in dark mode, for example in the grid's Edit Attribute value field: the highlight is a dark brand colour instead of a pale lavender that left the white text almost invisible.
  • The item editor's JSON View opens with a plain cursor and nothing selected, so the first keystroke no longer replaces the whole item. The same goes for Format JSON, the DynamoDB JSON switch and the other code editors when Dynobase replaces their text.
  • With an empty filter, the sidebar lists the tables of the profile selected at the top of the window, and only that profile's tables, as it did in 2.x. Since 3.0 the "All profiles" switch, which is on by default, replaced that list with the first 50 tables by name across every profile, whichever profile was selected; in large accounts that meant little more than the names starting with "a". "All profiles" now applies only to what you type: the filter searches every profile and lists the selected profile's matches first.

3.0.6

Added

  • Linux installers alongside the macOS build, with update-feed checks for every released platform before a release is considered complete. Windows installers are prepared but not part of this release.

Fixed

  • Packaged windows load the app and detached item editor through Electron's file loader, including the editor query parameter.
  • Ctrl+click opens a table in a new tab on Windows and Linux; Command+click keeps that behavior on macOS.
  • Selected rows in the data grid can be seen again: they are tinted with the accent colour and marked with a bar on the left, in light and dark mode. Since 3.0 a selected row looked like any other row (in dark mode it had exactly the colour of the striped rows), so Cmd/Ctrl+click and Shift+click selection, for example before deleting several rows, seemed not to work.
  • Cmd/Ctrl+click and Shift+click on a cell select rows without opening the cell editor, and Alt+click opens only the item editor. A plain click still selects the row and edits the cell.
  • Cmd+Backspace typed in the cell editor deletes text in the editor instead of marking the selected rows for deletion.
  • The Dynobase AI notice can be dismissed without agreeing: its close button, Escape and the new "Not now" button return to the table. Before, the only way out was to accept.

3.0.5

Fixed

  • A running scan or query can be paused before its first page arrives, and unticking "Enable streaming" while one is running stops it after the current page. Before, the app kept fetching page after page in the background (and consuming read capacity) until a safety limit.
  • Sorting a column treats large or high-precision numbers as numbers, and a column mixing numbers, text, booleans and documents sorts the same way every time, with descending the exact reverse of ascending and empty cells always last.
  • Terminal mode is read only as its banner says: the cell editor no longer writes to the table and Alt+click no longer opens the item editor while the terminal is open, so a transformed row can no longer overwrite the wrong item.
  • The list of regions enabled for an account is refreshed every 30 minutes and whenever the profile is reloaded, so a region enabled after startup shows its tables without restarting Dynobase.
  • The run button says "Scan", and the scan cost estimate appears, whenever the filters will actually run as a scan, including when an index is selected but the filter rows cannot form a single query.
  • The table context menu (Truncate, Backups, Delete, Reset default query, Copy name, Generate infrastructure code) is available on right-click in the default "All profiles" table list, not only in the per-profile region tree. The "All profiles" switch is remembered across tabs and restarts.
  • Truncate empties the grid of the truncated table, not whichever tab was selected, and no longer crashes the app when the selected tab has no rows.
  • "Edit item in a new window" receives the save acknowledgement again: the window closes once the item is queued, and a rejected item shows the reason instead of the "main window did not confirm" message that led to duplicate saves.
  • Editing a cell of a row whose key was just changed keeps the deletion of the original item; before, the second edit turned the move into a plain write and left a duplicate behind. A second edit of any row now replaces its pending write instead of queueing another one, so attributes removed in the later edit stay removed.
  • Grid and item-editor saves are written only if the item still matches what was loaded; an item changed meanwhile by someone else is reported as a conflict (with the differences) instead of being overwritten.
  • Per-row Discard removes an unsaved new row instead of leaving a ghost, and restores the original row of a discarded key change.
  • Key attributes cannot be emptied, set to Null or given the wrong type from the inline cell editor; their type follows the table definition.
  • The inline cell editor starts from the cell's current value every time; a cancelled edit no longer leaves a draft (or a Null type) behind for the next edit.
  • The item editor stays open when the item is rejected (a value DynamoDB cannot store) instead of closing and losing the typed item.
  • Attributes removed in a pending edit no longer show their stored value; "Copy" copies the pending image without Dynobase's internal markers; attributes added in the editor get a column right away.
  • A licence check that fails (network, proxy, server outage) keeps the last known licence instead of showing the paywall to paying customers; server errors with a JSON body are no longer cached as the licence; certificate errors point to the settings that fix them.
  • MFA re-authentication works on every attempt for profiles without source_profile: the long-term credentials stay the master, and a wrong code no longer replaces them with a failed session.
  • The All profiles table list says how many regions have not been loaded yet (lazy loading lists only each profile's default and recently used regions) and offers to load them all, instead of reporting "no tables match" for tables that exist in other regions.
  • The inline cell editor follows the item it was opened on: if rows move while it is open (a new row above, more results streaming in, a re-sort), the edit is discarded with a notice instead of being written into whichever item now occupies that row.
  • Role_arn profiles whose source_profile is an SSO, credential_process or MFA profile no longer fail at startup as "credentials invalid": they resolve through the source's session, wait for its authentication when there is none yet, and come alive once the source authenticates. Authenticate on such a profile signs in to its SSO source.
  • Setups with only ~/.aws/config (pure SSO) get first-run profile inclusion and new-profile detection: a missing credentials file is treated as empty instead of a failed discovery.
  • A license check that fails before reaching the licensing server (for example when the machine id cannot be read) now reports that error right away instead of leaving the app waiting 30 seconds and then blaming the network.
  • Several filter rows on the same key attribute are no longer silently dropped from a query. "createdAt >= X" and "createdAt <= Y" become one BETWEEN condition; other combinations that cannot be a single query fall back to a scan carrying every filter.
  • Switching to a tab whose profile differs from the previous tab no longer pauses that tab's running scan.
  • A profile listed in both ~/.aws/credentials and ~/.aws/config keeps the keys that only the credentials file carries (role_arn, source_profile, mfa_serial), instead of losing them to the config section.
  • Clearing "Maximum number of connections per origin" no longer stores an invalid value that the field then displayed as the text "null".
  • Saving Offline settings no longer fails when the stored settings value is corrupted.
  • Space pauses the running scan or query again, unless the focus is in a text field, an editor or a dialog.
  • A fetch for a tab that was closed meanwhile no longer marks the currently selected tab as fetching forever.
  • "Reset all settings" now also clears the theme, fetching options and sidebar search, and turns automatic updates back on.
  • A corrupted stored favorite or default query no longer takes the whole app down; it is ignored with a warning.
  • Tables deleted or created from Dynobase are removed from or added to the cached table list, so the sidebar is right after a restart without listing the region again.
  • The custom certificate bundle hint now says the setting applies on the next profile reload.
  • MCP scan and query no longer skip a whole page when a single item is larger than the response size cap.

3.0.4

Fixed

  • Paste works again in the item editor (Add Item, Edit Item and the detached editor window) and in every other code editor: Ctrl/Cmd+V, Shift+Insert, the Paste entry of the editor's context menu and Edit > Paste. Since 3.0.0 the editor swallowed the shortcut and its own paste path was rejected by the browser engine, so nothing happened.
  • The Add Item / Edit Item dialog fills its frame again instead of leaving an empty band on the right. Bulk edit, Copy to table and Item history had the same gap.
  • Sidebar tooltips wait one second on every icon, including the next icon after one tooltip has shown, and always open to the right of the icon, vertically centred. Previously the delay was skipped after the first tooltip and a tooltip occasionally rendered in the top-left corner of the window.
  • The license check works again behind corporate proxies and security software that re-sign HTTPS traffic. It now goes through the operating system's certificate store (the same trust your browser uses) and falls back to Dynobase's HTTPS settings (custom CA bundles, proxy, "Allow untrusted HTTPS certificates"). Since 3.0.0 such networks got "self signed certificate in certificate chain" or "unable to get local issuer certificate" and the app reported the licensing server as unreachable. When a certificate error remains, the message now says how to trust the certificate.
  • The Register Machine / Login dialog fits the window again. It was 40 px wider than the window, which hid its close button and the right side of the member portal (machine IDs and buttons), so machines could not be de-registered from the app. The same applied to the Add new AWS Profile dialog.

Added

  • Settings > General > Updates: switch off automatic updates to stay on the installed version, for example after rolling back to an earlier release.

3.0.3

Changed

  • Wait 500 ms before showing the first sidebar tooltip, so moving across the icons stays quiet.
  • Group the OpenAI API key and MCP server configuration in Settings > AI.

Fixed

  • Keep one sidebar width across sections and tabs, and remember manual resizes after restarting. The resize handle also supports keyboard navigation.
  • Show dropdown focus rings for keyboard navigation without leaving a ring after mouse selection.
  • Keep the columns and filter controls available while viewing History or Favorites alongside the data grid.

3.0.2

Added

  • Open Dynobase in your default browser from Settings > General or the app menu. The desktop app starts a private local server and uses the AWS profiles on your machine. Keep the desktop window open while working in the browser.
  • Run browser mode independently from a checkout with Node.js. Database requests, credentials and file processing stay in the local backend.
  • Register the local machine from browser mode through the Dynobase member portal, with an explicit license recheck after registration.

Fixed

  • Keep inline editors open and preserve their draft when the selected row or surrounding grid updates.
  • Give generated AI code the available panel height so the result remains visible and scrollable.
  • Share scheduled exports and the MCP server between desktop and its browser window to avoid duplicate background jobs.
  • Remember the browser port across app restarts so saved browser preferences and queries remain available.

3.0.1

Fixed

  • Stop repeatedly opening AWS sign-in tabs when an SSO session expires. Background refresh, automatic requests, and profile reloads stay silent; Dynobase shows an in-app authentication prompt and opens the browser only when you choose Authenticate.
  • Keep Authenticate working when clicked during a failing background refresh, while sharing one browser login across profiles using the same SSO session.
  • Preserve table data and filters when authentication is needed, and show the prompt for the profile whose request failed.

3.0.0

Changed

  • Search across all profiles by default in the table selector.
  • Explain semantic-search setup and permission failures with AWS guides, the failed action and resource, and a copyable access request.
  • Replace the colored location pill with a plain breadcrumb and a small connection-status dot.
  • Keep scan estimates on the Scan button and fetch status in one compact footer line. Resume appears only for incomplete results; Details opens the stop reason and read statistics.
  • Tighten shared corner sizes and simplify interface copy.
  • Restore Untitled UI’s default purple brand palette and locally bundled Inter typography across the app, including legacy token consumers.
  • The interface is rebuilt on Untitled UI React (React Aria + Tailwind v4): one set of buttons, inputs, selects, comboboxes, menus, badges, tooltips, tabs and dialogs across every screen, with light and dark palettes coming from one token set. The filter bar, sidebar, footer, item editor, table settings, backups, codegen, metrics, stream viewer, designer and settings pages all use it. The renderer moved to React 19, react-scripts 5 and TypeScript 5.9, and rebass, react-select, react-contextmenu, react-tooltip, react-autosuggest, emotion-theming and react-json-view were removed.

Added

  • Semantic search over native DynamoDB vector indexes: query text with matching Bedrock Titan embeddings, paste vectors, or find similar items from the grid; inspect index configuration, exact-match filters, ranked distance scores, usage and side-by-side result diffs.
  • Visual JSON-path inspection: filter or exclude nested scalar values with exact types, safely quote literal attribute names, and save nested grid columns per table. Filters are staged for review before Run.
  • Schema explorer from real data: analyze loaded results or explicitly sample one bounded table page; inspect nested paths, missing attributes, mixed types, examples and entity groups with visible coverage and read capacity.
  • Visual item diff: compare two selected items or a recorded history entry with nested map/list changes, missing versus null values, exact numbers and unordered DynamoDB sets.
  • Local MCP server (Settings → General → MCP server): AI coding tools such as Claude Code and Cursor read profiles, schemas and data through the running app over a token-protected localhost endpoint; writes are off unless allowed and land in the History panel.
  • Lazy region loading: profiles appear immediately from a cached table list, the default and previously opened regions refresh in the background, other regions load when expanded or via "Load all regions". Can be turned off in Settings.
  • Global table search: the command palette (Ctrl/Cmd+K) and the sidebar filter (type @) search every table across all profiles with @profile and region: qualifiers, profile colour chips and Ctrl/Cmd+Enter to open in a new tab; optional grouping of tables by name prefix.
  • Single-Table Designer: List, String/Number/Binary Sets, Binary and Null attribute types; one saved state and access-pattern set per model with a model switcher; NoSQL Workbench 3.x model import/export (facets, access patterns, billing mode) and CloudFormation table import.
  • On-demand backups: list, create, restore and delete from the table context menu (Backups...).
  • Global secondary index create/delete from Table Settings, with backfill progress and typed confirmations.
  • Global Tables replicas, tags and the resource-based policy in Table Settings (hidden where the endpoint does not support them).
  • PartiQL INSERT, UPDATE and DELETE in SQL mode, as batches or a single transaction, behind a confirmation dialog.
  • Auto-refresh ("live tail") with consumed capacity and scanned counts in the data footer.
  • Copy to table... with a target picker, key mapping and overwrite/skip modes.
  • Item change history with undo (History in the footer) and bulk edit of selected or all matching items.
  • Scan cost hints next to the filters, parameterised favourites ({{name}} placeholders prompted at run time), and workspace export/import in Settings.
  • CloudWatch metrics and a DynamoDB Streams tail viewer as tabs next to the schema.
  • S3 import format detection with in-place conversion of Dynobase exports, and scheduled local exports.
  • Infrastructure code generation (AWS CDK, CloudFormation, Terraform) for existing tables and from the New Table form; C# codegen; Python and Put in the Operation Builder; runnable scripts.
  • Filter operators: Not Between, Not In, Contains Any/All, Not Begins With, Is Null, Is Not Null, Is Empty, Type Is and the Size family, plus AND/OR groups with parentheses.
  • sso_session profiles, silent credential refresh with one retry on expired sessions, and CA bundles from AWS_CA_BUNDLE, NODE_EXTRA_CA_CERTS, profile ca_bundle and Settings.
  • Opt-in and STS-disabled regions are detected and grouped in the sidebar with an Exclude action instead of one error per region.
  • Keyboard navigation for every dialog (focus trap, Escape, Enter), a license status in the header, and dark mode across all surfaces.

Fixed

  • Preserve selected item identities when sorting or refreshing the data grid, so bulk actions and comparisons stay on the selected items.
  • Send native vector searches to AWS's dedicated search endpoint while preserving custom endpoint configuration.
  • Keep table rows in the app-selected theme, including light mode when the operating system is dark. Hide the unused legacy theme control so it cannot push the footer below the window.
  • Preserve literal special attribute names and maps that resemble legacy tags across reads, edits, exports and generated code; accept empty string members in nonempty sets. Numeric keys and set members compare by exact value, preventing duplicate bulk increments and out-of-order copies. Bulk previews use decimal arithmetic, schema grouping follows pending edits and exact numeric/binary fields, and Operation Builder keeps literal __code data inert and large JavaScript numbers lossless.
  • Partial scans and queries now prominently show their stop reason, matches found so far, evaluated items, page count and Resume action. Page, scanned-item and time safety limits are configurable in Fetching Settings; auto-refresh preserves incomplete results instead of restarting them.
  • React 19 production builds resolve the grid's DOM compatibility helper correctly; generated-code confirmation uses React Aria, and code generation uses Handlebars' browser compiler.
  • Binary query keys and filters retain their binary type; large numeric query/filter values retain every digit.
  • A lost response no longer causes bulk updates to repeat increments or list edits. Ambiguous outcomes ask you to refresh before retrying.
  • Scheduled exports cannot overwrite or prune another schedule's files, including schedules sharing a table and directory. Legacy export files are preserved.
  • "Load all regions" continues past timed-out requests, keeps cached tables available, and cleans up pending work when switching profiles.
  • Editing a second grid column no longer reverts an unsaved edit to the first; right-click export and codegen actions hit the right row; shift-click ranges no longer duplicate rows; {{param}} values are escaped inside PartiQL and JSON literals; the DynamoDB JSON toggle handles binary attributes; undo requires the whole after image to still match.
  • Table Settings no longer crashes after creating or deleting a GSI; Escape and Tab work after clicking blank dialog space; Ctrl+T with no profile, corrupt stored settings and a corrupt recent-tables list no longer crash the app; new profile names are trimmed consistently.
  • The MCP bearer token and AWS keys are redacted from logs; MCP scan/query paging no longer skips items dropped by the payload cap; an expired session refreshes once instead of running a write three times; stale regions keep their last known tables; copy-to-table overwrite mode no longer races on repeated keys; a duplicate bulk-update request no longer makes the original uncancellable; PartiQL gets the silent credential refresh.
  • Composite key parts keep their template position; toolbox codegen escapes quotes and avoids reserved words; empty numbers and sets stay out of exports and deploys; false, zero and null attributes are visible in the grid; Go v2 and Python copy-as builders emit typed, escaped values with local endpoints; YAML scalars ending in : are quoted.
  • Single-Table Designer no longer overwrites other rows or groups unrelated items when a GSI is selected, accepts any attribute name in value templates and keeps each model's design and access patterns apart.
  • DynamoDB Local 2.x/3.x is discovered again (alphanumeric probe key), and a custom CA bundle, proxy or socket limit no longer breaks plain http:// endpoints.
  • Binary, sets and numbers beyond 2^53 survive the grid, the editors, export and import unchanged; whole-table and current-results exports share one format that re-imports byte-identically.
  • Add new profile writes [name] to the credentials file and [profile name] to the config file, honouring custom paths.
  • Resume continues from the stored cursor; refetch and auto-refresh keep the grid mounted (scroll position, selection and the schema sub-tab survive) and no longer flood the query history.
  • Operation Builder uses distinct placeholders for SET and condition values and runs against the profile's endpoint; the Terminal runs with real credentials and the table's key names.
  • Every codegen target is compile-checked; booleans and numbers are typed correctly; generator errors are shown.
  • The detached item editor waits for an acknowledgement and targets its own tab; Form View + no longer wipes sibling attributes.
  • Table Settings works on DynamoDB Local; New Table emits per-index throughput and projections; the Designer's shipped examples deploy.
  • TLS verification is on by default; the license check never hangs; menu accelerators no longer hijack text editing; the second instance restores the window.
  • Dialogs close on Escape even while a dropdown inside them has focus; S3 import/export load failures are reported once per cause instead of once per region.

Dynobase is a Professional GUI Client for DynamoDB

Start your 7-day free trial today

Product Features

Download
/
Changelog
/
Pricing
/
Member Portal
/
Privacy
/
EULA
/
Twitter
© 2026 Dynobase