service

package
v2.18.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2024 License: Apache-2.0 Imports: 46 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AuthorizationWhiteListedEndpointsRegexp = `^\/(a$|[^a].*|ap$|a[^p].*|ap[^i].*|api[^/])`
)

Variables

View Source
var (
	ApplicationSubscribeToEventsProtoJsonContentType = "application/subscribetoeventsprotojson"
	ApplicationSubscribeToEventsMIMEWildcard         = "application/subscribetoeventswc"
)

Functions

func New

func New(ctx context.Context, config Config, fileWatcher *fsnotify.Watcher, logger log.Logger) (*service.Service, error)

New parses configuration and creates new Server with provided store and bus

Types

type APIsConfig

type APIsConfig struct {
	HTTP HTTPConfig `yaml:"http" json:"http"`
}

Config represent application configuration

func (*APIsConfig) Validate

func (c *APIsConfig) Validate() error

type BasicOAuthClient

type BasicOAuthClient struct {
	ClientID string   `yaml:"clientID" json:"clientId"`
	Audience string   `yaml:"audience" json:"audience"`
	Scopes   []string `yaml:"scopes" json:"scopes"`
}

func (*BasicOAuthClient) ToProto added in v2.5.0

func (c *BasicOAuthClient) ToProto() *pb.WebOAuthClient

func (*BasicOAuthClient) Validate

func (c *BasicOAuthClient) Validate() error

type ClientsConfig

type ClientsConfig struct {
	GrpcGateway            GrpcServerConfig                  `yaml:"grpcGateway" json:"grpcGateway"`
	OpenTelemetryCollector http.OpenTelemetryCollectorConfig `yaml:"openTelemetryCollector" json:"openTelemetryCollector"`
}

func (*ClientsConfig) Validate

func (c *ClientsConfig) Validate() error

type Config

type Config struct {
	Log     log.Config    `yaml:"log" json:"log"`
	APIs    APIsConfig    `yaml:"apis" json:"apis"`
	Clients ClientsConfig `yaml:"clients" json:"clients"`
	UI      UIConfig      `yaml:"ui" json:"ui"`
}

func (Config) String

func (c Config) String() string

String return string representation of Config

func (*Config) Validate

func (c *Config) Validate() error

type DeviceOAuthClient

type DeviceOAuthClient struct {
	BasicOAuthClient `yaml:",inline"`
	ProviderName     string `json:"providerName" yaml:"providerName"`
}

func (*DeviceOAuthClient) ToProto added in v2.5.0

func (c *DeviceOAuthClient) ToProto() *pb.DeviceOAuthClient

func (*DeviceOAuthClient) Validate

func (c *DeviceOAuthClient) Validate() error

type GrpcServerConfig

type GrpcServerConfig struct {
	Connection client.Config `yaml:"grpc" json:"grpc"`
}

func (*GrpcServerConfig) Validate

func (c *GrpcServerConfig) Validate() error

type HTTPConfig

type HTTPConfig struct {
	Connection    listener.Config  `yaml:",inline" json:",inline"`
	WebSocket     WebSocketConfig  `yaml:"webSocket" json:"webSocket"`
	Authorization validator.Config `yaml:"authorization" json:"authorization"`
	Server        server.Config    `yaml:",inline" json:",inline"`
}

func (*HTTPConfig) Validate

func (c *HTTPConfig) Validate() error

type MainSidebarConfig added in v2.16.3

type MainSidebarConfig struct {
	Devices              bool `yaml:"devices" json:"devices"`
	Configuration        bool `yaml:"configuration" json:"configuration"`
	RemoteClients        bool `yaml:"remoteClients" json:"remoteClients"`
	PendingCommands      bool `yaml:"pendingCommands" json:"pendingCommands"`
	Certificates         bool `yaml:"certificates" json:"certificates"`
	DeviceProvisioning   bool `yaml:"deviceProvisioning" json:"deviceProvisioning"`
	Docs                 bool `yaml:"docs" json:"docs"`
	ChatRoom             bool `yaml:"chatRoom" json:"chatRoom"`
	Dashboard            bool `yaml:"dashboard" json:"dashboard"`
	Integrations         bool `yaml:"integrations" json:"integrations"`
	DeviceFirmwareUpdate bool `yaml:"deviceFirmwareUpdate" json:"deviceFirmwareUpdate"`
	DeviceLogs           bool `yaml:"deviceLogs" json:"deviceLogs"`
	ApiTokens            bool `yaml:"apiTokens" json:"apiTokens"`
	SchemaHub            bool `yaml:"schemaHub" json:"schemaHub"`
}

func (*MainSidebarConfig) ToProto added in v2.16.3

type RequestHandler

type RequestHandler struct {
	// contains filtered or unexported fields
}

RequestHandler for handling incoming request

func NewRequestHandler

func NewRequestHandler(config *Config, r *mux.Router, client *client.Client) (*RequestHandler, error)

NewHTTP returns HTTP handler

func (*RequestHandler) CancelPendingCommands

func (requestHandler *RequestHandler) CancelPendingCommands(w http.ResponseWriter, r *http.Request)

type UIConfig

type UIConfig struct {
	Enabled          bool             `json:"enabled" yaml:"enabled"`
	Directory        string           `json:"directory" yaml:"directory"`
	WebConfiguration WebConfiguration `json:"webConfiguration" yaml:"webConfiguration"`
}

UIConfig represents user interface configuration

func (*UIConfig) Validate

func (c *UIConfig) Validate() error

type VisibilityConfig added in v2.16.3

type VisibilityConfig struct {
	MainSidebar MainSidebarConfig `yaml:"mainSidebar" json:"mainSidebar"`
}

func (*VisibilityConfig) ToProto added in v2.16.3

func (c *VisibilityConfig) ToProto() *pb.UIVisibility

type WebConfiguration

type WebConfiguration struct {
	Authority                 string            `yaml:"-" json:"authority"`
	HTTPGatewayAddress        string            `yaml:"httpGatewayAddress" json:"httpGatewayAddress"`
	DeviceProvisioningService string            `yaml:"deviceProvisioningService" json:"deviceProvisioningService"`
	WebOAuthClient            BasicOAuthClient  `yaml:"webOAuthClient" json:"webOauthClient"`
	DeviceOAuthClient         DeviceOAuthClient `yaml:"deviceOAuthClient" json:"deviceOauthClient"`
	Visibility                VisibilityConfig  `yaml:"visibility" json:"visibility"`
}

WebConfiguration represents web configuration for user interface exposed via getOAuthConfiguration handler

func (*WebConfiguration) Validate

func (c *WebConfiguration) Validate() error

type WebSocketConfig

type WebSocketConfig struct {
	StreamBodyLimit int           `yaml:"streamBodyLimit" json:"streamBodyLimit"`
	PingFrequency   time.Duration `yaml:"pingFrequency" json:"pingFrequency"`
}

func (*WebSocketConfig) Validate

func (c *WebSocketConfig) Validate() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL