From 6c0c1c3424bdc294184ed3674854eaa21ad1c78a Mon Sep 17 00:00:00 2001 From: Clark Bynum Date: Thu, 7 May 2020 10:33:10 -0500 Subject: [PATCH] update dependencies --- Gopkg.lock | 12 +- Gopkg.toml | 2 +- .../github.com/clearblade/Go-SDK/codecalls.go | 19 ++ .../github.com/clearblade/Go-SDK/devcalls.go | 12 ++ .../clearblade/Go-SDK/devicecalls.go | 13 ++ vendor/github.com/clearblade/Go-SDK/mqtt.go | 87 ++++++++ .../github.com/clearblade/Go-SDK/usercalls.go | 12 ++ vendor/github.com/clearblade/Go-SDK/utils.go | 188 ++++++++++++++---- vendor/github.com/clearblade/cblib/Gopkg.lock | 6 +- vendor/github.com/clearblade/cblib/Gopkg.toml | 2 +- vendor/github.com/clearblade/cblib/README.md | 6 +- vendor/github.com/clearblade/cblib/defs.go | 2 +- vendor/github.com/clearblade/cblib/export.go | 5 +- 13 files changed, 309 insertions(+), 57 deletions(-) diff --git a/Gopkg.lock b/Gopkg.lock index 64f46e2..330b539 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -10,12 +10,12 @@ version = "v0.1.0" [[projects]] - digest = "1:12de3c1edd3e017279510f3d0dff704215f5f57f6ec040267b9e801829fca084" + digest = "1:dfe499eb5001370a9a46d2acb2d63a0fd8a4d18f1bd7fc1f533f37c046d54238" name = "github.com/clearblade/Go-SDK" packages = ["."] pruneopts = "UT" - revision = "c53ec242858efaa3400d9a063f52db9b519ab561" - version = "3.2.2" + revision = "06a95f909e206c2213487806aadda669d5138665" + version = "3.4.0" [[projects]] digest = "1:1a58a688cb20f2c431e1a3a85347559f5ad145b92fd83d144f832906f8675fa1" @@ -26,15 +26,15 @@ version = "v1.0" [[projects]] - digest = "1:111a3249f3923b4ba1497a828e0da4943476407f87db307618de692866f4e0b6" + digest = "1:8b6ca1a3f54f67035e3306bb6008d4657aabe26fe19bbd7c23ed4ed128d9c2d1" name = "github.com/clearblade/cblib" packages = [ ".", "models", ] pruneopts = "UT" - revision = "8ccfdc10cfe0fc0118ee8c429a508ae0a328f499" - version = "6.3.0" + revision = "41bc557d67e8993af805c33daaa04ca49e22ba6c" + version = "6.4.0" [[projects]] digest = "1:a39cd1a36849f0eab14d9351a72667f604a422c44c89f30f2dd25a2328415d26" diff --git a/Gopkg.toml b/Gopkg.toml index 05b6786..abd68c3 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -1,7 +1,7 @@ [[constraint]] name = "github.com/clearblade/cblib" - version = "6.3.0" + version = "6.4.0" [prune] go-tests = true diff --git a/vendor/github.com/clearblade/Go-SDK/codecalls.go b/vendor/github.com/clearblade/Go-SDK/codecalls.go index 23756a7..a350f01 100644 --- a/vendor/github.com/clearblade/Go-SDK/codecalls.go +++ b/vendor/github.com/clearblade/Go-SDK/codecalls.go @@ -11,6 +11,25 @@ const ( _WEBHOOK_PREAMBLE = "/admin/v/4/webhook" ) +func (d *DevClient) GetRunningServices(systemKey string) (map[string]interface{}, error) { + creds, err := d.credentials() + if err != nil { + return nil, err + } + resp, err := get(d, "/codeadmin/v/3/running/"+systemKey, nil, creds, nil) + if err != nil { + return nil, fmt.Errorf("Error getting services: %v", err) + } + if resp.StatusCode != 200 { + return nil, fmt.Errorf("Error getting services: %v", resp.Body) + } + theGoods, isGood := resp.Body.(map[string]interface{}) + if !isGood { + return nil, fmt.Errorf("Error getting running services; expected map got %T", resp.Body) + } + return theGoods, nil +} + func GetServiceNames(c cbClient, systemKey string) ([]string, error) { creds, err := c.credentials() if err != nil { diff --git a/vendor/github.com/clearblade/Go-SDK/devcalls.go b/vendor/github.com/clearblade/Go-SDK/devcalls.go index 6f9ae78..a37aab0 100644 --- a/vendor/github.com/clearblade/Go-SDK/devcalls.go +++ b/vendor/github.com/clearblade/Go-SDK/devcalls.go @@ -998,6 +998,18 @@ func (d *DevClient) setToken(t string) { func (d *DevClient) getToken() string { return d.DevToken } +func (d *DevClient) getRefreshToken() string { + return d.RefreshToken +} +func (d *DevClient) setRefreshToken(t string) { + d.RefreshToken = t +} +func (d *DevClient) setExpiresAt(t float64) { + d.ExpiresAt = t +} +func (d *DevClient) getExpiresAt() float64 { + return d.ExpiresAt +} func (d *DevClient) getMessageId() uint16 { return uint16(d.mrand.Int()) diff --git a/vendor/github.com/clearblade/Go-SDK/devicecalls.go b/vendor/github.com/clearblade/Go-SDK/devicecalls.go index f4a4cda..24e92f8 100644 --- a/vendor/github.com/clearblade/Go-SDK/devicecalls.go +++ b/vendor/github.com/clearblade/Go-SDK/devicecalls.go @@ -545,6 +545,19 @@ func (dvc *DeviceClient) getToken() string { return dvc.DeviceToken } +func (dvc *DeviceClient) getRefreshToken() string { + return dvc.RefreshToken +} +func (dvc *DeviceClient) setRefreshToken(t string) { + dvc.RefreshToken = t +} +func (dvc *DeviceClient) setExpiresAt(t float64) { + dvc.ExpiresAt = t +} +func (dvc *DeviceClient) getExpiresAt() float64 { + return dvc.ExpiresAt +} + func (dvc *DeviceClient) getSystemInfo() (string, string) { return dvc.SystemKey, dvc.SystemSecret } diff --git a/vendor/github.com/clearblade/Go-SDK/mqtt.go b/vendor/github.com/clearblade/Go-SDK/mqtt.go index 1ee4905..04f9aa9 100644 --- a/vendor/github.com/clearblade/Go-SDK/mqtt.go +++ b/vendor/github.com/clearblade/Go-SDK/mqtt.go @@ -2,6 +2,7 @@ package GoSDK import ( "crypto/tls" + "encoding/binary" "errors" "fmt" "math/rand" @@ -62,6 +63,27 @@ func (u *UserClient) InitializeMQTTWithCallback(clientid string, ignore string, return nil } +func (u *UserClient) AuthenticateMQTT(username, password, systemKey, systemSecret string, timeout int, ssl *tls.Config) error { + mqc, err := newMqttAuthClient(username, password, systemKey, systemSecret, timeout, u.MqttAuthAddr, ssl) + if err != nil { + return err + } + subChan, err := subscribe(mqc, "authMe", 0) + if err != nil { + return err + } + select { + case data := <-subChan: + authData := data.Payload + tokLen := binary.BigEndian.Uint16(authData[:2]) + tok := string(authData[2 : tokLen+2]) + u.UserToken = tok + case <-time.After(60 * time.Second): + return fmt.Errorf("Timed out waiting for MQTT auth response") + } + return nil +} + //InitializeMQTT allocates the mqtt client for the developer. the second argument is a //the systemkey you wish to use for authenticating with the message broker //topics are isolated across systems, so in order to communicate with a specific @@ -84,6 +106,27 @@ func (d *DevClient) InitializeMQTTWithCallback(clientid, systemkey string, timeo return nil } +func (d *DevClient) AuthenticateMQTT(username, password, systemKey, systemSecret string, timeout int, ssl *tls.Config) error { + mqc, err := newMqttAuthClient(username, password, systemKey, systemSecret, timeout, d.MqttAuthAddr, ssl) + if err != nil { + return err + } + subChan, err := subscribe(mqc, "authMe", 0) + if err != nil { + return err + } + select { + case data := <-subChan: + authData := data.Payload + tokLen := binary.BigEndian.Uint16(authData[:2]) + tok := string(authData[2 : tokLen+2]) + d.DevToken = tok + case <-time.After(60 * time.Second): + return fmt.Errorf("Timed out waiting for MQTT auth response") + } + return nil +} + //InitializeMQTT allocates the mqtt client for the user. an empty string can be passed as the second argument for the user client func (d *DeviceClient) InitializeMQTT(clientid string, ignore string, timeout int, ssl *tls.Config, lastWill *LastWillPacket) error { mqc, err := newMqttClient(d.DeviceToken, d.SystemKey, d.SystemSecret, clientid, timeout, d.MqttAddr, ssl, lastWill) @@ -103,6 +146,28 @@ func (d *DeviceClient) InitializeMQTTWithCallback(clientid string, ignore string return nil } +func (d *DeviceClient) AuthenticateMQTT(username, password, systemKey, systemSecret string, timeout int, ssl *tls.Config) error { + mqc, err := newMqttAuthClient(username, password, systemKey, systemSecret, timeout, d.MqttAuthAddr, ssl) + if err != nil { + return err + } + fmt.Printf("Here 1\n") + subChan, err := subscribe(mqc, "authMe", 2) + if err != nil { + return err + } + select { + case data := <-subChan: + authData := data.Payload + tokLen := binary.BigEndian.Uint16(authData[:2]) + tok := string(authData[2 : tokLen+2]) + d.DeviceToken = tok + case <-time.After(60 * time.Second): + return fmt.Errorf("Timed out waiting for MQTT auth response") + } + return nil +} + //Publish publishes a message to the specified mqtt topic func (u *UserClient) Publish(topic string, message []byte, qos int) error { return publish(u.MQTTClient, topic, message, qos, u.getMessageId()) @@ -269,6 +334,28 @@ func newMqttClientWithCallbacks(token, systemkey, systemsecret, clientid string, return mqc, ret.Error() } +func newMqttAuthClient(username, password, systemkey, systemsecret string, timeout int, address string, ssl *tls.Config) (MqttClient, error) { + o := mqtt.NewClientOptions() + o.SetAutoReconnect(false) + o.SetConnectionLostHandler(nil) + if ssl != nil { + o.AddBroker("tls://" + address) + o.SetTLSConfig(ssl) + } else { + o.AddBroker("tcp://" + address) + } + clientid := username + ":" + password + o.SetClientID(clientid) + o.SetUsername(systemkey) + o.SetPassword(systemsecret) + o.SetConnectTimeout(time.Duration(timeout) * time.Second) + cli := mqtt.NewClient(o) + mqc := &mqttBaseClient{cli, address, "", systemkey, systemsecret, clientid, timeout} + ret := mqc.Connect() + ret.Wait() + return mqc, ret.Error() +} + func publish(c MqttClient, topic string, data []byte, qos int, mid uint16) error { if c == nil { return errors.New("MQTTClient is uninitialized") diff --git a/vendor/github.com/clearblade/Go-SDK/usercalls.go b/vendor/github.com/clearblade/Go-SDK/usercalls.go index 994ac5c..3babc24 100644 --- a/vendor/github.com/clearblade/Go-SDK/usercalls.go +++ b/vendor/github.com/clearblade/Go-SDK/usercalls.go @@ -57,6 +57,18 @@ func (u *UserClient) setToken(t string) { func (u *UserClient) getToken() string { return u.UserToken } +func (u *UserClient) getRefreshToken() string { + return u.RefreshToken +} +func (u *UserClient) setRefreshToken(t string) { + u.RefreshToken = t +} +func (u *UserClient) setExpiresAt(t float64) { + u.ExpiresAt = t +} +func (u *UserClient) getExpiresAt() float64 { + return u.ExpiresAt +} func (u *UserClient) getMessageId() uint16 { return uint16(u.mrand.Int()) diff --git a/vendor/github.com/clearblade/Go-SDK/utils.go b/vendor/github.com/clearblade/Go-SDK/utils.go index e024a7d..83f70f3 100644 --- a/vendor/github.com/clearblade/Go-SDK/utils.go +++ b/vendor/github.com/clearblade/Go-SDK/utils.go @@ -23,7 +23,8 @@ var ( //CB_ADDR is the address of the ClearBlade Platform you are speaking with CB_ADDR = "https://platform.clearblade.com" //CB_MSG_ADDR is the messaging address you wish to speak to - CB_MSG_ADDR = "platform.clearblade.com:1883" + CB_MSG_ADDR = "platform.clearblade.com:1883" + CB_MSG_AUTH_ADDR = "platform.clearblade.com:8905" _HEADER_KEY_KEY = "ClearBlade-SystemKey" _HEADER_SECRET_KEY = "ClearBlade-SystemSecret" @@ -104,6 +105,10 @@ type cbClient interface { preamble() string setToken(string) getToken() string + setRefreshToken(string) + getRefreshToken() string + setExpiresAt(float64) + getExpiresAt() float64 getSystemInfo() (string, string) getMessageId() uint16 getHttpAddr() string @@ -118,6 +123,8 @@ type client struct{} type UserClient struct { client UserToken string + RefreshToken string + ExpiresAt float64 mrand *rand.Rand MQTTClient MqttClient SystemKey string @@ -126,6 +133,7 @@ type UserClient struct { Password string HttpAddr string MqttAddr string + MqttAuthAddr string edgeProxy *EdgeProxy } @@ -134,26 +142,32 @@ type DeviceClient struct { DeviceName string ActiveKey string DeviceToken string + RefreshToken string + ExpiresAt float64 mrand *rand.Rand MQTTClient MqttClient SystemKey string SystemSecret string HttpAddr string MqttAddr string + MqttAuthAddr string edgeProxy *EdgeProxy } //DevClient is the type for developers type DevClient struct { client - DevToken string - mrand *rand.Rand - MQTTClient MqttClient - Email string - Password string - HttpAddr string - MqttAddr string - edgeProxy *EdgeProxy + DevToken string + RefreshToken string + ExpiresAt float64 + mrand *rand.Rand + MQTTClient MqttClient + Email string + Password string + HttpAddr string + MqttAddr string + MqttAuthAddr string + edgeProxy *EdgeProxy } type EdgeProxy struct { @@ -236,6 +250,7 @@ func NewDeviceClient(systemkey, systemsecret, deviceName, activeKey string) *Dev return &DeviceClient{ DeviceName: deviceName, DeviceToken: "", + RefreshToken: "", ActiveKey: activeKey, mrand: rand.New(rand.NewSource(time.Now().UnixNano())), MQTTClient: nil, @@ -243,6 +258,7 @@ func NewDeviceClient(systemkey, systemsecret, deviceName, activeKey string) *Dev SystemSecret: systemsecret, HttpAddr: CB_ADDR, MqttAddr: CB_MSG_ADDR, + MqttAuthAddr: CB_MSG_AUTH_ADDR, } } @@ -250,6 +266,7 @@ func NewDeviceClient(systemkey, systemsecret, deviceName, activeKey string) *Dev func NewUserClient(systemkey, systemsecret, email, password string) *UserClient { return &UserClient{ UserToken: "", + RefreshToken: "", mrand: rand.New(rand.NewSource(time.Now().UnixNano())), MQTTClient: nil, SystemSecret: systemsecret, @@ -258,37 +275,56 @@ func NewUserClient(systemkey, systemsecret, email, password string) *UserClient Password: password, HttpAddr: CB_ADDR, MqttAddr: CB_MSG_ADDR, + MqttAuthAddr: CB_MSG_AUTH_ADDR, } } //NewDevClient allocates a new DevClient struct func NewDevClient(email, password string) *DevClient { return &DevClient{ - DevToken: "", - mrand: rand.New(rand.NewSource(time.Now().UnixNano())), - MQTTClient: nil, - Email: email, - Password: password, - HttpAddr: CB_ADDR, - MqttAddr: CB_MSG_ADDR, + DevToken: "", + RefreshToken: "", + mrand: rand.New(rand.NewSource(time.Now().UnixNano())), + MQTTClient: nil, + Email: email, + Password: password, + HttpAddr: CB_ADDR, + MqttAddr: CB_MSG_ADDR, + MqttAuthAddr: CB_MSG_AUTH_ADDR, } } func NewDevClientWithToken(token, email string) *DevClient { return &DevClient{ - DevToken: token, - mrand: rand.New(rand.NewSource(time.Now().UnixNano())), - MQTTClient: nil, - Email: email, - Password: "", - HttpAddr: CB_ADDR, - MqttAddr: CB_MSG_ADDR, + DevToken: token, + RefreshToken: "", + mrand: rand.New(rand.NewSource(time.Now().UnixNano())), + MQTTClient: nil, + Email: email, + Password: "", + HttpAddr: CB_ADDR, + MqttAddr: CB_MSG_ADDR, + MqttAuthAddr: CB_MSG_AUTH_ADDR, } } +func NewRefreshUserClientWithAddrs(httpAddr, mqttAddr, systemKey, systemSecret, refreshToken, accessToken string) *UserClient { + return &UserClient{ + UserToken: accessToken, + RefreshToken: refreshToken, + mrand: rand.New(rand.NewSource(time.Now().UnixNano())), + MQTTClient: nil, + SystemSecret: systemSecret, + SystemKey: systemKey, + HttpAddr: httpAddr, + MqttAddr: mqttAddr, + MqttAuthAddr: CB_MSG_AUTH_ADDR, + } +} func NewUserClientWithAddrs(httpAddr, mqttAddr, systemKey, systemSecret, email, password string) *UserClient { return &UserClient{ UserToken: "", + RefreshToken: "", mrand: rand.New(rand.NewSource(time.Now().UnixNano())), MQTTClient: nil, SystemSecret: systemSecret, @@ -297,29 +333,34 @@ func NewUserClientWithAddrs(httpAddr, mqttAddr, systemKey, systemSecret, email, Password: password, HttpAddr: httpAddr, MqttAddr: mqttAddr, + MqttAuthAddr: CB_MSG_AUTH_ADDR, } } func NewDevClientWithAddrs(httpAddr, mqttAddr, email, password string) *DevClient { return &DevClient{ - DevToken: "", - mrand: rand.New(rand.NewSource(time.Now().UnixNano())), - MQTTClient: nil, - Email: email, - Password: password, - HttpAddr: httpAddr, - MqttAddr: mqttAddr, + DevToken: "", + RefreshToken: "", + mrand: rand.New(rand.NewSource(time.Now().UnixNano())), + MQTTClient: nil, + Email: email, + Password: password, + HttpAddr: httpAddr, + MqttAddr: mqttAddr, + MqttAuthAddr: CB_MSG_AUTH_ADDR, } } func NewDevClientWithTokenAndAddrs(httpAddr, mqttAddr, token, email string) *DevClient { return &DevClient{ - DevToken: token, - mrand: rand.New(rand.NewSource(time.Now().UnixNano())), - MQTTClient: nil, - Email: email, - Password: "", - HttpAddr: httpAddr, - MqttAddr: mqttAddr, + DevToken: token, + RefreshToken: "", + mrand: rand.New(rand.NewSource(time.Now().UnixNano())), + MQTTClient: nil, + Email: email, + Password: "", + HttpAddr: httpAddr, + MqttAddr: mqttAddr, + MqttAuthAddr: CB_MSG_AUTH_ADDR, } } @@ -327,6 +368,7 @@ func NewDeviceClientWithAddrs(httpAddr, mqttAddr, systemkey, systemsecret, devic return &DeviceClient{ DeviceName: deviceName, DeviceToken: "", + RefreshToken: "", ActiveKey: activeKey, mrand: rand.New(rand.NewSource(time.Now().UnixNano())), MQTTClient: nil, @@ -334,6 +376,35 @@ func NewDeviceClientWithAddrs(httpAddr, mqttAddr, systemkey, systemsecret, devic SystemSecret: systemsecret, HttpAddr: httpAddr, MqttAddr: mqttAddr, + MqttAuthAddr: CB_MSG_AUTH_ADDR, + } +} + +func NewDeviceClientWithServiceAccountAndAddrs(httpAddr, mqttAddr, systemkey, systemsecret, deviceName, token string) *DeviceClient { + return &DeviceClient{ + DeviceName: deviceName, + DeviceToken: token, + ActiveKey: "", + mrand: rand.New(rand.NewSource(time.Now().UnixNano())), + MQTTClient: nil, + SystemKey: systemkey, + SystemSecret: systemsecret, + HttpAddr: httpAddr, + MqttAddr: mqttAddr, + } +} + +func NewUserClientWithServiceAccountAndAddrs(httpAddr, mqttAddr, systemkey, systemsecret, email, token string) *UserClient { + return &UserClient{ + UserToken: token, + mrand: rand.New(rand.NewSource(time.Now().UnixNano())), + MQTTClient: nil, + SystemSecret: systemsecret, + SystemKey: systemkey, + Email: email, + Password: "", + HttpAddr: httpAddr, + MqttAddr: mqttAddr, } } @@ -410,6 +481,13 @@ func (u *UserClient) Authenticate() (*AuthResponse, error) { return nil, nil } +func (u *UserClient) RefreshAuthentication() error { + if err := refreshAuthentication(u); err != nil { + return err + } + return nil +} + func (u *UserClient) AuthAnon() error { return authAnon(u) } @@ -617,16 +695,46 @@ func authenticate(c cbClient, username, password string) error { } var token string = "" + respBody := resp.Body.(map[string]interface{}) switch c.(type) { case *UserClient: - token = resp.Body.(map[string]interface{})["user_token"].(string) + token = respBody["user_token"].(string) case *DevClient: - token = resp.Body.(map[string]interface{})["dev_token"].(string) + token = respBody["dev_token"].(string) } if token == "" { return fmt.Errorf("Token not present i response from platform %+v", resp.Body) } c.setToken(token) + c.setRefreshToken(respBody["refresh_token"].(string)) + c.setExpiresAt(respBody["expires_at"].(float64)) + return nil +} + +func refreshAuthentication(c *UserClient) error { + var creds [][]string + var err error + creds, err = c.credentials() + if err != nil { + return err + } + + resp, err := post(c, c.preamble()+"/auth", map[string]interface{}{ + "refresh_token": c.getRefreshToken(), + "access_token": c.getToken(), + "grant_type": "refresh_token", + }, creds, nil) + if err != nil { + return err + } + if resp.StatusCode != 200 { + return cbErr.CreateResponseFromMap(resp.Body) + } + + respBody := resp.Body.(map[string]interface{}) + c.setToken(respBody["user_token"].(string)) + c.setRefreshToken(respBody["refresh_token"].(string)) + c.setExpiresAt(respBody["expires_at"].(float64)) return nil } @@ -710,6 +818,8 @@ func register(c cbClient, kind int, username, password, syskey, syssec, fname, l case createUser: token = resp.Body.(map[string]interface{})["user_id"].(string) } + c.setExpiresAt(resp.Body.(map[string]interface{})["expires_at"].(float64)) + c.setRefreshToken(resp.Body.(map[string]interface{})["refresh_token"].(string)) if token == "" { return nil, fmt.Errorf("Token not present in response from platform %+v", resp.Body) diff --git a/vendor/github.com/clearblade/cblib/Gopkg.lock b/vendor/github.com/clearblade/cblib/Gopkg.lock index 91ab2b6..747872a 100644 --- a/vendor/github.com/clearblade/cblib/Gopkg.lock +++ b/vendor/github.com/clearblade/cblib/Gopkg.lock @@ -10,12 +10,12 @@ version = "v0.1.0" [[projects]] - digest = "1:12de3c1edd3e017279510f3d0dff704215f5f57f6ec040267b9e801829fca084" + digest = "1:dfe499eb5001370a9a46d2acb2d63a0fd8a4d18f1bd7fc1f533f37c046d54238" name = "github.com/clearblade/Go-SDK" packages = ["."] pruneopts = "UT" - revision = "c53ec242858efaa3400d9a063f52db9b519ab561" - version = "3.2.2" + revision = "06a95f909e206c2213487806aadda669d5138665" + version = "3.4.0" [[projects]] digest = "1:1a58a688cb20f2c431e1a3a85347559f5ad145b92fd83d144f832906f8675fa1" diff --git a/vendor/github.com/clearblade/cblib/Gopkg.toml b/vendor/github.com/clearblade/cblib/Gopkg.toml index 72fdf0a..1de5a46 100644 --- a/vendor/github.com/clearblade/cblib/Gopkg.toml +++ b/vendor/github.com/clearblade/cblib/Gopkg.toml @@ -31,7 +31,7 @@ [[constraint]] name = "github.com/clearblade/Go-SDK" - version = "3.2.2" + version = "3.4.0" [[constraint]] name = "github.com/clearblade/cbjson" diff --git a/vendor/github.com/clearblade/cblib/README.md b/vendor/github.com/clearblade/cblib/README.md index 8e6bd57..87fa955 100644 --- a/vendor/github.com/clearblade/cblib/README.md +++ b/vendor/github.com/clearblade/cblib/README.md @@ -4,6 +4,6 @@ cblib is a centralized library for structuring and processing ClearBlade resourc # Development Flow -Branch from develop -Run tests -Pull Request into develop +- Branch from develop +- Run tests with `go test ./...` +- Pull Request into develop diff --git a/vendor/github.com/clearblade/cblib/defs.go b/vendor/github.com/clearblade/cblib/defs.go index 8fe5895..0fdf47a 100644 --- a/vendor/github.com/clearblade/cblib/defs.go +++ b/vendor/github.com/clearblade/cblib/defs.go @@ -91,7 +91,7 @@ var ( var ( DefaultUserColumns = []string{"user_id", "creation_date", "email"} - DefaultEdgeColumns = []string{"edge_key", "novi_system_key", "system_key", "system_secret", "token", "name", "description", "location", "mac_address", "public_addr", "public_port", "local_addr", "local_port", "broker_port", "broker_tls_port", "broker_ws_port", "broker_wss_port", "broker_auth_port", "broker_ws_auth_port", "first_talked", "last_talked", "communication_style", "last_seen_version", "policy_name", "resolver_func", "sync_edge_tables"} + DefaultEdgeColumns = []string{"edge_key", "novi_system_key", "system_key", "system_secret", "token", "name", "description", "location", "mac_address", "public_addr", "public_port", "local_addr", "local_port", "broker_port", "broker_tls_port", "broker_ws_port", "broker_wss_port", "broker_auth_port", "broker_ws_auth_port", "first_talked", "last_talked", "communication_style", "last_seen_version", "policy_name", "resolver_func", "sync_edge_tables", "last_seen_architecture", "last_seen_os"} DefaultDeviceColumns = []string{"device_key", "name", "system_key", "type", "state", "description", "enabled", "allow_key_auth", "active_key", "keys", "allow_certificate_auth", "certificate", "created_date", "last_active_date", "salt"} DefaultCollectionColumns = []string{"item_id"} ) diff --git a/vendor/github.com/clearblade/cblib/export.go b/vendor/github.com/clearblade/cblib/export.go index a204143..edd9602 100644 --- a/vendor/github.com/clearblade/cblib/export.go +++ b/vendor/github.com/clearblade/cblib/export.go @@ -455,10 +455,9 @@ func pullEdgesSchema(systemKey string, cli *cb.DevClient, writeThem bool) (map[s sort.Strings(DefaultEdgeColumns) for _, colIF := range resp { col := colIF.(map[string]interface{}) - switch strings.ToLower(col["ColumnName"].(string)) { - case "edge_key", "novi_system_key", "system_key", "system_secret", "token", "name", "description", "location", "mac_address", "public_addr", "public_port", "local_addr", "local_port", "broker_port", "broker_tls_port", "broker_ws_port", "broker_wss_port", "broker_auth_port", "broker_ws_auth_port", "first_talked", "last_talked", "communication_style", "last_seen_version", "policy_name", "resolver_func", "sync_edge_tables", "last_seen_architecture", "last_seen_os": + if isDefaultColumn(DefaultEdgeColumns, col["ColumnName"].(string)) { continue - default: + } else { columns = append(columns, col) } }