Skip to content

FEAT: Connection Debugger #2377

@rathboma

Description

@rathboma

Sometimes it's not clear why Beekeeper Studio can't connect to your database.

We should have a connection debugger built in to the connection screen.

Goal of the debugger

The goal is to identify WHERE in the connection sequence problems are occurring. Users are trying to learn if the problem is - DNS, port not open, firewall issue, driver issue, authentication issue, or something else.

One very specific use case will be telling folks why localhost doesn't work, but 127.0.0.1 does work.

This is also great debugging information to be added to issues.

What the debugger shows

It should show the following things in a sequence. Each step should have a timestamp. It's similar to the visual style of GitHub actions, or any other CI tool

  1. Whether ipv4 is supported, whether ipv6 is supported (on the local machine)
  2. IF SSH enabled:
    • Whether the SSH port can be probed, and is resolvable
  3. DNS resolution of the hostname to IP address, and specify the order in which connection will happen (the order they are resolved in - dns: default to verbatim=true in dns.lookup() nodejs/node#39987)
  • If using SSH tunnel, this should happen as an SSH command of some sort
  1. IF using SSH: Whether the local tunnel server starts successfully and connects to the remote port
  2. Whether Beekeeper Studio can probe the remote TCP port using the hostname, and using the IP addresses bound to the domain name (if no SSH tunnel being used)
  3. Whether the <database driver> can establish a connection to the port
  • if this fails, but the above TCP probe succeeds, then it should probably mention that maybe they should try the IP address directly
  1. Whether authentication works with the provided credentials
  2. Whether the test query can run

Connection Debugger 2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions