- Update dependencies
- Update dependencies
- Update dependencies
- Node 18 required
- Show incomplete on truncated response from BigQuery (#1224)
- Update dependencies
- Revert odbc implementation to CJS
- Restore arm64 container build
- Convert server code to ESM
- Add extra result display formats and copy-to-clipboard (#1209)
- Fix helm chart postgres dependency (#1212)
- Fix BigQuery indexes schema panel (#1214)
- Update dependencies
- Revert dockerfile node version to node 16
- Update dependencies
- Remove snowflake support
- Fix docker-entrypoint script to allow setting env vars #1192
- Update dependencies
- Update dependencies
- Update dependencies
- Updates clickhouse implementation to official nodejs driver. At time of release, compatible Clickhouse versions are 22.8 - 23.2.
- Updates dependencies
- Update dependencies
- Add "Trust Server Cert" option for SQL Server connections
- Update dependencies (minor and patch)
- Update dependencies - potentially breaking changes for auth due to dependency updates.
- Change in versioning scheme. Semver will no longer be followed.
- Update dependencies
- Update dependencies
- Update dependencies
- Remove connection password from connection list API. This matches the behavior for connection detail API.
- Update dependencies
- Add max rows override for ODBC, Athena, MySQL, Postgres, Snowflake, and SQL Server drivers
- Secure connection template functionality.
This restricts connection template values to fields on user object, preventing the use of arbitrary JavaScript, as it could be leveraged for abuse. (This functionality was, and still is, only available to
admin
accounts.)
- Add postgres query timeout config
- Add default role config for Google Auth
- Update dependencies
- Add cookie security configuration options
- Limit listed connections based on user access
- Add SAML based role management
- Postgres: Add foreign tables to schema
- Athena: Fix athena region configuration
- Athena: Add support reading schema from glue
- MySQL: Allow base64 for SSL
- Fix migrations to be MySQL 5.7 safe
- Update dependencies
- Prevent disclosure of Google OAuth secret
- Fix Athena drop/create table query support
- Add support for 0000-00-00 date strings in MySQL
- Add MySQL column descriptions
- Add AWS Athena support
- Add cancellable query support to AWS Athena connection
- Add Azure AD support to OIDC auth
- Allow role to be assigned via OIDC user role
- Add ODBC support to docker container (see
docker-examples/oracle-odbc-image
for example) - Render markdown hyperlinks in query result columns
- Sort schema and table on name
- Polish schema search and default expanded behaviors
- Add compression to schema route payload
- Fix search history
- Fix OIDC illegal redirects
- Fix
/api/batches
forbidden response when using API key
- Add Trino HTTPS support
- Fix ClickHouse authentication
- Fix connection edit form
- Update dependencies
Incomplete release. Use 6.7.1 instead.
- Add Presto authentication and HTTPS support
- Fix ClickHouse queries beginning with comment
- Update Dockerfile node and package dependencies
- Add query run history side drawer
- Add support for ClickHouse
LIMIT <offset_number>,<limit_number>
syntax
- Fix chart download button
- Fix 6.4.2 build
BROKEN - UI development config included in production build, breaking UI.
- Fix modal/dialog style
- Add Trino support
- Enhance OIDC authentication, supporting discover of endpoint URLs when only providing
SQLPAD_OIDC_ISSUER
endpoint. - Show connection name if user is editor role and only single connection exists.
- Add context menu to query result cell allowing copy and expanded viewing of cell value.
- Fix ClickHouse support for ClickHouse versions prior to 20.7
- Fix object and date values in CSV and XLSX export
- Postgres: Add self-signed certificate support
- Update queries search to be case-insensitive
- Prevent accidental back navigation when scrolling query results
- Fix query result display on Safari
- Update dependencies
- Reduce unknown
SQLPAD_*
environment variable error to warning
- Add query status to query history
- Ignore
SQLPAD_SERVICE_
env vars during unknown env var check - BigQuery: use wrapIntegers to prevent int64 truncation
- Fix schema load for single defaulted connection
- Update dependencies
- Fix LDAP auth for profiles without mail attribute. SQLPad's users
email
field is now nullable. - Fix schema item copy-to-clipboard for non-HTTPS environments
- Fix ClicHouse driver auth for latest ClickHouse release
- Use
cancelled
status for statements following a statement error in multi-statement batch. (These previously were stuck inqueued
status.) - Return 404 for unfinished statement results. Statement results API is only intended to be used once a statement is
finished
.
- Fix query result grid value padding
Misc enhancements to support showing multiline content in query results.
- Text value cells render line breaks. Row height is increased to accommodate the column value with most lines.
- JSON and other object values are JSON pretty-printed for multiline rendering.
- If single column is returned, the initial column width will use full width of result area.
- Changes grid font family to monospace
- Adds shadow to indicate text overflow
- Add LDAP trace logging
- Add LDAP bind check at startup if enabled
- Fix missing query text from query history
- Fix stale page title on sign in
This release removes deprecated functionality and changes some default behaviors, requiring a major version bump. There are some notable enhancements as well however.
Upgrading to version 6 requires existing SQLPad instances be running on a 5.x.x release. If version 4 or earlier is detected, startup and migration will be aborted.
To upgrade, install and run via your preferred method. Version 6 has no data migrations other than a dummy migration to serve as a version marker. If you'd like to roll back to 5.x.x, you should be able to run 5.8.4 on a 6.0.0 database.
Database backups are encouraged however. Please follow good practices if your SQLPad use warrants it.
Visualization configuration has moved into a sidebar on the right. The existing chart button toggles its visibility.
Multiple result set support has been added to the UI. When executing multiple SQL statements at once, a summary table will show with the status of each SQL statement. Executing single statements works as it did before.
Note that query visualization is locked to the last SQL statement in a batch.
Query name, tags, and sharing have been moved to a dialog, appearing on initial save or click on query name in the toolbar. Query sharing has been enhanced, allowing queries to be shared with individual users as well as limit their ability to save changes to the query.
A context menu has been added to the schema sidebar. When right-clicking schemas, tables, and columns, a menu will display with values that can be copied to the clipboard.
Users may now provide a name and change their email as well as password if local authentication is enabled.
Any environment variables set starting with SQLPAD_
that are not known by SQLPad will raise an error and prevent SQLPad from starting up. This should help catch config issues early.
- Removes password reset UI emails. Password reset URLs can still be generated in UI via an admin account
- Removes Slack webhook. Use generic webhooks to build your own.
- Removes deprecated configuration variables
- Removes .json and .ini configuration file support
- Removes open admin registration.
SQLPAD_ADMIN
should be used for initial account, or auto sign-up should be enabled when using compatible auth strategy. - Reduces default query result row limit to 10,000 (previously 50,000)
- Server process exits on configuration error or unknown configuration key
- Adds query-not-found dialog, prompting user to start new query.
- Simplifies query list (if too much open issue)
- Increases SQL editor font size to 14
- Fixes tag input leaving unselected value in input
- Fixes clone/new URL not changing as expected
- Fixes reusing connection clients on query change (See issue #806)
- Updates dependencies
- Ensure port config value handled as number
accidentally tagged without changes
- Fix LDAP role sync. If LDAP role filters are set up, role syncing may be toggled per user on user forms. By default auto-created users will have roles synced. Manually added users will not.
- Update dependencies
- Fix connection client heartbeat race condition (UI)
- Fix LDAP editor role search filter
- Allow empty/
denied
value forSQLPAD_LDAP_DEFAULT_ROLE
to deny users that do not match LDAP role filters. See LDAP documentation for more info.
- Add LDAP auto sign-up and dynamic role assignment based on LDAP search
- Fix: Allow LDAP auth without local/userpass auth enabled
- Update dependencies
- Add Apache Pinot support
- Enhance SQL editor autocomplete
- Fix Presto/ClickHouse error display
- Show line numbers in SQL editor
- Update dependencies
- Fix missing
top
strategy addition in 5.5.0
- Add
top
limit strategy for ODBC connections - Fix SQL editor not clearing on new query
- Update dependencies
- Add configurable query result store (memory, database, and redis now an option). See
SQLPAD_QUERY_RESULT_STORE
under configuration docs. - Update MySQL connections to use INTERACTIVE flag to prevent early connection close.
- Embolden result column headers
- Add configurable session store (memory, database, and redis now an option). See
SQLPAD_SESSION_STORE
under configuration docs. - Update server dependencies
- Fix MySQL2 transaction support
- Fix old query results potentially overwriting new query results when using multi-statement transactions
This release introduces new generic webhooks for a variety of events, while deprecating specific communication implementations (SMTP email and Slack). With webhooks, it is up to you to implement communication to your SQLPad users.
The webhooks added support a larger number of events than previously handled, such as queries being run and results/error received from those queries.
- Add webhooks documentation
- Deprecate SMTP email and Slack webhook, both to be removed in v6.
- Capture database error message on ODBC driver connection error
- Show service token UI only if enabled via config (#787)
- CrateDB - provide separate user, password, and SSL fields (#793)
- Fix multiline string support in
sql-limiter
- Fix regular expression constraint in
sql-limiter
- Add OpenID Connect authentication support
- Add .env config file support
- Fix disabled admin on initial SQLPad load when using seed queries
- Deprecate INI and JSON config files support
- Environment variables renamed for better consistency. Old name is deprecated:
GOOGLE_CLIENT_ID
➡SQLPAD_GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET
➡SQLPAD_GOOGLE_CLIENT_SECRET
DISABLE_AUTH
➡SQLPAD_AUTH_DISABLED
SQLPAD_DISABLE_AUTH_DEFAULT_ROLE
➡SQLPAD_AUTH_DISABLED_DEFAULT_ROLE
DISABLE_USERPASS_AUTH
➡SQLPAD_USERPASS_AUTH_DISABLED
ENABLE_LDAP_AUTH
➡SQLPAD_LDAP_AUTH_ENABLED
LDAP_URL
➡SQLPAD_LDAP_URL
LDAP_BASE_DN
➡SQLPAD_LDAP_BASE_DN
LDAP_USERNAME
➡SQLPAD_LDAP_USERNAME
LDAP_PASSWORD
➡SQLPAD_LDAP_PASSWORD
CERT_PATH
➡SQLPAD_HTTPS_CERT_PATH
CERT_PASSPHRASE
➡SQLPAD_HTTPS_CERT_PASSPHRASE
KEY_PATH
➡SQLPAD_HTTPS_KEY_PATH
SERVICE_TOKEN_SECRET
➡SQLPAD_SERVICE_TOKEN_SECRET
Version 5 contains many infrastructure and API changes, as well as migrations that are not easy to roll back from. It is highly recommended take a backup of your database (SQLPAD_DB_PATH
directory and/or your backend db in use).
This release finishes the migration from an embedded JSON database to an ORM and SQLite (used by default). For new instances of SQLPad, the following alternative backend databases may be used: SQL Server, MySQL, MariaDB, or PostgreSQL via SQLPAD_BACKEND_DB_URI
.
Providing a value for SQLPAD_DB_PATH
/dbPath
is still required, as the file system is still used for sessions and storage of query results. This requirement will be removed in a later 5.x release.
Migrations will be run on SQLPad start up. To disable this behavior, set SQLPAD_DB_AUTOMIGRATE
to false
. Migrations may be run manually via node server.js --config path/to/file.ext --migrate
. When using --migrate
the process will exit after applying migrations.
Special thanks to @eladeyal-intel, @bruth, @yorek, @dengc367, @murphyke, and @Wizhi, for all their contributions in this release!
-
Column descriptions added for Google BigQuery
-
Added MySQL 2 driver
-
Add Redshift driver
-
Add ClickHouse driver
-
Add ActiveDirectory authentication
-
Multi-transaction statement option made available for MySQL/MySQL 2 drivers
-
Connection dropdown hidden if user is non-admin and only 1 connection exists
-
Connection may be pre-selected via URL query parameter
connectionId
orconnectionName
-
Add default role when using disabling auth (
SQLPAD_DISABLE_AUTH_DEFAULT_ROLE
).editor
is used by default. -
Users may be enabled/disabled to restrict access (alternative to deletion)
-
Migrations may be run on their own using
--migration
-
Automigration may be disabled with
SQLPAD_DB_AUTOMIGRATE
-
Server side filtering and pagination added for
queries
API -
ODBC - limit strategies added for configuring method used to enforce query row limits
-
Test connection error shown
-
New
/batches
API for running multi-statement SQL. This replaces/query-result
API, and is written in a more RESTful approach, removing the need to extend SQLPad timeouts. See API docs for more info. -
Adds
allowedDomains
config item and deprecateswhitelistedDomains
to be removed in v6.
-
Only admins may see all query history
-
denyMultipleStatements
connection option removed. Multiple statements are now attempted to be supported at SQLPad REST API level viabatches
andstatements
API. -
/download-results/
API has been removed in favor of/statement-results/
, which is similar but based onstatementId
instead ofcacheKey
. See API docs for more info. -
debug
config option removed. UseappLogLevel
set todebug
instead. -
tableChartLinksRequireAuth
config option removed.All table/chart links require authentication going forward. If unauthenticated access to these URLs is necessary, look into whether an alternate auth solution may be used to passively provide authentication as necessary (like auth proxy for example.)
-
data model changes:
createdDate
fields have been renamed tocreatedAt
(created_at
in table)modifiedDate
fields have been renamed toupdatedAt
(updated_at
in table)user.signupDate
renamed touser.signupAt
(signup_at
in table)query.modifiedBy
renamed toquery.updatedBy
(updated_by
in table)query.createdBy
andquery.updatedBy
now hold user id as opposed to user email address.query.lastAccessDate
is removed. It was no different fromupdatedAt
- Connection driver-specific fields have been moved to
connection.data
. Fields are still decorated on base of connection object for compatibility. cache
table has changed to useid
instead ofcacheKey
.cache.expiration
has renamed tocache.expiryDate
for consistency with other modelscache.queryName
has renamed tocache.name
for more generic usecache.schema
has been renamed tocache.data
and stores raw JSON for generic use
-
Regex filter for query history no longer supported
-
Config file without an .json or .ini extension will be assumed to be JSON. Specific extensions will be required in a future release.
-
Config file that does not exist will throw an error at startup instead of silently ignoring.
- Adds ability to set initial default connection via configuration
defaultConnectionId
. (Only for initial load. User connections are then cached locally) - Changes default query list filter to "all queries" instead of "my queries".
- Defaults schema sidebar to open, and removes local caching of toggle selection.
- Fixes autocomplete missing when schema sidebar is hidden on load.
- Updates dependencies
- Support multiple datasets in BigQuery connection
- Fix sql splitting for strings containing
;
-
Add Google BigQuery support documentation
-
Add SQLite support documentation
-
Adds batch query support to ODBC (last statement is shown in UI)
-
Auth: Add option to disable authentication. documentation
When auth is disabled, application no longer requires authentication.
-
Auth: Add proxy authentication support. documentation
-
Add private/shared query model.
Going forward queries are private by default. When sharing is enabled, query is shared with all users (and they are given write permissions). Finer-grained access to be added in the future (share with specific user, read vs write)
-
Add connection and query seed data support documentation
-
Add service tokens (api tokens). New menu option is available when logged in as admin.
-
Add application header for application-level administration
-
Adds multi-statement transaction support for Postgres, SQLite, and ODBC. documentation
-
Add config deprecation for following keys:
debug
,tableChartLinksRequireAuth
,keyPath
,certPath
,certPassphrase
-
Add connection template support documentation
-
Adds additional query run logging for queries executed and details surrounding them (logged under
info
level)
-
Fix: long connection form display to always show save/test buttons
-
Use ISO 8601 timestamps for log messages instead of unix epoch
- Updated dependencies
- Introduced SQLite as backing store. nedb data (embedded db currently in use) will eventually be migrated to SQLite.
- Added migration framework. Migrations are run at server startup.
- Added mult-stage build
- Lots of refactoring to better organize authentication, addition of new features.
- Fix auth for email addresses containing
+
and quoted@
characters
-
Add Snowflake driver/support (#519)
-
Add MS SQL Server readOnly intent option (#520)
-
Add logging using pino (#527, #547)
SQLPad now logs json messages to stdout using the pino library. Amount of logging can be controlled by setting
appLogLevel
andwebLogLevel
for application and web logs respectively. Pino does not manage log transport, but has an ecosystem of tooling available that does http://getpino.io/#/docs/transports. -
Allow dynamic user data in connection configuration (#544)
Connections can have user values dynamically substituted in connection configuration values containing text values. This is a work-in-progress and can be used for adventurous. See PR for details, otherwise more info and corresponding UI will come with future releases.
-
Add GitHub Release builds via build pipeline (#550)
-
Add
dbInMemory
setting (#553)dbInMemory
will run the embedded SQLPad db in memory without logging to disk. Enabling this does not remove the need fordbPath
at this time, as file system access is still required for result caches and express session support. (dbPath
to become optional in future release)
- Fix TypeError: Do not know how to serialize a BigInt (#522)
- Fix tests for non-utc time zones (#524)
- Update server dependencies (#525)
- Maintenance & refactoring (#534, #535, #538, #539, #540, #541, #542, #543, #545, #551, #552, #553)
- Node 12 or later required
- Add ability to restrict connections to specific users (#502)
- Merge multiple statement result sets for postgres into 1 result set (#510)
- Add Pre-query statements options to MySQL driver (#511)
- Add Query execution history (#512)
- Add Pre-query statements options to MySQL driver (#515)
- Update odbc dependency to v2
- Revert build script to use sh
- Fix admin password from env var
- Fix mysql zero-row result bug
- Fix add user and connection form submit page refresh in Firefox
- Fix schema sidebar height issues in Safari/Chrome
- Set build script to use bash instead of sh
- Let connection username/password decipher errors bubble up
- Added support for authentication to Cassandra
- Added SSL support for MySQL/MariaDB
- Added JSON query result downloads alongside XSLX and CSV
- Add json download format for query result
- Fix use of SQLPAD_ADMIN_PASSWORD setting
- Add
sqlserverMultiSubnetFailover
option for SQL Server
- Add
SQLPAD_TIMEOUT_SECONDS
config for setting http server timeout. Useful for supporting long running queries.
- Fix SQL Server "port must be type number" error
- Adds support for defining connections via configuration.
Update all dependencies to latest (client & server). Includes major updates to following modules:
- SAP Hana
- Cassandra
- SQL Server
- email support
- XLSX and CSV query result downloads
- SAML authentication
Some integrations are not able to be tested by existing test setup. Please open an issue if any breakage is discovered.
- Add cookie name config setting
- Add admin password setting
- Removes npm version update check and related config item
disableUpdateCheck
SQLPad v3 is a UI redesign/refresh along with a large file structure change and configuration change. It has been in "beta" for quite some time, and if you are running the latest docker image or running a recent build of master, you've already been using it.
- URLs in query results will be turned into links
- SAML authentication support
- Remember selected connection id / schema toggle
- Configurable session time and secret
- Support for JSON and INI config file added. File should config using
key
fields found in configItems.js. Config file path default is$HOME/.sqlpadrc
and may otherwise be specified using--config
via command line orSQLPAD_CONFIG
environment variable.
- CLI flags have been changed to use config item key (#460)
- Default db path is no longer used if db path is not provided in config. Previous default was
$HOME/sqlpad/db
. - Default config file path no longer used. Previous default was
$HOME/.sqlpadrc
. - Configuration UI has been removed. See sqlpad#447.
- cli-flags in saved .sqlpadrc JSON are no longer used for config values. These configuration keys should instead be switched the the
key
found inconfigItems.js
. For example, instead ofdir
ordb
, usedbPath
. Instead ofcert-passphrase
usecertPassphrase
, etc. --save
and--forget
cli flags no longer supported
- Fix preview sticking around after query selection
- Fix tag/search input in query list
- Add loading indicator for schema sidebar
- Fix user needing to sign in again after sign up
- Fix app menu for non-admin users
- Fix frozen editor after query error
This build is broken. sorry :(
Beta for version 3 may be installed via latest docker image, or by installing via npm referencing exact version or beta tag.
SQLPad v3 is backwards-compatible with SQLPad v2 database files, and is mostly a UI redesign/refresh and a large file structure change. Give it a try and if you aren't ready for it roll back to v2 and everything should still work.
UI components previously based on bootstrap UI components are now replaced by custom components. Magenta is embraced as a secondary color.
Management and listing pages (Queries, connections, users, and configuration) have been moved into side drawers, allowing management and browsing of things without leaving the current query. The query editor is the primary focus of the application.
Query editor toolbars have been consolidated into a single bar to maximize use of space on the page.
Unsaved changes to a previously-saved query are now saved, prompting the user to restore on next open. This is not enabled for unsaved changes to "new" queries since it could become an annoyance, but can be added if there is interest.
Query result chart has been moved to a smaller resizable pane along side the SQL query instead of being placed in a tab. This impacts the size available for the chart, but brings it to the default view, allowing altering of the query without changing tabs.
The schema sidebar may now be hidden and is now searchable. It has also been rewritten to render large trees efficiently.
Query result grid no longer has data bars for numeric values since it didn't make sense for all number values. Date value display logic has been altered to only show timestamps if timestamps are detected. When timestamps are shown, the full timestamp from the JavaScript date object is displayed.
- Fix Google oauth for Google+ API shutdown
- Add postgres column description to schema sidebar
- Log user id and email in debug mode
- Replace memory-based session store with file-based
- Fix query editor not responding to input after query result scroll
- Add optional odbc support. See ODBC wiki page for more detais
- Fix query editor loading when connections load slowly
- Add Cassandra support
- Sort driver dropdown in connection form
- Extend data grid to full width of container
- Implement data grid using react-virtualized (fixes resizable columns)
- Fix chart rendering error when columns no longer returned by query are referenced
- Allow case insensitive user lookup by email (fixes case sensitive signup/signin issues)
- Revert chart fix from 2.5.5 preventing charts from rendering
- Remove frameguard protection (fixes iframe embeds)
- Use CDN for bootstrap font (fixes missing icons when using baseUrl)
- Update dependencies
- Fix 0 values classified as string in query results
- Fix UI chart error when referencing columns no longer returned by query
- Fix SQLPad crash postgres queries exceeding max row limit
- Only show admin registration open message if admin registration is actually open
- Fix baseUrl of undefined error
- A lot of driver refactoring
- Driver implementations now consolidated at /server/drivers
- All drivers now tested
- New docker build process/root-level Dockerfile
- Fixed password reset link when using base url
- Fix SAP HANA schema not being cached due to dots in column name
- Fix error when updating connection
- Fix SQLPAD_BASE_URL / --base-url use
- Fix early session expiration / extend session expiration every response
- Added support for SAP HANA (ccmehil)
- Many security improvements
- Majority of dependencies updated
- Implemented expressjs security best practices
- Helmet middleware added
- Express-session used instead of cookie-session
- Randomly generated cookie secrets
- Sessions now expire (1 hour)
- Limited amount of config info sent to front end
- Updated styling for User and Connection admin pages (bringing boring tables back. updates to rest of app to follow)
- Schema sidebar updates
- Limits presto schema sidebar to schema if provided in connection info
- Removed (view) label on views
- Fixed generic schema info query for case-sensitive collation
- Fixed disappearing data table after vis resize
- Added resizable panes to query editor
- Added SQL formatter to query editor (KochamCie)
- Added clone query button to query editor
- Added prompt when navigating away from unsaved query edits
- Redesigned bar charts in data grid to a more minimal design
- Redesigned query editor nav bar
- Brings query name input out of modal
- Adds unsaved changes indicator to save button
- Adds shortcut/tip documentation to modal
- Uses nav links instead of buttons for less visual noise
- Updated editor shortcuts
- Running query now
ctrl+return
orcommand+return
- Format query with
shift+return
- Running query now
- Updated tauCharts to latest version
- Implemented react-router & fix unnecessary page loads on navigation
- Bundled remaining vendor JavaScript libs
- Removed external font-awesome dependency from CDN
- Fixed bigint handling for MySQL
- Fixed date display in charts
- Fixed date display for MySQL
- Fixed cell content not expanding when cell is expanded
- Fixed unintended page refresh on editor sidebar link clicks
- Fixed layout bugs from flexbox
- Lots of misc front-end refactoring
- Fix --base-url config use
- Refactored layout styling to use flexbox css
- Force no-cache on fetch requests (fixes some odd IE issues)
- Fix docker entry point
- New features
- Added systemd socket activation support (epeli)
- Added option to disable update check
- Resizable data grid columns (slightly buggy)
- Fixes
- Fixes MySQL schema sidebar showing extra dbs
- Fixes loss of precision of numbers in UI grid (even if they were text)
- Fixes Presto driver
- Fixes React deprecation warnings
- Fixes incorrect date display in UI
- All dates were being localized. now displayed without localization
- Compatibility notes
- Node v6.x now required at minimum
- added SOCKS proxy support for postgres (brysgo)
- fixed version displayed in about modal
- fixed query tag weirdness from previous v1 weirdness
- leading 0s preserved in query results and treated as strings instead of numbers
- support for postgres ssl certs (johicks and nikicat)
- fixed crate v1 schema support (mikethebeer)
- naive autocomplete
- refactored connection admin screen
- changed build system to fork create-react-app
- Ensure strict db startup order (vweevers)
- Improve query editor performance/reduce SQL editor lag
- Fix chart only view not displaying charts
- Fix query editor search
- Update dependencies
- Fix: disabling of links on query details modal (vweevers)
- Fix: Vis tab loading indicator behaves same as query tab, hiding error on rerun (vweevers)
- Fix: Charts rendered lazily. Query result grid loads faster, large query results won't lock browser until you try to chart. (vweevers)
- Fix: Hide local auth form if DISABLE_USERPASS_AUTH=true
- run https via sqlpad directly (see additional setting) (jameswinegar)
- Support non English characters when downloading files (askluyao)
- render booleans/null timestamps properly
- (See beta 1 - 3 release notes)
- Password reset/forogot password functionality added
- Admins may generate reset links manually
- If smtp is set up forgot password link is enabled
- Configuration:
- Checklist added for OAuth and Email
- Item is disabled in UI if value is provided by environment or cli
- sensitive values are only masked if environment variables
- Move to single-page-app architecture
- New query loading animation
- Title and export options added to chart/table only views
- Add Presto DB support
- Basic Auth available for non-admin api
- More performance improvements
- Misc bug fixes
- More code cleanup
- UI design updates everywhere
- Query Listing:
- preview query contents by hovering over query listing
- occasional search/filter weirdness has been fixed
- Query Editor:
- Schema sidebar no longer separates views and tables in hierarchy
- New result grid
- inline bar plot rendered for numeric values
- display issues fixed for certain browsers
- New tags widget for cleaner input
- Browser tab name now reflects query name
- Updated taucharts library with stacked bar charts
- Line and Scatterplot charts may have chart filters enabled
- 'show advanced settings' in vis editor now has a few advanced settings depending on chart (y min/max, show trendline, show filter)
- switching between sql/vis tabs won't reset chart series toggles
- table/chart only links may be set to no longer require login (see configuration page)
- Configuration:
- Specific config inputs and labels - no more open ended key/value inputs
- Current environment config documented with assistive popovers
- Update notification moved in-app
- Under the hood
- updated all the code dependencies
- reworked some foundation code for easier future development
- Known issues / not yet implemented:
- Query tag input does not allow creation
- Query auto-refresh not yet implemented
- empty postgres queries (like executing a comment only) no longer crash sqlpad
- materialized views are included in schema sidebar for postgres
- SQLPad may now be mounted under a base url path by providing --base-url cli flag or SQLPAD_BASE_URL env variable
- Updated taucharts to 0.9.1
- Legends are now included when saving png chart images
- Many client-side and server-side dependencies updated
- Add ability to bind to a specific IP address via the --ip flag or the SQLPAD_IP environment variable
- Removed sort inputs for bar charts. (Chart sort may instead be influenced using ORDER BY in SQL query.)
- Add ability to turn off date localization (add config item "localize" set to "false")
- Add --debug flag to SQLPad cli to enable extra logging
- Port and passphrase may be set via environment variables SQLPAD_PORT and SQLPAD_PASSPHRASE
- Add support for Crate.io
- Auto-refresh query every x seconds
- Fix crash when unregistered user tries to log in
- MySQL connections can now old/insecure pre 4.1 auth system
- links now available to display just the chart or data grid
- Charting now handled by the very cool tauCharts library. It's a bit faster, has facets, grammar of graphics concepts, handles time series data better, trendlines.
- When changing chart types, SQLPad will remember and reapply the field selections where applicable.
- SQLPad database files compacted every 10 minutes, instead of once a day
- Signup page styling is fixed.
- Schema-item-name copy-to-clipboard buttons now available. Opt in by creating configuration item
showSchemaCopyButton
totrue
. - Query results can now be downloaded as xlsx file. (link will be hidden if csv downloads are disabled)
- Connection password no longer visible on connection screen.
- Duplicate content headers prevented when csv filename contains comma.
- Authentication now managed by Passport.js
- Username/Password authenication strategy can be disabled by setting environment variable DISABLE_USERPASS_AUTH
- Google OAuth strategy can be enabled by setting GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, and PUBLIC_URL environment variables
- Query can be posted to Slack webhook when saved. To enable, create configuration item with key "slackWebhook", and set the value to a Slack incoming WebHook URL.
- Whitelist domains for username administration by setting environment variable WHITELISTED_DOMAINS
- Query connection now selected by default if only one exists
- Tags now look like tags
- Typeahead added for easy tag creation
- Code cleanup
- remove console logging used for debugging
- Vertica now supported via Vertica driver
- CSVs no longer generated if disabled
- optimizations made to schema-info processing
- improved db tree/schema info performance
- Charts can be saved as images
- work-around to handle multiple statements using postgres driver
- fix to provide MAX_SAFE_INTEGER if not defined
- query results are limited to 50,000 records. This can be changed by adding a configuration key "queryResultMaxRows" and providing the number of max rows you would like returned.
- Minor bugfixes
- Text selection enabled on query results
- schema information now cached
- connection port is optional in UI
- Added port property to connections
- Configuration system has been added
- CSV downloads can be disabled via configuration. Add new item with key "allowCsvDownload" with value "false" to disable.
- Add initial Vertica support via use of Postgres driver
- SQLPad is released