* Add a new db engine
* Add tests for new engine
* Update tsh db subcommands
* Refactor error message and suggestions for unsupported tsh commands
* Add dynamodb to test plan
* Add AWS external ID to db config and update protos
* Fix matchers not being printed in err message
* Add helpful message when access is denied to db connect
* Add test for converting command errors
* Simplify error message when access to db is denied
* Update lib/client/db/dbcmd/dbcmd_test.go
Co-authored-by: Marek Smoliński <marek@goteleport.com>
* Remove unnecessary cmd.Run in test
* Fix import order
* Add full error to message
* Fix formatting of github suggestion
* Add troubleshooting link
* Update troubleshooting link to use subheading
Co-authored-by: Marek Smoliński <marek@goteleport.com>
* clusters.CreateGateway: Trim spaces when building a CLI command
If cliCommand.Env is empty, the returned command has an empty space at
the front.
* Do not pass TargetSubresourceName when fetching certs for gateway
Since we want to be able to freely specify the db name after the gateway
creation, let's not pass the db name when creating the gateway to show
the intent more clearly.
* Make CLICommand a method on Gateway rather than a field
* Extract getting cluster by resource URI to Storage
Create spans for all public facing TeleportClient,
ProxyClient, and NodeClient methods. This makes
correlating spans easier to reason about when
looking at `tsh` traces. As a result of creating
spans, some additional context propagation is
required as well to ensure that spans are linked
properly.
This also removes the unused `quiet` argument from
`ConnectToCluster`. It's usage was not consistent
by existing callers, and it was ignored, so in order
to avoid confusion in future calls, it was removed.
#12241
`mongosh` doesn't support `--tlsUseSystemCA` and `--tlsCAFile` combination passed together and fails CA validation with error when the required CA is not in the system store
```
MongoServerSelectionError: unable to verify the first certificate
```
This change makes those flags mutually exclusive.
* Extract dbcmd.go into a new package under lib/client/db/dbcmd
* Use dbcmd to generate CliCommand for gateways
* Return relative db command from tsh daemon
* Add WithTolarateMissingCLIClient func to dbcmd