hashicorp / hashicorp/boundary
Improve user experience: Simplified connection to a target with boundary
- Dominant language
- Go
- Stars
- 4.1k
- Forks
- 317
- Avg merge
- 5h 10m
- Merged PRs (30d)
- 1
Description
**Is your feature request related to a problem? Please describe.**
Our feature request is not a technical problem. It aims to improve the user experience for a user that would like to connect to a database, a virtual machine or a Kubernetes cluster using boundary. The current user experience requires several commands to connect to a database (at least 6), as shown in the attached diagram. This can be difficult for users to get to grips with. The use of the CLI can be a bit improved.
**Describe the solution you'd like**
We're opening this issue to propose an improvement to Boundary's user interface to make the process of connecting to services simpler and more accessible. Here's our proposal to simplify authentication to a service using three maximum commands:
- _Authentication command_: this first command would authenticate a user to an organization. It would list all organizations and their authentication methods. The user could choose the auth method to use. It would then authenticate the user by requesting his password according to the auth method requested. Both the organization name and the username could be assigned values in a separate configuration file.
- _Command to list targets_: this second command would list all targets by executing, for example, boundary list targets. There would be no need to specify the boundary URL or project IDs.
- _Connection command_: this command would be the same as the existing one. The only difference would be to implement a more user-friendly target name. To differentiate the targets among the projects, its name would appear under the scope name and a unique name which identifies the target.
This approach would reduce the number of commands required and improve the overall experience of connecting to services via Boundary.
Here is an example of the use of the commands and the output targeted :
```bash
$ boundary authenticate
# Output:
[1]: auth-method-1
[2]: auth-method-2
[3]: auth-method-3
Type your chosen auth-method [1/2/3]: 1
$ boundary targets list
# Output :
scope/target-name-1
scope/target-name-2
...
$ boundary connect scope/target-name-1
```
**Describe alternatives you've considered**
The alternative we considered is doing a wrapper around boundary to achieve this user experience.
**Explain any additional use-cases**
N/A
**Additional context**
Here is the schema of the current workflow compared to the one we target :

Contributor guide
Assessment
This issue has not been assessed yet.