- Added support for
credential_process
property in~/.aws/config
.
- Updated the AWS SDK to 0.3.0 to enable full support for AWS profiles (#329)
- Fixed an issue where the shell would not start (#331)
- Improved QLDB-internal diagnostics. The user agent uses the AWS SDK default value without adding customized key value pairs (#196), and the driver and shell versions are sent as extra headers (#332).
The Amazon QLDB team is pleased to announce the release of version v2.0.0 of Amazon QLDB Shell. This release is aimed at enhancing the developer experience when interacting with Amazon QLDB.
- The QLDB Shell is completely rewritten in Rust to make it faster to set up and easier to use with zero external dependencies. The Shell could be run by downloading prebuilt binaries for Linux, Windows and macOS without Python installation requirement.
- Credentials now come from the awssdk, not rusoto
- Set user agent to include both the driver and shell versions (#196)
- SDK updated to 0.0.19
- Region provider is now based on the AWS SDK and not rusoto
- Openssl is no longer a runtime requirement (#205)
- ping command
- SDK updated to 0.0.16
- The config file is now
config.ion
instead ofdefault_config.toml
(see #141)- if you have a config file, please migrate to Ion and rename the file
- On Macos, the XDG defaults are now
~/.config
to align with Linux (see #141)- if you had a config file in
~/Library/Application Support
, please move it
- if you had a config file in
- Format=table takes less vertical space (see #153)
- Refine Welcome message (see #148)
- Add more help info for CLI options when using
--help
(see #151) - Remove backslashes for database commands (see #173)
- A bug where
ui.format
option in config file would not work (fixes #132). - Fixed a case where an invalid statement could cause the shell to hang in autocommit mode (#142).
- Program name in
--help
now matches the binary name.
- BadRequestException no longer aborts transactions
- Added signing to Windows installer
- Updated to match changes to the QLDB driver
- in particular, this now uses AWS SDK types instead of rusoto types
- the actual dispatch is still handled by rusoto
- Added
\ping
which prints the round trip time. - Added
\status
which prints the current ledger/region/version. - Format of the config file has been updated.
- We will provide documentation for how to use the new layout before releasing this patch version.
- Added
\use
which allows switching ledgers without having to quit the shell.- Same options as the main CLI args:
--ledger LEDGER --region REGION
, etc
- Same options as the main CLI args:
- A bug where expired transactions would print a stacktrace on the next transaction.
--execute
is removed in favor of using unix-style pipes.- e.g. either
echo
orcat
can be used to send PartiQL commands to the shell
- e.g. either
- Copy-paste (CTRL-C + CTRL-V) should now work on Windows.
- Custom endpoints now work even if there is a trailing slash.
- Credentials are properly cached.
- Underlying driver updated to fix #72.
- StartTransaction on a session with an open transaction would retry until the transaction timed out on the serer.
- TLS is now provided by rustls.
- This removes the need to install openssl libs on the end system.
- The prompt can now be customed with
ui.prompt
in the config file.- The following values can be interpolated:
- $REGION: the name of the AWS region
- $LEDGER: the name of the ledger
- $ACTIVE_TRANSACTION: the string " *" if a transaction is open
- The following values can be interpolated:
- File logging now uses bunyan at maximum log level.
- The initial healthcheck client becomes the driver.
- This means the initial HTTPS connection and credential loads can be reused.
-
\set input-mode [emacs|vi]
can now be used to toggle between Emacs/Vi keybindings -
Edit mode can be configured in the config file, e.g.:
[ui] edit_mode = "Emacs" # or Vi
-
Add
\set terminator-required [true|false]
-
Add
debug.log
in config files to enable logging to a file.- When this is set, the
-v
flag configures how much is logged. Nothing goes to stdout. This means you can use it to get lots of debugging without lots of stdout noise!
- When this is set, the
- When running without a tty, the UI changes to be quieter
- For example, the welcome message and CTRL-C or CTRL-D is suppressed
- This is useful for
echo select * from foo|qldb --ledger example
- Query metrics are disabled by default
- Better error messages on connection fails
- Timestamps now render in
--format table
- Byte arrays <= 32 bytes are rendered in
--format table
- ALT/SHIFT + ENTER forces a newline
- on Windows the sequence is SHIFT+ENTER
- otherwise, ALT+ENTER (which would maximize the window on Windows)
- User agent now includes both the driver and shell versions
- Reworked verbose to be more useful.
- rustyline is completely removed
- at trace level, the pretty format is used
- Linux builds now use the older 18.04 (fixes #59)
- Added
--config PATH
to customize where we load config from. - Improved table support.
--format table
is now mostly complete- Includes support for nested content
- Includes support for
select VALUE
- Timestamps are not yet supported
- Started decoupling the program from CLI opts. This will allow better and dynamic configuration.
--verbose
can be used repeatedly to increase the level of logging.- We now use the
tracing
library instead of thelog
andfern
libraries.
- We now use the
- Removed
--auto-commit
in favor of--opt auto_commit=true
.- This is part of an overall strategy to avoid having a million flags.
- Added this file (CHANGELOG.md) to the release tar file.
- The version returned by
--version
or-V
is now correct- Going forward, alpha versions are separated by a hyphen not a period
- Homebrew installation instructions
- Additional logging (when using
--verbose
) --format table
as an option (this is not fully implemented)- DESIGN.md as a vision document
- Connection issues (credentials, endpoints or invalid ledgers) fail faster
- Start to allow customization of the prompt
- There are now three tiers of commands (PartiQL, special and commands):
- The "special" commands are also commands but don't require a
\
. - Special commands include
help
,quit
,begin
,commit
, etc.
- The "special" commands are also commands but don't require a
\show-tables
is now\show tables
- Backtraces are on by default
- Any error prints a link to the bug tracker template (even if it's not a bug)
- Display query stats. The number of documents returned, read IOs usaged and timing information is now displayed for every query.
- Query stats can be disabled with
--no-query-metrics
- Added
--terminator-required
which can be used to explicitly control sending commands to qldb (with;
). - Added abstractions around config and an environment. This will be used to make customization easy and DRY.
- Added
\show-tables
--auto-commit
now acceptson|off
- *Shell is now built using async-await
- *Don't quit on errors
- *Allow some errors to leave a transaction open
- *Improved help text
This is the first release of the 2.x series of the QLDB shell. The 1.x series was written in Python, while the 2.x series is written in Rust. We hope that you find the shell to be more responsive and easier to install. The 2.x series will not see a stable release until we are confident in the quality of the library.
As of this milestone, the 2.x shell has feature parity with the 1.x shell.