Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var AllowedHomeserverSoftware = map[HomeserverSoftware]bool{ SoftwareStandard: true, SoftwareAsmux: true, SoftwareHungry: true, }
View Source
var Upgrader = up.SimpleUpgrader(doUpgrade)
Upgrader is a config upgrader that copies the default fields in the homeserver, appservice and logging blocks.
Functions ¶
func RegisterPermissionLevel ¶
func RegisterPermissionLevel(name string, level PermissionLevel)
Types ¶
type AppserviceConfig ¶
type AppserviceConfig struct {
Address string `yaml:"address"`
Hostname string `yaml:"hostname"`
Port uint16 `yaml:"port"`
Database dbutil.Config `yaml:"database"`
ID string `yaml:"id"`
Bot BotUserConfig `yaml:"bot"`
ASToken string `yaml:"as_token"`
HSToken string `yaml:"hs_token"`
EphemeralEvents bool `yaml:"ephemeral_events"`
AsyncTransactions bool `yaml:"async_transactions"`
}
func (*AppserviceConfig) GetRegistration ¶
func (asc *AppserviceConfig) GetRegistration() *appservice.Registration
GetRegistration copies the data from the bridge config into an *appservice.Registration struct. This can't be used with the homeserver, see GenerateRegistration for generating files for the homeserver.
type BaseConfig ¶
type BaseConfig struct {
Homeserver HomeserverConfig `yaml:"homeserver"`
AppService AppserviceConfig `yaml:"appservice"`
Bridge BridgeConfig `yaml:"-"`
Logging zeroconfig.Config `yaml:"logging"`
}
func (*BaseConfig) GenerateRegistration ¶
func (config *BaseConfig) GenerateRegistration() *appservice.Registration
GenerateRegistration generates a registration file for the homeserver.
func (*BaseConfig) MakeAppService ¶
func (config *BaseConfig) MakeAppService() *appservice.AppService
func (*BaseConfig) MakeUserIDRegex ¶
func (config *BaseConfig) MakeUserIDRegex(matcher string) *regexp.Regexp
type BotUserConfig ¶
type BotUserConfig struct {
Username string `yaml:"username"`
Displayname string `yaml:"displayname"`
Avatar string `yaml:"avatar"`
ParsedAvatar id.ContentURI `yaml:"-"`
}
func (*BotUserConfig) UnmarshalYAML ¶
func (buc *BotUserConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
type BridgeConfig ¶
type BridgeConfig interface {
FormatUsername(username string) string
GetEncryptionConfig() EncryptionConfig
GetCommandPrefix() string
GetManagementRoomTexts() ManagementRoomTexts
GetResendBridgeInfo() bool
EnableMessageStatusEvents() bool
EnableMessageErrorNotices() bool
Validate() error
}
type EncryptionConfig ¶
type EncryptionConfig struct {
Allow bool `yaml:"allow"`
Default bool `yaml:"default"`
Require bool `yaml:"require"`
Appservice bool `yaml:"appservice"`
PlaintextMentions bool `yaml:"plaintext_mentions"`
DeleteKeys struct {
DeleteOutboundOnAck bool `yaml:"delete_outbound_on_ack"`
DontStoreOutbound bool `yaml:"dont_store_outbound"`
RatchetOnDecrypt bool `yaml:"ratchet_on_decrypt"`
DeleteFullyUsedOnDecrypt bool `yaml:"delete_fully_used_on_decrypt"`
DeletePrevOnNewSession bool `yaml:"delete_prev_on_new_session"`
DeleteOnDeviceDelete bool `yaml:"delete_on_device_delete"`
PeriodicallyDeleteExpired bool `yaml:"periodically_delete_expired"`
DeleteOutdatedInbound bool `yaml:"delete_outdated_inbound"`
} `yaml:"delete_keys"`
VerificationLevels struct {
Receive id.TrustState `yaml:"receive"`
Send id.TrustState `yaml:"send"`
Share id.TrustState `yaml:"share"`
} `yaml:"verification_levels"`
AllowKeySharing bool `yaml:"allow_key_sharing"`
Rotation struct {
EnableCustom bool `yaml:"enable_custom"`
Milliseconds int64 `yaml:"milliseconds"`
Messages int `yaml:"messages"`
DisableDeviceChangeKeyRotation bool `yaml:"disable_device_change_key_rotation"`
} `yaml:"rotation"`
}
type HomeserverConfig ¶
type HomeserverConfig struct {
Address string `yaml:"address"`
Domain string `yaml:"domain"`
AsyncMedia bool `yaml:"async_media"`
PublicAddress string `yaml:"public_address,omitempty"`
Software HomeserverSoftware `yaml:"software"`
StatusEndpoint string `yaml:"status_endpoint"`
MessageSendCheckpointEndpoint string `yaml:"message_send_checkpoint_endpoint"`
Websocket bool `yaml:"websocket"`
WSProxy string `yaml:"websocket_proxy"`
WSPingInterval int `yaml:"ping_interval_seconds"`
}
type HomeserverSoftware ¶
type HomeserverSoftware string
const ( SoftwareStandard HomeserverSoftware = "standard" SoftwareAsmux HomeserverSoftware = "asmux" SoftwareHungry HomeserverSoftware = "hungry" )
type ManagementRoomTexts ¶
type PermissionConfig ¶
type PermissionConfig map[string]PermissionLevel
func (PermissionConfig) Get ¶
func (pc PermissionConfig) Get(userID id.UserID) PermissionLevel
func (*PermissionConfig) UnmarshalYAML ¶
func (pc *PermissionConfig) UnmarshalYAML(unmarshal func(interface{}) error) error
type PermissionLevel ¶
type PermissionLevel int
const ( PermissionLevelBlock PermissionLevel = 0 PermissionLevelRelay PermissionLevel = 5 PermissionLevelUser PermissionLevel = 10 PermissionLevelAdmin PermissionLevel = 100 )
Click to show internal directories.
Click to hide internal directories.