Skip to content

Releases: amtzespinosa/gresbase

Release list

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 14:21

Search all tables at once.

Added

  • Global search: a term in every table the role can read (text with ILIKE, exact numbers, uuids and
    dates), and in the names of tables, views and columns. Results stream table by table with progress
    and can be canceled; a row opens its table filtered to it, with the matching column highlighted.
    Schemas can be limited and stay in the URL; large tables are opt-in; a table that is too slow can be
    retried with more time. It works read-only, in free mode and behind Nginx or Cloudflare.

Changed

  • The Studio edition moves to v0.5 in the roadmap.
  • The cell editor is the cell itself: grown over its neighbours, on a light background with a rounded
    2 px accent border, and no field box inside.
  • Signing out asks first, and says when unsaved grid changes would be lost or an open SQL transaction
    rolled back.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 09:39

Polish of the base product, and fixes from using it on real projects.

Added

  • Structure editing: create tables; add, rename, retype (with USING), drop columns, NOT NULL and
    defaults; rename, comment and move tables; indexes (ordered columns, unique, method, partial,
    CONCURRENTLY), unique and check constraints and foreign keys with NOT VALID and validate. Every
    change shows the exact SQL and its warnings before running; drops ask for the typed name.
  • Columns: hide, reorder (drag or keyboard), resize, "Reset view"; saved per connection and table
    together with pinned columns and rows.
  • Rectangular selection, copy as TSV/CSV/JSON/INSERT, paste from a spreadsheet into the change queue
    (one undo step, extra rows inserted on request, invalid values marked and blocking save).
  • Table tabs (close, close others, reorder, Alt+W), favorites and recents per connection, also in ⌘K.
  • SQL editor tabs per connection and :name parameters sent as bound parameters.
  • Settings screen: general, connections, security (change password), SQL editor and about; settings
    defined by environment variables are locked; grid density.
  • Row selection with a click, a resizable table list, context menus in the table list, the SQL history
    and saved queries, and an own checkbox with 24 px targets.
  • Free mode: private saved queries per user and server (snippets/.private/), and a session menu with
    "Switch connection" and "Disconnect", each confirmed.
  • GRESBASE_DB_NAME and GRESBASE_DB_USER fix the database and user of the connection forms; with host,
    database and user fixed, free mode only asks for the password.
  • GRESBASE_TRUSTED_PROXIES: behind those proxies the sign-in limit uses the client IP from
    X-Forwarded-For.
  • Setup token: the log carries a /setup#token=… link, and gresbase setup-token prints the token
    inside the container.
  • Long SQL queries, CSV imports and structure changes stay alive behind Nginx or Cloudflare with
    heartbeats; no proxy timeout to raise.

Changed

  • Initial JavaScript halved (510 → 275 KB gzip) by loading heavy screens on demand; tablet layout fixes.
  • A typed value that does not fit its column now blocks save instead of failing on the server.
  • Tables with a primary key show the newest rows first by default.
  • Licensed under Apache 2.0.

Fixed

  • The SQL editor selection was hidden by the active line.
  • Single accent border on the cell editor; flags with the same size; the row panel footer stays at the
    bottom.
  • Own message for the host_not_allowed connection failure.
  • A relative GRESBASE_DATA_DIR no longer shows the "data is not persistent" warning.

Security

  • A role with default_transaction_read_only could lift it from the SQL editor (SET … = off); the
    editor now treats that role as read-only.
  • The sign-in limit counts only failed attempts.
  • The "data is not persistent" warning now detects an anonymous volume, the container layer and tmpfs,
    and says when the data would be lost.