diff --git a/agent/access.go b/agent/access.go index 2f4f66af..97d6ae3d 100644 --- a/agent/access.go +++ b/agent/access.go @@ -7,13 +7,13 @@ import ( ) type AccessPrivateRequest struct { - Token string - BindAddress string - AutoMode bool - AutoAddress string - AutoStartPort uint16 - AutoEndPort uint16 - ResponseHeaders []string + Token string `json:"token"` + BindAddress string `json:"bind_address"` + AutoMode bool `json:"auto_mode"` + AutoAddress string `json:"auto_address"` + AutoStartPort uint16 `json:"auto_start_port"` + AutoEndPort uint16 `json:"auto_end_port"` + ResponseHeaders []string `json:"response_headers"` } type access struct { diff --git a/agent/registry.go b/agent/registry.go index 7cb2a5d0..f3d500c8 100644 --- a/agent/registry.go +++ b/agent/registry.go @@ -2,12 +2,16 @@ package agent import ( "encoding/json" + "fmt" "os" ) +const RegistryV = "1" + type Registry struct { - ReservedShares []*ShareReservedRequest - PrivateAccesses []*AccessPrivateRequest + V string `json:"v"` + ReservedShares []*ShareReservedRequest `json:"reserved_shares"` + PrivateAccesses []*AccessPrivateRequest `json:"private_accesses"` } func LoadRegistry(path string) (*Registry, error) { @@ -19,10 +23,14 @@ func LoadRegistry(path string) (*Registry, error) { if err := json.Unmarshal(data, r); err != nil { return nil, err } + if r.V != RegistryV { + return nil, fmt.Errorf("invalid registry version '%v'; expected '%v", r.V, RegistryV) + } return r, nil } func (r *Registry) Save(path string) error { + r.V = RegistryV data, err := json.MarshalIndent(r, "", " ") if err != nil { return err diff --git a/agent/share.go b/agent/share.go index 7c5c3e8e..7064acf2 100644 --- a/agent/share.go +++ b/agent/share.go @@ -10,30 +10,30 @@ import ( ) type SharePrivateRequest struct { - Target string - BackendMode string - Insecure bool - Closed bool - AccessGrants []string + Target string `json:"target"` + BackendMode string `json:"backend_mode"` + Insecure bool `json:"insecure"` + Closed bool `json:"closed"` + AccessGrants []string `json:"access_grants"` } type SharePublicRequest struct { - Target string - BasicAuth []string - FrontendSelection []string - BackendMode string - Insecure bool - OauthProvider string - OauthEmailAddressPatterns []string - OauthCheckInterval string - Closed bool - AccessGrants []string + Target string `json:"target"` + BasicAuth []string `json:"basic_auth"` + FrontendSelection []string `json:"frontend_selection"` + BackendMode string `json:"backend_mode"` + Insecure bool `json:"insecure"` + OauthProvider string `json:"oauth_provider"` + OauthEmailAddressPatterns []string `json:"oauth_email_address_patterns"` + OauthCheckInterval string `json:"oauth_check_interval"` + Closed bool `json:"closed"` + AccessGrants []string `json:"access_grants"` } type ShareReservedRequest struct { - Token string - OverrideEndpoint string - Insecure bool + Token string `json:"token"` + OverrideEndpoint string `json:"override_endpoint"` + Insecure bool `json:"insecure"` } type ShareReservedResponse struct {