open-consul/vendor/github.com/hashicorp/scada-client
2016-06-01 18:25:39 -04:00
..
scada Use upstream high-level SCADA provider 2016-06-01 18:25:39 -04:00
test Manage dependencies via Godep 2016-02-12 16:50:37 -08:00
.gitignore Manage dependencies via Godep 2016-02-12 16:50:37 -08:00
client.go Manage dependencies via Godep 2016-02-12 16:50:37 -08:00
LICENSE Manage dependencies via Godep 2016-02-12 16:50:37 -08:00
provider.go Manage dependencies via Godep 2016-02-12 16:50:37 -08:00
README.md Manage dependencies via Godep 2016-02-12 16:50:37 -08:00
structs.go Manage dependencies via Godep 2016-02-12 16:50:37 -08:00

SCADA Client

This library provides a Golang client for the HashiCorp SCADA service. SCADA stands for Supervisory Control And Data Acquisition, and as the name implies it allows Atlas to provide control functions and request data from the tools that integrate.

The technical details about how SCADA works are fairly simple. Clients first open a connection to the SCADA service at scada.hashicorp.com on port 7223. This connection is secured by TLS, allowing clients to verify the identity of the servers and to encrypt all communications. Once connected, a handshake is performed where a client provides it's Atlas API credentials so that Atlas can verify the client identity. Once complete, clients keep the connection open in an idle state waiting for commands to be received. Commands map to APIs exposed by the product, and are subject to any ACLs, authentication or authorization mechanisms of the client.

This library is used in various HashiCorp products to integrate with the SCADA system.

Environmental Variables

This library respects the following environment variables:

  • ATLAS_TOKEN: The Atlas token to use for authentication
  • SCADA_ENDPOINT: Overrides the default SCADA endpoint