Documentation ¶
Index ¶
- Constants
- type ActiveSession
- type AuthClaims
- type Billing
- type ConnectedDevice
- type Device
- type DeviceAuth
- type DeviceAuthClaims
- type DeviceAuthRequest
- type DeviceAuthResponse
- type DeviceIdentity
- type DeviceInfo
- type DevicePosition
- type Endpoints
- type Filter
- type FirewallFilter
- type FirewallRule
- type FirewallRuleFields
- type FirewallRuleUpdate
- type ID
- type Info
- type License
- type Member
- type MqttACLQuery
- type MqttAuthQuery
- type MqttClientEvent
- type MqttEvent
- type Namespace
- type NamespaceSettings
- type OperatorParams
- type PaymentFailed
- type PrivateKey
- type PropertyParams
- type PublicKey
- type PublicKeyAuthRequest
- type PublicKeyAuthResponse
- type PublicKeyFields
- type PublicKeyFilter
- type PublicKeyUpdate
- type RecordedSession
- type Session
- type SessionRecorded
- type Stats
- type Status
- type Tenant
- type UID
- type UsageRecord
- type User
- type UserAuthClaims
- type UserAuthRequest
- type UserAuthResponse
- type UserData
- type UserPassword
- type UserTokenRecover
- type Username
Constants ¶
View Source
const ( MqttClientConnectedEventType = "client_connected" MqttClientDisconnectedEventType = "client_disconnected" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActiveSession ¶
type AuthClaims ¶ added in v0.2.0
type AuthClaims struct {
Claims string `json:"claims"`
}
type Billing ¶ added in v0.8.0
type Billing struct { SubscriptionID string `json:"subscription_id" bson:"subscription_id,omitempty"` CurrentPeriodEnd time.Time `json:"current_period_end" bson:"current_period_end,omitempty"` PriceID string `json:"price_id" bson:"price_id,omitempty"` CustomerID string `json:"customer_id" bson:"customer_id,omitempty"` PaymentMethodID string `json:"payment_method_id" bson:"payment_method_id,omitempty"` PaymentFailed *PaymentFailed `json:"payment_failed" bson:"payment_failed,omitempty"` State string `json:"state" bson:"state,omitempty"` Active bool `json:"active" bson:"active,omitempty"` SubItem string `json:"sub_item_id" bson:"sub_item_id,omitempty"` }
type ConnectedDevice ¶
type Device ¶
type Device struct { UID string `json:"uid"` Name string `json:"name" bson:"name,omitempty" validate:"required,hostname_rfc1123,excludes=."` Identity *DeviceIdentity `json:"identity"` Info *DeviceInfo `json:"info"` PublicKey string `json:"public_key" bson:"public_key"` TenantID string `json:"tenant_id" bson:"tenant_id"` LastSeen time.Time `json:"last_seen" bson:"last_seen"` Online bool `json:"online" bson:",omitempty"` Namespace string `json:"namespace" bson:",omitempty"` Status string `json:"status" bson:"status,omitempty" validate:"oneof=accepted rejected pending unused` CreatedAt time.Time `json:"created_at" bson:"created_at,omitempty"` RemoteAddr string `json:"remote_addr" bson:"remote_addr"` Position *DevicePosition `json:"position" bson:"position"` Tags []string `json:"tags" bson:"tags,omitempty"` }
type DeviceAuth ¶
type DeviceAuth struct { Hostname string `json:"hostname,omitempty" bson:"hostname,omitempty" validate:"omitempty,hostname_rfc1123" hash:"-"` Identity *DeviceIdentity `json:"identity"` PublicKey string `json:"public_key"` TenantID string `json:"tenant_id"` }
type DeviceAuthClaims ¶
type DeviceAuthClaims struct { UID string `json:"uid"` AuthClaims `mapstruct:",squash"` jwt.RegisteredClaims `mapstruct:",squash"` }
type DeviceAuthRequest ¶
type DeviceAuthRequest struct { Info *DeviceInfo `json:"info"` Sessions []string `json:"sessions,omitempty"` *DeviceAuth }
type DeviceAuthResponse ¶
type DeviceIdentity ¶ added in v0.2.1
type DeviceIdentity struct {
MAC string `json:"mac"`
}
type DeviceInfo ¶ added in v0.2.1
type DevicePosition ¶ added in v0.8.0
type Filter ¶ added in v0.3.0
type Filter struct { Type string `json:"type,omitempty"` Params interface{} `json:"params,omitempty"` }
func (*Filter) UnmarshalJSON ¶ added in v0.3.2
type FirewallFilter ¶ added in v0.9.1
type FirewallFilter struct { Hostname string `json:"hostname,omitempty" bson:"hostname,omitempty" validate:"required_without=Tags,excluded_with=Tags,regexp"` Tags []string `` /* 157-byte string literal not displayed */ }
FirewallFilter contains the filter rule of a Public Key.
A FirewallFilter can contain either Hostname, string, or Tags, slice of strings never both.
type FirewallRule ¶ added in v0.3.3
type FirewallRule struct { ID string `json:"id,omitempty" bson:"_id,omitempty"` TenantID string `json:"tenant_id" bson:"tenant_id"` FirewallRuleFields `bson:",inline"` }
type FirewallRuleFields ¶ added in v0.3.3
type FirewallRuleFields struct { Priority int `json:"priority"` Action string `json:"action" validate:"required,oneof=allow deny"` Active bool `json:"active"` SourceIP string `json:"source_ip" bson:"source_ip" validate:"required,regexp"` Username string `json:"username" validate:"required,regexp"` Filter FirewallFilter `json:"filter" bson:"filter" validate:"required"` }
func (*FirewallRuleFields) Validate ¶ added in v0.3.3
func (f *FirewallRuleFields) Validate() error
type FirewallRuleUpdate ¶ added in v0.3.3
type FirewallRuleUpdate struct {
FirewallRuleFields `bson:",inline"`
}
type MqttACLQuery ¶
type MqttAuthQuery ¶
type MqttClientEvent ¶
type MqttEvent ¶
type MqttEvent struct { Action string `json:"action"` MqttClientEvent }
type Namespace ¶ added in v0.5.0
type Namespace struct { Name string `json:"name" validate:"required,hostname_rfc1123,excludes=."` Owner string `json:"owner"` TenantID string `json:"tenant_id" bson:"tenant_id,omitempty"` Members []Member `json:"members" bson:"members"` Settings *NamespaceSettings `json:"settings"` Devices int `json:"-" bson:"devices,omitempty"` Sessions int `json:"-" bson:"sessions,omitempty"` MaxDevices int `json:"max_devices" bson:"max_devices"` DevicesCount int `json:"devices_count" bson:"devices_count,omitempty"` CreatedAt time.Time `json:"created_at" bson:"created_at"` Billing *Billing `json:"billing" bson:"billing,omitempty"` }
type NamespaceSettings ¶ added in v0.5.0
type NamespaceSettings struct {
SessionRecord bool `json:"session_record" bson:"session_record,omitempty"`
}
type OperatorParams ¶ added in v0.3.2
type OperatorParams struct {
Name string `json:"name"`
}
type PaymentFailed ¶ added in v0.8.0
type PrivateKey ¶ added in v0.5.0
type PropertyParams ¶ added in v0.3.2
type PublicKeyAuthRequest ¶ added in v0.5.0
type PublicKeyAuthResponse ¶ added in v0.5.0
type PublicKeyAuthResponse struct {
Signature string `json:"signature"`
}
type PublicKeyFields ¶ added in v0.5.0
type PublicKeyFields struct { Name string `json:"name"` Username string `json:"username" bson:"username" validate:"regexp"` Filter PublicKeyFilter `json:"filter" bson:"filter" validate:"required"` }
func (*PublicKeyFields) Validate ¶ added in v0.6.1
func (p *PublicKeyFields) Validate() error
type PublicKeyFilter ¶ added in v0.9.1
type PublicKeyFilter struct { Hostname string `json:"hostname,omitempty" bson:"hostname,omitempty" validate:"required_without=Tags,excluded_with=Tags,regexp"` Tags []string `` /* 157-byte string literal not displayed */ }
PublicKeyFilter contains the filter rule of a Public Key.
A PublicKeyFilter can contain either Hostname, string, or Tags, slice of strings never both.
type PublicKeyUpdate ¶ added in v0.5.0
type PublicKeyUpdate struct {
PublicKeyFields `bson:",inline"`
}
type RecordedSession ¶ added in v0.4.0
type RecordedSession struct { UID UID `json:"uid"` Message string `json:"message" bson:"message"` TenantID string `json:"tenant_id" bson:"tenant_id,omitempty"` Time time.Time `json:"time" bson:"time,omitempty"` Width int `json:"width" bson:"width,omitempty"` Height int `json:"height" bson:"height,omitempty"` }
type Session ¶
type Session struct { UID string `json:"uid"` DeviceUID UID `json:"device_uid,omitempty" bson:"device_uid"` Device *Device `json:"device" bson:"device,omitempty"` TenantID string `json:"tenant_id" bson:"tenant_id"` Username string `json:"username"` IPAddress string `json:"ip_address" bson:"ip_address"` StartedAt time.Time `json:"started_at" bson:"started_at"` LastSeen time.Time `json:"last_seen" bson:"last_seen"` Active bool `json:"active" bson:",omitempty"` Closed bool `json:"-" bson:"closed"` Authenticated bool `json:"authenticated" bson:"authenticated"` Recorded bool `json:"recorded" bson:"recorded"` }
type SessionRecorded ¶ added in v0.7.3
type UsageRecord ¶ added in v0.8.0
type User ¶
type User struct { ID string `json:"id,omitempty" bson:"_id,omitempty"` Namespaces int `json:"namespaces" bson:"namespaces,omitempty"` Confirmed bool `json:"confirmed"` CreatedAt time.Time `json:"created_at" bson:"created_at"` LastLogin time.Time `json:"last_login" bson:"last_login"` UserData `bson:",inline"` UserPassword `bson:",inline"` }
type UserAuthClaims ¶
type UserAuthClaims struct { Username string `json:"name"` Admin bool `json:"admin"` Tenant string `json:"tenant"` ID string `json:"id"` Role string `json:"role"` AuthClaims `mapstruct:",squash"` jwt.RegisteredClaims `mapstruct:",squash"` }
type UserAuthRequest ¶
type UserAuthResponse ¶
type UserPassword ¶ added in v0.8.0
type UserPassword struct {
Password string `json:"password" bson:",omitempty" validate:"required,min=5,max=30"`
}
type UserTokenRecover ¶ added in v0.7.2
Click to show internal directories.
Click to hide internal directories.