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 ¶ added in v0.12.1
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.