Releases: ImperialLabs/slapi
Exec Rework, Better Help, and Bug Fixes
Implemented enhancements:
- SLAPI API Plugin: Dynamic Port Assignment #60
- Dynamic ports #61 (TheFynx)
- Docker timeouts #59 (TheFynx)
Fixed bugs:
- SLAPI API Plugin: Dynamic Port Assignment #60
- Api exec rework #62 (TheFynx)
- Dynamic ports #61 (TheFynx)
- Docker timeouts #59 (TheFynx)
Closed issues:
0.1.1 (2017-06-07)
Fixed bugs:
Closed issues:
Merged pull requests:
- Update Help #56 (aaronblythe)
0.1.0 (2017-03-28)
Closed issues:
Merged pull requests:
Bug Fixes and Better Help
Slapi - Initial Release
Slapi
This is the MVP release of our Docker based bot. This bot is built with the idea that anything in a container or an API can be a plugin.
This is our idea of how a bot should be, the language you use shouldn't matter.
See README on how to get started quickly.
API
SLAPI has several API endpoints available to plugins and/or applications.
See more in depth documentation here
- Chat:
- Speak: Simple post to chat options
- Attachment: Formatted Data posted to chat (Title, Text)
- Emote: Post to chat as emote
- Ping: receive a pong
- Brain:
- Save: Save data into bot brain
- Delete: Delete data from bot brain
- Query_Key: Search for a key value in bot brain
- Query Hash: Search for all keys in bot brain, each plugin has it's own hash
- Plugin:
- Reload: Can call a reload of plugins without restarting the bot. Update you plugin right from chat!
Brain
Slapi utilizes Redis for the bot brain.
Brain is only accessible via API for plugins in this phase, eventually bot config and even plugin config may be pushed into the brain.
See more in depth documentation here
Plugins
Slapi has 3 different types of plugin options.
See more in depth documentation here
- Script:
- Allows just utilizing a simple script as a plugin
- Currently supports the following languages: Shell/Bash, Ruby, Python, NodeJS
- Has two data options
- Simple: passes the
hello world
from@bot say hello world
to container as exec - All: passes the entire json blob to container as exec.
- Simple: passes the
- Container:
- Allows the use of any language or app that can run in docker on linux
- Has two data options
- Simple: passes the
hello world
from@bot say hello world
to container as exec - All: passes the entire json blob to container as exec.
- Simple: passes the
- API:
- Allows use of anything that can be called by API
- Requires to specific endpoints for Slapi
- Info Endpoint: Provide the data to build the bot help
- Command Endpoint: Configurable endpoint for Slapi to post a json payload to with all the information from slack
MVP Lite
90% MVP Solution
Missing:
- API Plugin Capability
Included:
-
Script Type Plugins
- Supported Languages
- Shell
- Ruby
- NodeJS
- Python
- Supported Languages
-
Container Type Plugins
- Supported Langauges
- Whatever you can run in docker
- Supported Langauges
-
Brain for storing Hash { key: value }
- Accessed via API Docs
-
Chat API for External Plugins
-
Complete Refactor of Code
- Actual rspec tests
- Cleaner and more readable code
First Container/Running Release
This marks the first build of SLAPI which will enable you to install the bot, run it in slack, interact at a basic level (aka @bot ping
), and write basic script or container based plugins.
Please see readme for any specifics and https://imperiallabs.github.io/plugins_landing.html for seeing how to do Script or Container based plugins. (Also look at the https://github.com/ImperialLabs/slapi/tree/master/examples for most up to date configs)