Console Client #
The amelie client command starts a console client using connection options.
The amelie login and amelie logout commands can save and manage remote server connection options by a login.
amelie [login] [options]
amelie client [login] [options]
amelie login <login> [options]
amelie logout <login>
The client uses the AMELIE_HOME environment variable to identify its home directory. If the variable is not
provided, it will use ~/.amelie. The home directory contains a login information file and a history file.
The following connection options are supported:
| Argument | Type | Description |
|---|---|---|
| uri | string | Remote server URI (uri or path is mandatory). |
| path | string | Unix socket path. |
| user | string | User name (used to generate one-time token). |
| secret | string | User secret (used to generated one-time token). |
| token | string | Client authentication token (includes user name). |
| tls_capath | string | TLS CA directory path. |
| tls_ca | string | TLS CA certificate file path. |
| tls_cert | string | TLS Client certificate file path. |
| tls_key | string | TLS Client certificate private key file path. |
Execute SQL commands from Pipe #
The client can be run in a pipe mode to execute SQL commands from stdin.
cat file.sql | amelie --uri="http://localhost:3485"
While reading commands in the pipe mode the client will separate input statements using the ; symbol and send each of
them separately. If the input starts with BEGIN, the client will read statements until the closing COMMIT
statement and only then send the transaction for execution.
# connect to the server using the repository unix socket
amelie ./repo
# connect to the server using URI without authentication
amelie --uri="localhost"
amelie --uri="http://localhost:3485"
# connect to the server using TLS with authentication token
amelie --uri="https://localhost:3485" --token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiAidGVzdCIsICJpYXQiOiAxNzI3OTYyMzU3LCAiZXhwIjogMTczNTkxMTE1N30.79g-77QHd82f7cSbeZSXaz4lP_7F3J4bm7EuZOUCmmM"
# connect to the server using TLS, CLI will generate one-time JWT token each time automatically
amelie --uri="https://localhost:3485" --user="test" --secret="test"
# connect to the server using saved credentials, CLI will generate and save JWT token
amelie login home --uri="https://localhost:3485" --user="test" --secret="test"
amelie home
# connect to the server using saved credentials
amelie login home --uri="https://localhost:3485" --token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiAidGVzdCIsICJpYXQiOiAxNzI3OTYyMzU3LCAiZXhwIjogMTczNTkxMTE1N30.79g-77QHd82f7cSbeZSXaz4lP_7F3J4bm7EuZOUCmmM"
amelie home
# connect to the server and send SQL commands for execution
cat file.sql | amelie home
# remove information about the `home` login
amelie logout home