Tat Command Line Interface.
See Tat Engine for more information: https://github.com/tat/tatcli
git clone https://github.com/ovh/tatcli.git && cd tatcli
go get && go build && ./tatcli -h
Usage:
tatcli [command]
Available Commands:
config Config commands: tatcli config --help
group Group commands: tatcli group --help
message Manipulate messages: tatcli message --help
presence Presence commands: tatcli presence --help
socket Socket commands: tatcli socket --help
stats Stats commands (admin only): tatcli stats --help
topic Topic commands: tatcli topic --help
update Update tatcli to the latest release version: tatcli update
user User commands: tatcli user --help
version Display Version of tatcli and tat engine if configured : tatcli version
help Help about any command
Flags:
-c, --configFile="$HOME/.tatcli/config.json": configuration file, default is $HOME/.tatcli/config.json
-h, --help=false: help for tatcli
-p, --password="": password, facultative if you have a $HOME/.tatcli/config.json file
-t, --pretty=false: Pretty Print Json Output
-l, --sslInsecureSkipVerify=false: Skip certificate check with SSL connection
--url="": URL Tat Engine, facultative if you have a $HOME/.tatcli/config.json file
-u, --username="": username, facultative if you have a $HOME/.tatcli/config.json file
-v, --verbose=false: verbose output
Use "tatcli [command] --help" for more information about a command.
Config commands: tatcli config <command>
Usage:
tatcli config [command]
Aliases:
config, c
Available Commands:
template Write a template configuration file in $HOME/.tatcli/config.json: tatcli config template
show Show Configuration: tatcli config show
Flags:
-h, --help=false: help for config
Global Flags: see tatcli -h
Use "tatcli config [command] --help" for more information about a command.
Group commands: tatcli group <command>
Usage:
tatcli group [command]
Aliases:
group, g
Available Commands:
list List all groups: tatcli group list <skip> <limit>
create create a new group: tatlic group create <groupname> <description>
addUser Add Users to a group: tacli group addUser <groupname> <username1> [<username2> ... ]
deleteUser Delete Users from a group: tacli group deleteUser <groupname> <username1> [<username2> ... ]
addAdminUser Add Admin Users to a group: tacli group addAdminUser <groupname> <username1> [<username2> ... ]
deleteAdminUser Delete Admin Users from a group: tacli group deleteAdminUser <groupname> <username1> [<username2> ... ]
Flags:
-h, --help=false: help for group
Global Flags: see tatcli -h
Use "tatcli group [command] --help" for more information about a command.
Manipulate messages: tatcli message <command>
Usage:
tatcli message [command]
Aliases:
message, m, msg
Available Commands:
list List all messages on one topic: tatcli msg list <Topic> <skip> <limit>
add tatcli message add [--dateCreation=timestamp] <topic> <my message>
reply Reply to a message: tatcli message reply <topic> <inReplyOfId> <my message...>
bookmark Bookmark a message to a topic: tatcli message bookmark /Private/username/bookmarks/sub-topic idMessage
delete Remove a message (or bookmark) from Private Topic: tatcli message delete <idMessage>
update Update a message (if it's enabled on topic): tatcli message update <topic> <idMessage> <my message...>
task Create a task from one message to a topic: tatcli message task /Private/username/tasks/sub-topic idMessage
untask Remove a message from tasks: tatcli message untask /Private/username/tasks idMessage
like Like a message: tatcli message like <idMessage>
unlike Unlike a message: tatcli message unlike <idMessage>
label Add a label to a message: tatcli message label <idMessage> <colorInHexa> <my Label>
unlabel Remove a label from a message: tatcli message unlabel <idMessage> <my Label>
tag Add a tag to a message (user system with rights only): tatcli message tag <idMessage> <my Tag>
untag Remove a tag from a message (user system with rights only): tatcli message untag <idMessage> <myTag>
read List all messages on one public topic (read only): tatcli msg read <Topic> <skip> <limit>
Flags:
-h, --help=false: help for message
Global Flags: see tatcli -h
Use "tatcli message [command] --help" for more information about a command.
List all messages of a topic: tatcli msg list <Topic> <skip> <limit>
Usage:
tatcli message list [flags]
Aliases:
list, l
Flags:
--allIDMessage="": Search in All ID Message (idMessage, idReply, idRoot)
--andLabel="": Search by label (and) : could be labelA,labelB
--andTag="": Search by tag (and) : could be tagA,tagB
--dateMaxCreation="": Search by dateMaxCreation (timestamp)
--dateMaxUpdate="": Search by dateMaxUpdate (timestamp)
--dateMinCreation="": Search by dateMinCreation (timestamp)
--dateMinUpdate="": Search by dateMinUpdate (timestamp)
-h, --help=false: help for list
--idMessage="": Search by IDMessage
--inReplyOfID="": Search by IDMessage InReply
--inReplyOfIDRoot="": Search by IDMessage IdRoot
--label="": Search by label: could be labelA,labelB
--limitMaxNbReplies="": In onetree mode, filter root messages with min or equals maxNbReplies
--limitMinNbReplies="": In onetree mode, filter root messages with more or equals minNbReplies
--notLabel="": Search by label (exclude): could be labelA,labelB
--notTag="": Search by tag (exclude) : could be tagA,tagB
--tag="": Search by tag : could be tagA,tagB
--text="": Search by text
--topic="": Search by topic
--treeView="": Tree View of messages: onetree or fulltree. Default: notree
--username="": Search by username : could be usernameA,usernameB
Presence commands: tatcli presence [<command>]
Usage:
tatcli presence [command]
Aliases:
presence, p
Available Commands:
add Add a new presence on one topic with status (online, offline, busy): tatcli presence add <topic> <status>
list List all presences on one topic: tatcli presence list <topic> [<skip>] [<limit>]
Flags:
-h, --help=false: help for presence
Global Flags: see tatcli -h
Socket commands: tatcli socket [<command>]
Usage:
tatcli socket [command]
Aliases:
socket, s
Available Commands:
dump Dump websocket admin variables: tatcli socket dump
messages Open websocket and get events messages on one or many topics: tatcli socket messages <<topic>|all|onetree|fulltree>> [topic]...
messagesNew Open websocket and get events on new messages on one or many topics: tatcli socket messagesNew <<topic>|all>> [topic]...
interactive Interactive mode Websocket: tatcli socket interactive (or tatcli socket i)
users Open websocket and get events users (admin only): tatcli socket users
Flags:
-h, --help=false: help for socket
Global Flags: see tatcli -h
Topic commands: tatcli topic [command]
Usage:
tatcli topic [command]
Aliases:
topic, t
Available Commands:
list List all topics: tatcli topic list [<skip>] [<limit>], tatcli topic list -h for see all criterias
create Create a new topic: tatcli create <topic> <description of topic>
delete Delete a new topic: tatcli delete <topic>
addRoUser Add Read Only Users to a topic: tatcli topic addRoUser [--recursive] <topic> <username1> [username2]...
addRwUser Add Read Write Users to a topic: tatcli topic addRwUser [--recursive] <topic> <username1> [username2]...
addAdminUser Add Admin Users to a topic: tatcli topic addAdminUser [--recursive] <topic> <username1> [username2]...
deleteRoUser Delete Read Only Users from a topic: tatcli topic deleteRoUser [--recursive] <topic> <username1> [username2]...
deleteRwUser Delete Read Write Users from a topic: tatcli topic deleteRwUser [--recursive] <topic> <username1> [username2]...
deleteAdminUser Delete Admin Users from a topic: tatcli topic deleteAdminUser [--recursive] <topic> <username1> [username2]...
addRoGroup Add Read Only Groups to a topic: tatcli topic addRoGroup [--recursive] <topic> <groupname1> [<groupname2>]...
addRwGroup Add Read Write Groups to a topic: tatcli topic addRwGroup [--recursive] <topic> <groupname1> [<groupname2>]...
addAdminGroup Add Admin Groups to a topic: tatcli topic addAdminGroup [--recursive] <topic> <groupname1> [groupname2]...
deleteRoGroup Delete Read Only Groups from a topic: tatcli topic deleteRoGroup [--recursive] <topic> <groupname1> [<groupname2>]...
deleteRwGroup Delete Read Write Groups from a topic: tatcli topic deleteRwGroup [--recursive] <topic> <groupname1> [<groupname2>]...
deleteAdminGroup Delete Admin Groups from a topic: tatcli topic deleteAdminGroup [--recursive] <topic> <groupname1> [<groupname2>]...
addParameter Add Parameter to a topic: tatcli topic addParameter [--recursive] <topic> <key>:<value> [<key2>:<value2>]...
deleteParameter Remove Parameter to a topic: tatcli topic deleteParameter [--recursive] <topic> <key> [<key2>]...
parameter Update param on one topic: tatcli topic param [--recursive] <topic> <maxLength> <canForceDate> <canUpdateMsg> <canDeleteMsg> <canUpdateAllMsg> <canDeleteAllMsg> <isROPublic>
Flags:
-h, --help=false: help for topic
Global Flags: see tatcli -h
Stats commands (admin only): tatcli stats [<command>]
Usage:
tatcli stats [command]
Aliases:
stats, stat
Available Commands:
count Count all messages, groups, presences, users, groups, topics: tatcli stats count
distribution Distribution of messages per topics: tatcli stats distribution
dbstats DB Stats: tatcli stats dbstats
dbServerStatus DB Stats: tatcli stats dbServerStatus
dbReplSetGetConfig DB Stats: tatcli stats dbReplSetGetConfig
dbReplSetGetStatus DB Stats: tatcli stats dbReplSetGetStatus
dbCollections DB Stats on each collection: tatcli stats dbCollections
dbSlowestQueries DB Stats slowest Queries: tatcli stats dbSlowestQueries
instance Info about current instance of engine
Flags:
-h, --help=false: help for stats
Global Flags: see tatcli -h
tatcli update
Usage:
tatcli update [flags]
tatcli update [command]
Aliases:
update, up
Available Commands:
snapshot Update tatcli to latest snapshot version: tatcli update snapshot
Flags:
-h, --help=false: help for update
Global Flags: see tatcli -h
User commands: tatcli user <command>
Usage:
tatcli user [command]
Aliases:
user, u
Available Commands:
list List all users: tatcli user list [<skip>] [<limit>]
me Get Information about you: tatcli user me
contacts Get contacts presences since n seconds: tatcli user contacts <seconds>
addContact Add a contact: tatcli user addContact <contactUsername>
removeContact Remove a contact: tatcli user removeContact <contactUsername>
addFavoriteTopic Add a favorite Topic: tatcli user addFavoriteTopic <topicName>
removeFavoriteTopic Remove a favorite Topic: tatcli user removeFavoriteTopic <topicName>
enableNotificationsTopic Enable notifications on a topic: tatcli user enableNotificationsTopic <topicName>
disableNotificationsTopic Disable notifications on a topic: tatcli user disableNotificationsTopic <topicName>
addFavoriteTag Add a favorite Tag: tatcli user addFavoriteTag <tag>
removeFavoriteTag Remove a favorite Tag: tatcli user removeFavoriteTag <tag>
add Add a user: tatcli user add <username> <email> <fullname>
reset Ask for Reset a password: tatcli user reset <username> <email>
resetSystemUser Reset password for a system user (admin only): tatcli user resetSystemUser <username>
convert Convert a user to a system user (admin only): tatcli user convert <username> <canWriteNotifications>
archive Archive a user (admin only): tatcli user archive <username>
rename Rename username of a user (admin only): tatcli user rename <oldUsername> <newUsername>
update Update Fullname and Email of a user (admin only): tatcli user update <username> <newEmail> <newFullname>
setAdmin Grant user to Tat admin (admin only): tatcli user setAdmin <username>
verify Verify account: tatcli user verify [--save] <username> <tokenVerify>
check Check Private Topics and Default Group on one user (admin only): tatcli user check <username> <fixPrivateTopics> <fixDefaultGroup>
Flags:
-h, --help=false: help for user
Global Flags: see tatcli -h
tatcli version
Usage:
tatcli version [flags]
Aliases:
version, v
Flags:
-h, --help=false: help for version
--versionNewLine=true: New line after version number. If true, display Version Engine too
Global Flags: see tatcli -h
Config file is under $HOME/.tatcli/config.json You can create it with this command:
tatcli config template
Template is:
{
"username":"myUsername",
"password":"myPassword",
"url":"http://urltat:port"
}
tatcli message add /topic my message
If you are a system user
, you can force date creation. Date as timestamp
tatcli message add --dateCreation=11111 /topic my message
tatcli message reply idOfMessage my message
tatcli message like idOfMessage
tatcli message unlike idOfMessage
tatcli message label idOfMessage color myLabel
tatcli message unlabel idOfMessage myLabel
Only for system user
on his messages
tatcli message tag idOfMessage myTag
Only for system user
on his messages
tatcli message untag idOfMessage myTag
tatcli message bookmark /Private/username/Bookmarks/subtopic idOfMessage
tatcli message unbookmark idOfMessage
tatcli message task /Private/username/Tasks idOfMessage
tatcli message untask /Private/username/Tasks idOfMessage
tatcli message list /topic
tatcli message list /topic 0 10
tatcli message read /topic
tatcli message read /topic 0 10
tatcli user add username email fullname
tatcli user verify username tokenVerify
For saving configuration in $HOME/.tatcli/config.json file
tatcli user verify --save username tokenVerify
tatcli user reset username email
tatcli user me
tatcli user contacts 15
tatcli user addFavoriteTag myTag
tatcli user removeFavoriteTag myTag
tatcli user addFavoriteTopic /topic/sub-topic
tatcli user removeFavoriteTopic /topic/sub-topic
Notifications are by default enabled on topic
tatcli user enableNotificationsTopic /topic/sub-topic
tatcli user disableNotificationsTopic /topic/sub-topic
tatcli user list
with groups (admin only):
tatcli user list --withGroups
tatcli user convert usernameToConvertSystem flagCanWriteOnNotificationsTopics
flagCanWriteOnNotificationsTopics could be true or false
tatcli user setAdmin usernameToGrant
tatcli user archive usernameToArchive
tatcli user rename oldUsername newUsername
tatcli user update username newEmail newFirstname newLastname
Check Private Topics and Default Group on one user:
tatcli user check <username> <fixPrivateTopics> <fixDefaultGroup>
Example :
tatcli check username true true
tatcli group add groupname description of group
tatcli group addUser groupname username
tatcli group deleteUser groupname username
tatcli topic add /topic topic description
tatcli topic delete /topic
tatcli topic list
tatcli topic list skip limit
tatcli topic list skip limit true
if true, return nb unread messages
tatcli topic addRoUser /topic username
tatcli topic addRoUser /topic username1 username2
tatcli topic addRwUser /topic username
tatcli topic addRwUser /topic username1 username2
tatcli topic addAdminUser /topic username
tatcli topic addAdminUser /topic username1 username2
tatcli topic deleteRoUser /topic username
tatcli topic deleteRoUser /topic username1 username2
tatcli topic deleteRwUser /topic username
tatcli topic deleteRwUser /topic username1 username2
tatcli topic deleteAdminUser /topic username
tatcli topic deleteAdminUser /topic username1 username2
tatcli topic addRoGroup /topic groupname
tatcli topic addRoGroup /topic groupname1 groupname2
tatcli topic addRwGroup /topic groupname
tatcli topic addRwGroup /topic groupname1 groupname2
tatcli topic addAdminGroup /topic groupname
tatcli topic addAdminGroup /topic groupname1 groupname2
tatcli topic deleteRoGroup /topic groupname
tatcli topic deleteRoGroup /topic groupname1 groupname2
tatcli topic deleteRwGroup /topic groupname
tatcli topic deleteRwGroup /topic groupname1 groupname2
tatcli topic deleteAdminGroup /topic groupname
tatcli topic deleteAdminGroup /topic groupname1 groupname2
tatcli socket interactive
Returns a full message struct:
tatcli socket messages <<topic>|all>> [topic]...
Returns a full message struct, with replies:
tatcli socket messages <<topic>|all|onetree|fulltree>> [topic]...
Example:
tatcli socket messages onetree all
tatcli socket messages fulltree all
tatcli socket messages fulltree /TopicA/subTopicA
Returns only topic name when a new message is created on this topic
tatcli socket messagesNew <<topic>|all>> [topic]...
tatcli socket writePresence <status> <topic>...
tatcli socket presences <<topic>|all>> [topic]...
tatcli socket users
Tatcli is written in Go 1.5, using the experimental vendoring mechanism introduced in this version. Make sure you are using at least version 1.5.
mkdir -p $GOPATH/src/github.com/ovh
cd $GOPATH/src/github.com/ovh
git clone git@github.com:ovh/tatcli.git
cd $GOPATH/src/github.com/ovh/tatcli
export GO15VENDOREXPERIMENT=1
go build
You've developed a new cool feature? Fixed an annoying bug? We'd be happy to hear from you! Make sure to read CONTRIBUTING.md before.