Improve code documentation

This commit is contained in:
TwinProduction 2020-10-23 15:58:59 -04:00
parent c09cd9df7e
commit 1bde98868e
5 changed files with 24 additions and 4 deletions

View File

@ -12,6 +12,7 @@ var (
insecureHttpClient *http.Client insecureHttpClient *http.Client
) )
// GetHttpClient returns the shared HTTP client
func GetHttpClient(insecure bool) *http.Client { func GetHttpClient(insecure bool) *http.Client {
if insecure { if insecure {
if insecureHttpClient == nil { if insecureHttpClient == nil {
@ -35,6 +36,7 @@ func GetHttpClient(insecure bool) *http.Client {
} }
} }
// CanCreateConnectionToTcpService checks whether a connection can be established with a TCP service
func CanCreateConnectionToTcpService(address string) bool { func CanCreateConnectionToTcpService(address string) bool {
conn, err := net.DialTimeout("tcp", address, 5*time.Second) conn, err := net.DialTimeout("tcp", address, 5*time.Second)
if err != nil { if err != nil {

View File

@ -29,11 +29,20 @@ type Alert struct {
Triggered bool Triggered bool
} }
// AlertType is the type of the alert.
// The value will generally be the name of the alert provider
type AlertType string type AlertType string
const ( const (
SlackAlert AlertType = "slack" // SlackAlert is the AlertType for the slack alerting provider
SlackAlert AlertType = "slack"
// PagerDutyAlert is the AlertType for the pagerduty alerting provider
PagerDutyAlert AlertType = "pagerduty" PagerDutyAlert AlertType = "pagerduty"
TwilioAlert AlertType = "twilio"
CustomAlert AlertType = "custom" // TwilioAlert is the AlertType for the twilio alerting provider
TwilioAlert AlertType = "twilio"
// CustomAlert is the AlertType for the custom alerting provider
CustomAlert AlertType = "custom"
) )

View File

@ -5,6 +5,7 @@ import (
"strings" "strings"
) )
// Handler takes care of security for a given handler with the given security configuratioon
func Handler(handler http.HandlerFunc, security *Config) http.HandlerFunc { func Handler(handler http.HandlerFunc, security *Config) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) { return func(w http.ResponseWriter, r *http.Request) {
usernameEntered, passwordEntered, ok := r.BasicAuth() usernameEntered, passwordEntered, ok := r.BasicAuth()

View File

@ -1,18 +1,25 @@
package security package security
// Config is the security configuration for Gatus
type Config struct { type Config struct {
Basic *BasicConfig `yaml:"basic"` Basic *BasicConfig `yaml:"basic"`
} }
// IsValid returns whether the security configuration is valid or not
func (c *Config) IsValid() bool { func (c *Config) IsValid() bool {
return c.Basic != nil && c.Basic.IsValid() return c.Basic != nil && c.Basic.IsValid()
} }
// BasicConfig is the configuration for Basic authentication
type BasicConfig struct { type BasicConfig struct {
Username string `yaml:"username"` // Username is the name which will need to be used for a successful authentication
Username string `yaml:"username"`
// PasswordSha512Hash is the SHA512 hash of the password which will need to be used for a successful authentication
PasswordSha512Hash string `yaml:"password-sha512"` PasswordSha512Hash string `yaml:"password-sha512"`
} }
// IsValid returns whether the basic security configuration is valid or not
func (c *BasicConfig) IsValid() bool { func (c *BasicConfig) IsValid() bool {
return len(c.Username) > 0 && len(c.PasswordSha512Hash) == 128 return len(c.Username) > 0 && len(c.PasswordSha512Hash) == 128
} }

View File

@ -5,6 +5,7 @@ import (
"fmt" "fmt"
) )
// Sha512 hashes a provided string using SHA512 and returns the resulting hash as a string
func Sha512(s string) string { func Sha512(s string) string {
hash := sha512.New() hash := sha512.New()
hash.Write([]byte(s)) hash.Write([]byte(s))