10. Command Bundles

Bundles (or “command bundles”) are the packaging unit for collections of one or more commands. They are sets of related commands that, when installed in Gort, may be executed by users from any connected (and allowed) chat service.

10.1. Bundle Configurations

A bundle configuration is a YAML-formatted document that describes a single bundle, including its name, description, version, container image, and one or more commands. Additionally, each command definition includes a name, description, and which binary in the container to execute when the command is triggered by a user.

Tip

See Bundle Configurations for more information.

10.2. Permissions and Rules

Importantly, each command also includes one or more rules, which allows operators fine-grained control over who is able to execute chat commands, extending even to control over particular invocations of chat commands.. Permissions are namespaced to the bundle they originate from, so installing a bundle’s permissions will never conflict with any existing rules. Except for admin, permissions are never automatically assigned to users.

Tip

See Permissions and Rules for more information.

10.3. Writing a Command Bundle

Each references a single Docker container image that contains all the binaries and other dependencies for executing one or more commands. They also include some data about the commands, including a small amount of documentation and other metadata.

Tip

See Writing a Command Bundle for more information.

10.4. Managing Bundles

Bundles can be installed into Gort by an administrator (or any user with the manage_commands permission) using the gort command-line utility.

Tip

See Managing Bundles for more information.