Documentation ¶
Overview ¶
Package lib contains code and structs shared between the manage and agent modules.
Package lib contains shared code and structs for the manage and agent modules.
Package lib is a general library of utilities and things.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FormatJSON ¶
FormatJSON converts a byte array to formatted string.
func GetLatestTagFromRepository ¶
GetLatestTagFromRepository will get the latest tag from the git repository. See https://github.com/src-d/go-git/issues/1030#issuecomment-443679681
Types ¶
type AgentTemplate ¶
type AgentTemplate struct { Source Source `hcl:"source,block" json:"source"` Storage Storage `hcl:"storage,block" json:"storage"` Restic Restic `hcl:"restic,block" json:"restic"` Tactical Tactical `hcl:"tactical,block" json:"tactical"` Hosting Hosting `hcl:"hosting,block" json:"hosting,omitempty"` }
AgentTemplate manages the HCL config for the backup agent.
type Azure ¶
type Azure struct { AccountName *string `hcl:"azure_account_name,attr" json:"azure_account_name,omitempty"` AccountKey *string `hcl:"azure_account_key,attr" json:"azure_account_key,omitempty"` }
Azure config
type Backblaze ¶
type Backblaze struct { AccountID *string `hcl:"b2_account_id,attr" json:"b2_account_id,omitempty"` AccountKey *string `hcl:"b2_account_key,attr" json:"b2_account_key,omitempty"` }
Backblaze config
type Google ¶
type Google struct { ProjectID *string `hcl:"google_project_id,attr" json:"google_project_id,omitempty"` ApplicationCredentials *string `hcl:"google_application_credentials,attr" json:"google_application_credentials,omitempty"` }
Google config
type Hosting ¶
type Hosting struct { // TODO: File hosting does not belong in the agent config. Upload struct { Domain *string `hcl:"domain"` Path *string `hcl:"path"` BasicUsername *string `hcl:"basic_username"` BasicPassword *string `hcl:"basic_password"` // Filename is the base filename without the os and arch. // The actual filename will be {filename}_{GOOS}_{GOARCH}[.ext] Filename *string `hcl:"filename"` } `hcl:"upload,block" json:"-"` Download struct { URL *string `hcl:"url" json:"url"` BasicUsername *string `hcl:"basic_username" json:"basic_username"` BasicPassword *string `hcl:"basic_password" json:"basic_password"` // Filename is the base filename without the os and arch. // The actual filename will be {filename}_{GOOS}_{GOARCH}[.ext] Filename *string `hcl:"filename" json:"filename"` } `hcl:"download,block" json:"download"` OS *string `hcl:"os" json:"os,omitempty"` Arch *string `hcl:"arch" json:"arch,omitempty"` }
Hosting is for the Tactical script that runs on the endpoint. It needs to know where to download the backup AgentConfig and the format of the URL.
type Rest ¶
type Rest struct { Host *string `hcl:"host,attr" json:"host,omitempty"` Port *string `hcl:"port,attr" json:"port,omitempty" default:"443"` Username *string `hcl:"username,attr" json:"username,omitempty"` Password *string `hcl:"password,attr" json:"password,omitempty"` Path *string `hcl:"path,attr" json:"path,omitempty" default:""` }
Rest config for a rest-server
type Restic ¶
type Restic struct { Repository *string `hcl:"repository,attr" json:"repository"` Password *string `hcl:"password,attr" json:"password,omitempty"` // Encryption password KeyHint *string `hcl:"key_hint,attr" json:"key_hint,omitempty"` OSStorageUrl *string `hcl:"os_storage_url,attr" json:"os_storage_url,omitempty"` OSAuthToken *string `hcl:"os_auth_token,attr" json:"os_auth_token,omitempty"` B2AccountID *string `hcl:"b2_account_id,attr" json:"b2_account_id,omitempty"` B2AccountKey *string `hcl:"b2_account_key,attr" json:"b2_account_key,omitempty"` AzureAccountName *string `hcl:"azure_account_name,attr" json:"azure_account_name,omitempty"` AzureAccountKey *string `hcl:"azure_account_key,attr" json:"azure_account_key,omitempty"` GoogleProjectID *string `hcl:"google_project_id,attr" json:"google_project_id,omitempty"` GoogleApplicationCredentials *string `hcl:"google_application_credentials,attr" json:"google_application_credentials,omitempty"` BWLimit *string `hcl:"bw_limit,attr" json:"bw_limit,omitempty"` }
Restic config See https://restic.readthedocs.io/en/latest/040_backup.html#environment-variables
type Source ¶
type Source struct {
Paths []string `hcl:"paths,attr" json:"paths"`
}
Source is a list of sources to back up.
type Storage ¶
type Storage struct { Provider string `hcl:"provider,attr" json:"provider,omitempty" default:"rest"` Rest *Rest `hcl:"rest,block" json:"rest"` Backblaze *Backblaze `hcl:"backblaze,block" json:"backblaze"` Azure *Azure `hcl:"azure,block" json:"azure"` Google *Google `hcl:"google,block" json:"google"` }
Storage is the storage provider for the restic repository.
Directories ¶
Path | Synopsis |
---|---|
Package crypto contains code and structs shared between the manage and agent modules.
|
Package crypto contains code and structs shared between the manage and agent modules. |
Package fs is a general library of filesystem things.
|
Package fs is a general library of filesystem things. |
Package pkg deals with downloading and installing packages from git repositories.
|
Package pkg deals with downloading and installing packages from git repositories. |