Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CommunityConfig ¶
type CommunityConfig struct {
KeywordFilterKeywords []string `json:"keyword_filter_keywords,omitempty" envconfig:"keyword_filter_keywords" default:"spammy spam"`
MentionFilterMaxMentions int `json:"mention_filter_max_mentions,omitempty" envconfig:"mention_filter_max_mentions" default:"20"`
MentionFilterMinPlaintextLength int `json:"mention_filter_min_plaintext_length,omitempty" envconfig:"mention_filter_min_plaintext_length" default:"5"`
ManyAtsFilterMaxAts int `json:"many_ats_filter_max_ats,omitempty" envconfig:"many_ats_filter_max_ats" default:"20"`
MediaFilterMediaTypes []string `` /* 129-byte string literal not displayed */
UntrustedMediaFilterMediaTypes []string `` /* 149-byte string literal not displayed */
UntrustedMediaFilterUseMuninn bool `json:"untrusted_media_filter_use_muninn,omitempty" envconfig:"untrusted_media_filter_use_muninn" default:"true"`
UntrustedMediaFilterUsePowerLevels bool `json:"untrusted_media_filter_use_power_levels,omitempty" envconfig:"untrusted_media_filter_use_power_levels" default:"true"`
UntrustedMediaFilterAllowedUserGlobs []string `json:"untrusted_media_filter_allowed_user_globs,omitempty" envconfig:"untrusted_media_filter_allowed_user_globs" default:""`
UntrustedMediaFilterDeniedUserGlobs []string `json:"untrusted_media_filter_denied_user_globs,omitempty" envconfig:"untrusted_media_filter_denied_user_globs" default:""`
DensityFilterMaxDensity float64 `json:"density_filter_max_density,omitempty" envconfig:"density_filter_max_density" default:"0.95"`
DensityFilterMinTriggerLength int `json:"density_filter_min_trigger_length,omitempty" envconfig:"density_filter_min_trigger_length" default:"150"`
TrimLengthFilterMaxDifference int `json:"trim_length_filter_max_difference,omitempty" envconfig:"trim_length_filter_max_difference" default:"25"`
LengthFilterMaxLength int `json:"length_filter_max_length,omitempty" envconfig:"length_filter_max_length" default:"10000"`
SenderPrefilterAllowedSenders []string `json:"sender_prefilter_allowed_senders,omitempty" envconfig:"sender_prefilter_allowed_senders" default:""`
EventTypePrefilterAllowedEventTypes []string `` /* 137-byte string literal not displayed */
EventTypePrefilterAllowedStateEventTypes []string `` /* 325-byte string literal not displayed */
HellbanPostfilterMinutes int `json:"hellban_postfilter_minutes,omitempty" envconfig:"hellban_postfilter_minutes" default:"60"`
MjolnirFilterEnabled bool `json:"mjolnir_filter_enabled,omitempty" envconfig:"mjolnir_filter_enabled" default:"true"`
SpamThreshold float64 `json:"spam_threshold,omitempty" envconfig:"spam_threshold" default:"0.8"`
WebhookUrl string `json:"webhook_url,omitempty" envconfig:"webhook_url" default:""`
OpenAIFilterFailSecure bool `json:"openai_filter_fail_secure,omitempty" envconfig:"openai_filter_fail_secure" default:"true"`
StickyEventsFilterAllowStickyEvents bool `json:"sticky_events_filter_allow_sticky_events,omitempty" envconfig:"sticky_events_filter_allow_sticky_events" default:"true"`
HMAFilterEnabledBanks []string `json:"hma_filter_enabled_banks,omitempty" envconfig:"hma_filter_enabled_banks" default:""`
}
func NewCommunityConfigForJSON ¶
func NewCommunityConfigForJSON(configJson []byte) (*CommunityConfig, error)
func NewDefaultCommunityConfig ¶
func NewDefaultCommunityConfig() (*CommunityConfig, error)
func (*CommunityConfig) Clone ¶
func (c *CommunityConfig) Clone() (*CommunityConfig, error)
func (*CommunityConfig) Scan ¶
func (c *CommunityConfig) Scan(src interface{}) error
type InstanceConfig ¶
type InstanceConfig struct {
HttpBind string `envconfig:"http_bind" default:"0.0.0.0:8080"`
MetricsBind string `envconfig:"http_metrics_bind" default:"0.0.0.0:8081"`
PprofBind string `envconfig:"http_pprof_bind" default:""`
ApiKey string `envconfig:"api_key" default:""`
Database string `envconfig:"database" default:"postgres://policyserv:devonly@localhost/policyserv?sslmode=disable"`
DatabaseMigrationsDir string `envconfig:"database_migrations_dir" default:"./migrations"`
DatabaseMaxOpenConns int `envconfig:"database_max_open_conns" default:"10"`
DatabaseMaxIdleConns int `envconfig:"database_max_idle_conns" default:"5"`
DatabaseReadonlyUri string `envconfig:"database_read" default:""`
DatabaseReadonlyMaxOpen int `envconfig:"database_read_max_open" default:"10"`
DatabaseReadonlyMaxIdle int `envconfig:"database_read_max_idle" default:"5"`
ProcessingPoolSize int `envconfig:"processing_pool_size" default:"100"`
KeyQueryServer []string `envconfig:"key_query_server" default:"matrix.org,ed25519:a_RXGa,l8Hft5qXKn1vfHrg3p4+W8gELQVo8N13JkluMfmn2sQ"`
EnableDirectKeyFetching bool `envconfig:"direct_key_fetching" default:"false"`
TrustedOrigins []string `envconfig:"trusted_origins" default:"matrix.org,element.io"`
StateCacheMinutes int `envconfig:"state_cache_minutes" default:"5"`
HomeserverName string `envconfig:"homeserver_name" default:"localhost"`
HomeserverSigningKeyPath string `envconfig:"homeserver_signing_key_path" default:"./signing.key"`
HomeserverEventSigningKeyPath string `envconfig:"homeserver_event_signing_key_path" default:"./signing.key"`
HomeserverMediaClientUrl string `envconfig:"homeserver_media_client_url" default:"https://matrix-client.matrix.org"`
HomeserverMediaClientAccessToken string `envconfig:"homeserver_media_client_access_token" default:""`
// Note: the Mjolnir filter can't be configured by communities at the moment
MjolnirFilterRoomID string `envconfig:"mjolnir_filter_room_id" default:""`
// Note: the OpenAI filter can't be configured by communities at the moment
OpenAIApiKey string `envconfig:"openai_filter_api_key" default:""`
OpenAIAllowedRoomIds []string `envconfig:"openai_filter_allowed_room_ids" default:""`
MuninnHallSourceApiUrl string `envconfig:"muninn_hall_source_api_url" default:"https://mau.bot/_matrix/maubot/plugin/muninnbot/member_directory"`
MuninnHallSourceApiKey string `envconfig:"muninn_hall_source_api_key" default:""`
JoinRoomIDs []string `envconfig:"join_room_ids" default:""`
JoinServer string `envconfig:"join_server" default:"matrix.org"`
JoinLocalpart string `envconfig:"join_localpart" default:"policyserv"`
// [Client-Server API domain (no scheme)]:[access token]
// Example: matrix-client.matrix.org:syt_example
ModeratorAccessTokens map[string]string `envconfig:"moderator_access_tokens" default:""`
ModerationPoolSize int `envconfig:"moderation_pool_size" default:"25"`
AllowedWebhookDomains []string `envconfig:"allowed_webhook_domains" default:"element.ems.host"`
WebhookPoolSize int `envconfig:"webhook_pool_size" default:"5"`
HMAApiUrl string `envconfig:"hma_api_url" default:""`
HMAApiKey string `envconfig:"hma_api_key" default:""`
}
func NewInstanceConfig ¶
func NewInstanceConfig() (*InstanceConfig, error)
Click to show internal directories.
Click to hide internal directories.