With the proper security permissions requested from the user (at plugin install time), a plugin can:
- CRUD (Create, Read, Update, Delete) operations on the following items:
- Connections
- Connection Groups
- Port Forwards
- Snippets
- Launch background JuiceSSH sessions to an existing connection
- Attach to a background JuiceSSH session (show a terminal)
- Interact with JuiceSSH sessions to send commands and receive the output of the command (only on sessions the plugin initiated)
- Disconnect sessions
For security reasons - plugins are not able to read/modify identities (passwords/private keys).
The above options allow plenty of clever plugin implementations such as:
- Plugins that sync your connection list with a third party provider (eg: DigitalOcean or RackSpace).
- Plugins that run a command on a periodic basis and graph the results (eg: Performance graphing).
- Automation plugins that perform actions based on geographic location etc.
- Plugins that perform an action, then launch an SSH session (such as port knocking or wake-on-lan).
- Plugins that provide GUI interfaces around CLI applications (eg: A list of /etc/init.d services that can be stopped/started/restarted)
If you have an idea for a plugin and are not sure whether it's technically possible, or if you want to create a plugin but are short of ideas please feel free to join our G+ community where we have a forum dedicated to plugin development:
https://plus.google.com/communities/110428419162168502506