Hal Documentation. Release 1.0. Dan Ryan

Similar documents
Load Balancing Web Servers with OWASP Top 10 WAF in AWS

Introduction to Voltage Secur

User Guide. Admin Guide. r

Way2mint SMS Mobile Terminate (MT) API Guide for HTTP HTTPS

EMPOWER2018 Quick Base + Workato Workjam

Configure Settings and Customize Notifications on FindIT Network Probe

CYAN SECURE WEB Installing on Windows

Load Balancing Nginx Web Servers with OWASP Top 10 WAF in AWS

Open XML Gateway User Guide. CORISECIO GmbH - Uhlandstr Darmstadt - Germany -

DCLI User's Guide. Data Center Command-Line Interface 2.9.1

Configure Recorder in CMS/Acano Call Bridge

DCLI User's Guide. Data Center Command-Line Interface 2.7.0

System Administration

BLUEPRINT TEAM REPOSITORY. For Requirements Center & Requirements Center Test Definition

Security in Confirmit Software - Individual User Settings

Relay. Getting Started

Importing Existing Data into LastPass

Alert Configuration on the Cisco WAP121 and WAP321 Access Point

Service User Manual. Outlook By SYSCOM (USA) May 2nd, Version 1.0. Outlook 2013 Ver.1.0

eshop Installation and Data Setup Guide for Microsoft Dynamics 365 Business Central

Google Sync Integration Guide. VMware Workspace ONE UEM 1902

Administering Jive Mobile Apps for ios and Android

The Events notification plugin PRINTED MANUAL

Click Studios. Passwordstate. Remote Session Launcher. Installation Instructions

DCLI User's Guide. Modified on 20 SEP 2018 Data Center Command-Line Interface

USER GUIDELINES. Q 2. Is it necessary to configure password retrieval question and answer? How can I do that? Q 3. How can I change password?

New Dropbox Users (don t have a Dropbox account set up with your Exeter account)

Two factor authentication for Microsoft Remote Desktop Web Access

EveryonePrint Integration with Equitrac. Configuration Guide. EveryonePrint Integration with Equitrac Page 1 of 14

Load Balancing Web Servers with OWASP Top 10 WAF in Azure

Service User Manual. Outlook By SYSCOM (USA) May 2, Version 2.0. Outlook 2007 Ver. 2.0

LiveBox Manual IOS APPLICATION V (465)

MAGNUM-SDVN Security Administration Manual

EasyCrypt passes an independent security audit

CONTROL Installation and Basic-configuration Guide Contents

Configuration Tab. Cisco WebEx Messenger Administration Guide 1

802.11g Super-G 108Mb Wireless Access Point Quick Installation Guide

django-fabric Documentation

TangeloHub Documentation

VMware Horizon View Deployment

INSTALLATION GUIDE Spring 2017

Administrator Manual. Last Updated: 15 March 2012 Manual Version:

ChatBlazer 8 Site Administrator Usage Guide

Libelium Cloud Hive. Technical Guide

Adding your IMAP Mail Account in Outlook 2013 on Windows

Script.byu.edu SharePoint Instructions

DigiCert User Guide (GÉANT)

Persistent Data Transfer Procedure

XMPP testing with Escalus

FRONT USER GUIDE Getting Started with Front

VMware AirWatch Google Sync Integration Guide Securing Your Infrastructure

AWS Remote Access VPC Bundle

Protection! User Guide. A d m i n i s t r a t o r G u i d e. v L i c e n s i n g S e r v e r. Protect your investments with Protection!

USER GUIDE for Smartsheet VERSION 1, NOVEMBER 2014

I, J, K. Lightweight directory access protocol (LDAP), 162

Qualys Cloud Platform (VM, PC) v8.x Release Notes

Zoho Integration. Installation Manual Release. 1 P a g e

Table of Contents. I. How do I register for a new account? II. How do I log in? (I already have a MyJohnDeere.com account.)

Please Note To use this extension, you must have UVdesk account. You can create a free UVdesk account here.

owncloud Android App Manual

Service User Manual. Outlook By SYSCOM (USA) May 7, Version 2.0. Outlook 2003 Ver. 2.0

Administrator Manual. Last Updated: 15 March 2012 Manual Version:

Administering Jive Mobile Apps

Software Manual Net Configuration Tool Rev. 1.01

DCLI User's Guide. Data Center Command-Line Interface

System Setup. Accessing the Administration Interface CHAPTER

VII. Corente Services SSL Client

Munroe Regional Medical Center

Load Balancing Nginx Web Servers with OWASP Top 10 WAF in Azure

Connecting Buildxact with MYOB

User Guide. Version R92. English

Engage - MS CRM Integration Installation and Setup Guide

Using vrealize Operations Tenant App as a Service Provider

VMware AirWatch Google Sync Integration Guide Securing Your Infrastructure

Salesforce Integration User Guide. Cvent, Inc 1765 Greensboro Station Place McLean, VA

