Robo 3T 1.4 with MongoDB 4.2 support is released !

We are very happy to announce the release Robo 3T 1.4 with MongoDB 4.2 support!

What's new in Robo 3T 1.4:

New Features
   1. Mongo shell 4.2 upgrade
   2. Manually specify visible databases (#1696, #1368, #389)
   3. Support for Ubuntu 20.04 and macOS 10.15 (Catalina)
   4. SSH: ECDSA and Ed25519 keys support (Windows & macOS only) (#1719, #1530, #1590)

Improvements
   1. Qt upgrade (Qt 5.12.8 - Apr/2020, Windows & macOS only)
   2. SSH upgrade (libssh2 1.9.0 - Jun/2019, Windows & macOS only)
   3. SSL upgrade (OpenSSL 1.1.1f - Mar/2020, Windows & macOS only)

Bug Fixes
   1. Add/edit index operations fixed (#1692)
   2. Unable to run query after shell timeout reached (#1686)
   3. Crash when expanding admin users (#1728)
   4. Authentication database option isn't used properly (#1696)

Download Robo 3T 1.4


New Features

1. Mongo Shell 4.2 upgrade

In this version, we have upgraded our embedded mongo shell version from 4.0 to 4.2. Robo 3T 1.4 now supports MongoDB 4.2, 4.0 and 3.6. The exact version of the embedded mongo shell is v4.2.6.

Robo 3T supported OS platforms & MongoDB versions:
https://github.com/Studio3T/robomongo#supported-platforms

One important change as a result of this upgrade is related to SSL/TLS:

New TLS Options
MongoDB 4.2 adds TLS options for the mongod, the mongos, and the mongo shell to replace the corresponding SSL options (deprecated in 4.2). The new TLS options provide identical functionality as the deprecated SSL options as MongoDB has always supported TLS 1.0 and later.
Source:
https://docs.mongodb.com/manual/release-notes/4.2/#new-tls-options:

More on MongoDB 4.2:
https://docs.mongodb.com/manual/release-notes/4.2/

2. Manually specify visible databases (#1696, #1368, #389)

Let's dive into the problem and the solution right away.

Problem:

The motivation for this feature was this problem when the users without admin role privileges (or have access to a specific database), were unable to get the list of databases and so the connection was successful but there were no visible databases (as result of failed listdatabases command). Here we can see the problematic user and the empty database explorer on Robo 3T:

Let's create a user without admin role privileges:

Let's connect with user1 and see the problem:


Solution:

Now, it is possible to specify the databases which will force Robo 3T to make them visible on Connection Settings > Authentication tab:


Additionally, we have also implemented a warning message which is shown when the listdatabase command fails - to help the users know when to use this feature.

Improvements

1. Qt Upgrade (Qt 5.12.8 - Apr/2020, Windows & macOS only)

We have upgraded the Qt version from 5.9.3 (Nov/2017) to a very new version 5.12.8 (Apr/2020). We expect lots of UI improvements with this change. This upgrade is Windows/macOS only, Linux upgrade was not possible due to some problems with the OpenSSL build (https://github.com/Studio3T/robomongo/issues/1747). We hope to upgrade for Linux in the next version.

2. SSH upgrade (libssh2 1.9.0 - Jun/2019, Windows & macOS only)

Another upgrade is for our SSH library (libssh2). An important result of this upgrade is it enabled support for SSH keys ECDSA and Ed25519 and fixed some SSH (libssh2) bugs.

We have upgraded libssh2 to the latest 1.9.0 - Jun/2019. This upgrade is also Windows/macOS only, Linux upgrade was not possible due to some problems with the OpenSSL build (https://github.com/Studio3T/robomongo/issues/1747). We hope to upgrade for Linux in the next version.

libssh2 upgrade was particularly important, since we had a major number of SSH connection issues. During development and QA, we have already seen that this upgrade enabled support for the ECDSA and Ed25519 key types and fixed some problematic cases. We hope that it will solve the real problems of our users.

More: https://www.libssh2.org/changes.html

SSH problems on the latest Ubuntu 20.04:
Unfortunately, even with the latest libssh2 version 1.9.0, we saw some unexpected SSH behaviors on the latest Ubuntu 20.04. Here we show the problem and the solution:

Problem:

/var/log/auth.log:
...
sshd[2215]: userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes [preauth]

Solution:

  1. sudo gedit /etc/ssh/sshd_config, and add/edit this line:
    PubkeyAcceptedKeyTypes ssh-dss,ssh-rsa,ssh-ed25519,ecdsa-sha2-nistp256
  2. Add your pub. key into file ~/.ssh/authorized_keys
  3. service sshd restart

Bug Fixes

1. Add/Edit index operations fixed (#1692)

The core of the problem here is related to the fact that MongoDB does not have an edit index feature.

From MongoDB docs:

To modify an existing index, you need to drop and recreate the index.
Source: https://docs.mongodb.com/manual/tutorial/manage-indexes/#modify-an-index

This means that if the re-create index fails, you end up with a dropped index.

Solution:
In the case of re-create index fails, Robo 3T will try to create the old "dropped". We will consider this option.

We have also implemented a warning message informing the user about this:

Download

Download Robo 3T 1.4, our best version of Robo 3T.

Enjoy!

Follow us on Twitter (@Robo 3T) to be notified about the future releases. Please submit any issues or questions to our GitHub.