SQL Command arguments which pertain to instantiating a local SqlEngine instance are now global arguments which come before the sql subcommand. This is a breaking change for users of the sql command who pass in the following arguments:
--data-dir
--user
--doltcfg-dir
--privilege-file
--branch-control-file
All of the test changes pertain to moving those arguments, and nothing else. This is by design to ensure we don't have broader impact to the interface.
With this abstraction in place, we can put a different Queryist implementation in place - specifically one which talks to a remotes server - which is the end goal.
See: https://github.com/dolthub/dolt/issues/3922
This allows us to print the command name in error messages and disambiguate cases where `dolt_sql` calls a procedure that corresponds to another dolt command.
This requires commands to specify the max number of positional arguments they expect.
This makes it harder to accidentally accept extra arguments and ignore them.
A remotesapi server running on a cluster replica publishes a JWKS.
Every outbound GRPC call the cluster replica makes includes a JWT signed with a
private key.
remotesapi servers running on cluster replicas require and validate incoming
JWTs for cluster traffic. The set of valid signing keys is taken from the
JWKSes which are published at /.well-known/jwks.json on the standby replica
hosts.
It is possible to configure tls_ca on cluster remotesapi to configure the set
of trusted roots for outbound TLS connections. Because the JWKSes are served
over the same connection, and becuase signed JWTs are not replay resistent, TLS
is recommended for all deployment topologies.