Introduction to application management

Parallels Remote Application Server

Configuring User VPN For Azure

Wimba Classroom Version 6.1 System Administrator Guide

Step-by-Step Configuration

GEL Scripts Advanced. Your Guides: Ben Rimmasch, Yogesh Renapure

BLACKBERRY SPARK COMMUNICATIONS PLATFORM. Getting Started Workbook

SafeConsole On-Prem Install Guide. version DataLocker Inc. July, SafeConsole. Reference for SafeConsole OnPrem

WebAdmin IceWarp WebAdmin Manual

SurePassID Local Agent Guide SurePassID Authentication Server 2016

Home center SMS integration

Connector. Installing and Configuring the Client

Meeting Manager and CTS-Manager s

XMPP Instant Messaging Evaluation Guide

Integration Guide. LoginTC

User Guide. Version R94. English

Authentication CS 4720 Mobile Application Development

Logging into the Firepower System

Student . For undergraduates and taught postgraduates, alumni and former staff

Team Foundation Server Integration using QTfsListener

Crestron Mercury Tabletop UC Audio Conference Console for Microsoft Teams

Configuring Vulnerability Assessment Devices

This walkthrough assumes you have completed the Getting Started walkthrough and the first lift and shift walkthrough.

MAINTENANCE HELPDESK SYSTEM USER MANUAL: CUSTOMER (STAFF) VERSION 2.0

MANTRA REGISTERED DEVICE SERVICE WINDOWS MANTRA SOFTECH INDIA PVT LTD

Transcription:

Hal Documentation Release 1.0 Dan Ryan July 16, 2016

Contents 1 Configuration 3 2 Adapters 5 2.1 Campfire................................................. 5 2.2 Hipchat.................................................. 5 2.3 IRC.................................................... 6 2.4 Slack................................................... 7 2.5 Shell................................................... 8 3 Stores 11 3.1 Memory................................................. 11 3.2 Redis................................................... 11 4 Handlers 13 5 Appendices 15 i

ii

Contents: Contents 1

2 Contents

CHAPTER 1 Configuration Hal doesn t have any command line options. Instead we utilize environment variables exclusively, allowing you to use hal in more flexible ways. PORT=9000 HAL_NAME=hal HAL_ADAPTER=shell HAL_LOG_LEVEL=info # The port on which the HTTP server will listen. # Default: 9000 # The name to which Hal will respond. # Default: hal # The adapter name. # Default: shell # Options: shell, slack, irc # The level of logging desired. # Default: info # Options: info, debug, warn, error, critical 3

4 Chapter 1. Configuration

CHAPTER 2 Adapters Adapters are how hal integrates with your chat services. 2.1 Campfire Coming soon! 2.1.1 Usage 2.1.2 Configuration 2.2 Hipchat 2.2.1 Setup Hal uses Hipchat s XMPP gateway and so requires a user account to integrate with Hipchat. Be sure to create one before configuring the adapter. You will need the XMPP credentials, which can be found at https://my.hipchat.com/account/xmpp. 2.2.2 Usage // blank import to register adapter import _ "github.com/danryan/hal/adapter/hipchat" 2.2.3 Configuration Set the following environment variables according to your needs. HAL_ADAPTER To use the Hipchat adapter, set HAL_ADAPTER to hipchat. 5

HAL_HIPCHAT_USER The username is the first part of your XMPP JID before the @ sign. E.g., if your JID is 134273_971874@chat.hipchat.com, then HAL_HIPCHAT_USER should be 134273_971874. Default: none Required: false Example: HAL_HIPCHAT_USER=134273_971874 HAL_HIPCHAT_PASSWORD The password is the same as the Hipchat user s password. Default: none Required: true Example: HAL_HIPCHAT_PASSWORD=supersekretpassword HAL_HIPCHAT_ROOMS This is a comma-separated list of rooms to join. Note that Hipchat has two ways of specifying rooms: a humanreadable format (ex. general); and an XMPP format (ex. 134273_general). Hal expects the former humanreadable format at this time due to a limitation of the third-party Hipchat package presently used. The rooms are case sensitive as well. Hal will not fail if no rooms are specified, though hal will also not join any rooms if this is left blank. Default: none Required: false Example: HAL_HIPCHAT_ROOMS="general,room with spaces,random" HAL_HIPCHAT_RESOURCE This is an optional setting. The default, bot, prevents the channel history from being sent and thus prevents hal from parsing possibly already handled messages. If changed from the default, bot, channel history will be sent. It is recommended that the default be left unless you need channel history. Default: bot Required: false Example: HAL_HIPCHAT_RESOURCE=something-other-than-bot 2.3 IRC A simple adapter for use with any IRC server. 2.3.1 Setup You will need an IRC user and preferred server. If your server requires a password, be sure to provide it using the environment variable below. 6 Chapter 2. Adapters

