config

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

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

func (*CommunityConfig) Value

func (c *CommunityConfig) Value() (driver.Value, 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)

Jump to

Keyboard shortcuts

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