Getting Started CLI
Introduction
StreamsDB comes with a command line interface tool called sdbcli. The tool is distributed as a docker image.
Prerequisite
Installation
The easiest way to use the sdbcli docker image is to create an alias:
alias sdbcli='docker run --env="SDB_HOST=$SDB_HOST"
--volume="$HOME:/root/"
--network="host"
--interactive
--tty
--rm
streamsdb/sdbcli'
To keep aliases between sessions, you can save them in your user’s shell configuration profile file. For example, $HOME/.bashrc
, $HOME/.zshrc
or $HOME/.config/fish/config.fish
depending on your shell.
Connection string
By default sdbcli will connect to a local instance of StreamsDB. You can change this behaviour by providing a connection string to the SDB_HOST
environment variable or the --host
flag.
SDB_HOST environment variable
export SDB_HOST="sdb://username:password@us-west.streamsdb.io:443/database_name"
host flag
sdbcli --host="sdb://username:password@us-west.streamsdb.io:443/database_name" <COMMAND>
Login
If the StreamsDB server or database requires authentication, you can specify a username and password in the connection string
or use the login
command.
The login
command will authenticate with the provides username and password and store the authentication token on disk. The token stored on disk will be used for all subsequent commands till the logout command is used.
sdbcli login
The login command will ask for a username and password from stdin. For scripts we recommend to use a connection string with a username and password.
Append to a stream
Use the append
command to write event messages to a stream. Its syntax is sdbcli append <STREAM> <EVENTTYPE> <VALUE>
.
The <STREAM>
argument is the name of the stream, the <EVENTTYPE>
argument is the name of the type of the event and the <VALUE>
argument can either be a string value, or -
to read from STDIN.
Here is an example that appends the message "HELLO WORLD from welcom
stream:
sdbcli append welcome string "HELLO WORLD from $USER"
Alternatively you can use -
to read from STDIN:
echo "HELLO WORLD from $USER" | sdbcli append welcome string -
The append command prints the position of the written message.
Reading from a stream
Use the read
command to read from a stream. Its syntax is sdbcli read <STREAM>
.
sdbcli read stream_name
To specify a read position use the --from
flag:
sdbcli read --from=5 stream_name
The position can also be relative from the end by providing a negative value, where -1
is the last message:
# read last 10 messages from stream_name
sdbcli read --from=-10 stream_name
To follow a stream use the --follow
flag. This will prevent the read
command to exit when there are no more messages available and it will wait indefinitely for new messages to arrive.
# read last message and subscribe to changes
sdbcli read --from=-1 --follow stream_name
List of streams
Use the streams
command to list the streams in the database:
sdbcli streams