2.3.2 Usage // blank import to register adapter import _ "github.com/danryan/hal/adapter/irc" 2.3.3 Configuration HAL_ADAPTER=irc # The adapter # Default: shell HAL_IRC_USER=blah # IRC username # Default: none (required) HAL_IRC_PASSWORD=sekret # IRC password if required # Default: none (optional) HAL_IRC_NICK=hal # IRC nick # Default: HAL_IRC_USER (optional) HAL_IRC_SERVER=irc.freenode.net # IRC server # Default: none (required) HAL_IRC_PORT=6667 # IRC server port # Default: 6667 HAL_IRC_CHANNELS="#foo,#bar" # Comma-separate list of channels to join after connecting # Default: none (required) HAL_IRC_USE_TLS=false # Use an encrypted connection 2.4 Slack 2.4.1 Setup By default, Hal uses Slack s hubot integration. Currently Hal will listen in on all public channels, or a custom list of channels if HAL_SLACK_CHANNELS is declared. Private groups require the IRC gateway to work around a current limitation of the Slack API. See Using IRC Gateway. The IRC gateway is the author s preferred method as your bot will automatically join all channels and groups to which it belongs, and removing Hal from a room is as simple as a /kick hal command. Some advanced features like attachment uploading are not supported at this time. Start by adding the Hubot integration for your team (if you haven t done so). 2.4.2 Usage // blank import to register adapter import _ "github.com/danryan/hal/adapter/slack" 2.4.3 Configuration HAL_ADAPTER=slack HAL_SLACK_TOKEN=blah HAL_SLACK_TEAM=acmeinc HAL_SLACK_BOTNAME=HAL HAL_SLACK_ICON_EMOJI=":poop:" # The adapter # Your integration token # Default: none (required) # Your Slack subdomain (<team>.slack.com) # Default: none (required) # The username Hal will send replies as # Default: HAL_NAME # The emoji shortcut used as the response icon 2.4. Slack 7

# Default: none HAL_SLACK_CHANNELS="" # not yet implemented HAL_SLACK_CHANNEL_MODE="" # HAL_SLACK_LINK_NAMES="" # not yet implemented HAL_SLACK_CHANNEL_MODE Specify how to treat the list of channels in HAL_SLACK_CHANNELS. Disabled if HAL_SLACK_CHANNELS is empty. Options: whitelist, blacklist Default: whitelist Required: false Example: HAL_SLACK_CHANNEL_MODE=whitelist Using IRC Gateway The default integration only works with public chats. If you want hal to listen in on private chats, you must utilize the IRC gateway. You ll need a real user for hal, so be mindful of the username you choose for it and make sure you configure your bot to use that name so it can login to the IRC gateway. When enabled, hal will only use the IRC gateway to listen for messages. Hal can be configured to either respond using the API or the IRC gateway. 1. Enable the IRC gateway in the admin settings interface Choose Enable IRC gateway (SSL only). You don t want your private messages sent unencrypted. 2. Register a new user 3. Sign in as this new user 4. Capture your new IRC credentials 5. Set the following environment variables HAL_SLACK_IRC_ENABLED HAL_SLACK_IRC_PASSWORD HAL_SLACK_RESPONSE_METHOD # Enable the Slack IRC listener # Default: 0 # Options: 0, 1 ; 0 is disabled, 1 is enabled # The IRC gateway password # Default: none (required) # The method by which hal will respond to a message. # The irc option requires that the IRC gateway be configured # Default: http # Options: http, irc For more information, please see the following link: * Connecting to Slack over IRC and XMPP 2.5 Shell Hal comes with a default shell adapter, useful for testing your response handlers locally. 8 Chapter 2. Adapters

2.5.1 Setup No setup is required. 2.5.2 Usage // blank import to register adapter import _ "github.com/danryan/hal/adapter/shell" 2.5.3 Configuration The shell adapter has no special configuration variables. 2.5. Shell 9

10 Chapter 2. Adapters

CHAPTER 3 Stores 3.1 Memory 3.1.1 Setup No setup necessary. Data pushed to the in-memory server will not persist between restarts. 3.1.2 Configuration No additional configuration is required. 3.1.3 Usage // blank import to register adapter import _ "github.com/danryan/hal/store/memory" 3.2 Redis 3.2.1 Setup The Redis store requires an available Redis server. Authentication and custom databases are not supported at this time. Please open an issue if you need this support! 3.2.2 Configuration HAL_STORE Set to redis Default: memory Example: HAL_STORE=redis 11

HAL_REDIS_URL The Redis server URL Default: localhost:6367 Example: HAL_REDIS_URL=redis.example.com:6379 HAL_REDIS_NAMESPACE Set a namespace to prepend to all keys Default: hal Example HAL_REDIS_NAMESPACE=foo # sets all keys to "foo:<key>" 3.2.3 Usage // blank import to register adapter import _ "github.com/danryan/hal/store/redis" 12 Chapter 3. Stores

CHAPTER 4 Handlers 13

14 Chapter 4. Handlers

CHAPTER 5 Appendices glossary 15