setup

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2020 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const HTTPClientTimeout = time.Second * 30
View Source
const HTTPServerTimeout = time.Minute * 5
View Source
const NoListener = ""

Variables

This section is empty.

Functions

func ParseFlags

func ParseFlags(monolith bool) *config.Dendrite

ParseFlags parses the commandline flags and uses them to create a config.

Types

type BaseDendrite

type BaseDendrite struct {
	PublicClientAPIMux     *mux.Router
	PublicFederationAPIMux *mux.Router
	PublicKeyAPIMux        *mux.Router
	PublicMediaAPIMux      *mux.Router
	InternalAPIMux         *mux.Router
	UseHTTPAPIs            bool

	Cfg    *config.Dendrite
	Caches *caching.Caches
	// contains filtered or unexported fields
}

BaseDendrite is a base for creating new instances of dendrite. It parses command line flags and config, and exposes methods for creating various resources. All errors are handled by logging then exiting, so all methods should only be used during start up. Must be closed when shutting down.

func NewBaseDendrite

func NewBaseDendrite(cfg *config.Dendrite, componentName string, useHTTPAPIs bool) *BaseDendrite

NewBaseDendrite creates a new instance to be used by a component. The componentName is used for logging purposes, and should be a friendly name of the compontent running, e.g. "SyncAPI"

func (*BaseDendrite) AppserviceHTTPClient

func (b *BaseDendrite) AppserviceHTTPClient() appserviceAPI.AppServiceQueryAPI

AppserviceHTTPClient returns the AppServiceQueryAPI for hitting the appservice component over HTTP.

func (*BaseDendrite) Close

func (b *BaseDendrite) Close() error

Close implements io.Closer

func (*BaseDendrite) CreateAccountsDB

func (b *BaseDendrite) CreateAccountsDB() accounts.Database

CreateAccountsDB creates a new instance of the accounts database. Should only be called once per component.

func (*BaseDendrite) CreateClient

func (b *BaseDendrite) CreateClient() *gomatrixserverlib.Client

CreateClient creates a new client (normally used for media fetch requests). Should only be called once per component.

func (*BaseDendrite) CreateFederationClient

func (b *BaseDendrite) CreateFederationClient() *gomatrixserverlib.FederationClient

CreateFederationClient creates a new federation client. Should only be called once per component.

func (*BaseDendrite) EDUServerClient

func (b *BaseDendrite) EDUServerClient() eduServerAPI.EDUServerInputAPI

EDUServerClient returns EDUServerInputAPI for hitting the EDU server over HTTP

func (*BaseDendrite) FederationSenderHTTPClient

func (b *BaseDendrite) FederationSenderHTTPClient() federationSenderAPI.FederationSenderInternalAPI

FederationSenderHTTPClient returns FederationSenderInternalAPI for hitting the federation sender over HTTP

func (*BaseDendrite) KeyServerHTTPClient

func (b *BaseDendrite) KeyServerHTTPClient() keyserverAPI.KeyInternalAPI

KeyServerHTTPClient returns KeyInternalAPI for hitting the key server over HTTP

func (*BaseDendrite) RoomserverHTTPClient

func (b *BaseDendrite) RoomserverHTTPClient() roomserverAPI.RoomserverInternalAPI

RoomserverHTTPClient returns RoomserverInternalAPI for hitting the roomserver over HTTP.

func (*BaseDendrite) SetupAndServeHTTP

func (b *BaseDendrite) SetupAndServeHTTP(
	internalHTTPAddr, externalHTTPAddr config.HTTPAddress,
	certFile, keyFile *string,
)

SetupAndServeHTTP sets up the HTTP server to serve endpoints registered on ApiMux under /api/ and adds a prometheus handler under /metrics. nolint:gocyclo

func (*BaseDendrite) SigningKeyServerHTTPClient

func (b *BaseDendrite) SigningKeyServerHTTPClient() skapi.SigningKeyServerAPI

SigningKeyServerHTTPClient returns SigningKeyServer for hitting the signing key server over HTTP

func (*BaseDendrite) UserAPIClient

func (b *BaseDendrite) UserAPIClient() userapi.UserInternalAPI

UserAPIClient returns UserInternalAPI for hitting the userapi over HTTP.

type Monolith

Monolith represents an instantiation of all dependencies required to build all components of Dendrite, for use in monolith mode.

func (*Monolith) AddAllPublicRoutes

func (m *Monolith) AddAllPublicRoutes(csMux, ssMux, keyMux, mediaMux *mux.Router)

AddAllPublicRoutes attaches all public paths to the given router

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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