476d5bebf2
- Introduces a new option on the settings UI to optionally publish the full campaign body in public archive RSS feeds. Closes #1033 Co-authored-by: Kailash Nadh <kailash@nadh.in>
110 lines
5.4 KiB
Go
110 lines
5.4 KiB
Go
package models
|
|
|
|
// Settings represents the app settings stored in the DB.
|
|
type Settings struct {
|
|
AppSiteName string `json:"app.site_name"`
|
|
AppRootURL string `json:"app.root_url"`
|
|
AppLogoURL string `json:"app.logo_url"`
|
|
AppFaviconURL string `json:"app.favicon_url"`
|
|
AppFromEmail string `json:"app.from_email"`
|
|
AppNotifyEmails []string `json:"app.notify_emails"`
|
|
EnablePublicSubPage bool `json:"app.enable_public_subscription_page"`
|
|
EnablePublicArchive bool `json:"app.enable_public_archive"`
|
|
EnablePublicArchiveRSSContent bool `json:"app.enable_public_archive_rss_content"`
|
|
SendOptinConfirmation bool `json:"app.send_optin_confirmation"`
|
|
CheckUpdates bool `json:"app.check_updates"`
|
|
AppLang string `json:"app.lang"`
|
|
|
|
AppBatchSize int `json:"app.batch_size"`
|
|
AppConcurrency int `json:"app.concurrency"`
|
|
AppMaxSendErrors int `json:"app.max_send_errors"`
|
|
AppMessageRate int `json:"app.message_rate"`
|
|
|
|
AppMessageSlidingWindow bool `json:"app.message_sliding_window"`
|
|
AppMessageSlidingWindowDuration string `json:"app.message_sliding_window_duration"`
|
|
AppMessageSlidingWindowRate int `json:"app.message_sliding_window_rate"`
|
|
|
|
PrivacyIndividualTracking bool `json:"privacy.individual_tracking"`
|
|
PrivacyUnsubHeader bool `json:"privacy.unsubscribe_header"`
|
|
PrivacyAllowBlocklist bool `json:"privacy.allow_blocklist"`
|
|
PrivacyAllowPreferences bool `json:"privacy.allow_preferences"`
|
|
PrivacyAllowExport bool `json:"privacy.allow_export"`
|
|
PrivacyAllowWipe bool `json:"privacy.allow_wipe"`
|
|
PrivacyExportable []string `json:"privacy.exportable"`
|
|
DomainBlocklist []string `json:"privacy.domain_blocklist"`
|
|
|
|
SecurityEnableCaptcha bool `json:"security.enable_captcha"`
|
|
SecurityCaptchaKey string `json:"security.captcha_key"`
|
|
SecurityCaptchaSecret string `json:"security.captcha_secret"`
|
|
|
|
UploadProvider string `json:"upload.provider"`
|
|
UploadFilesystemUploadPath string `json:"upload.filesystem.upload_path"`
|
|
UploadFilesystemUploadURI string `json:"upload.filesystem.upload_uri"`
|
|
UploadS3URL string `json:"upload.s3.url"`
|
|
UploadS3PublicURL string `json:"upload.s3.public_url"`
|
|
UploadS3AwsAccessKeyID string `json:"upload.s3.aws_access_key_id"`
|
|
UploadS3AwsDefaultRegion string `json:"upload.s3.aws_default_region"`
|
|
UploadS3AwsSecretAccessKey string `json:"upload.s3.aws_secret_access_key,omitempty"`
|
|
UploadS3Bucket string `json:"upload.s3.bucket"`
|
|
UploadS3BucketDomain string `json:"upload.s3.bucket_domain"`
|
|
UploadS3BucketPath string `json:"upload.s3.bucket_path"`
|
|
UploadS3BucketType string `json:"upload.s3.bucket_type"`
|
|
UploadS3Expiry string `json:"upload.s3.expiry"`
|
|
|
|
SMTP []struct {
|
|
UUID string `json:"uuid"`
|
|
Enabled bool `json:"enabled"`
|
|
Host string `json:"host"`
|
|
HelloHostname string `json:"hello_hostname"`
|
|
Port int `json:"port"`
|
|
AuthProtocol string `json:"auth_protocol"`
|
|
Username string `json:"username"`
|
|
Password string `json:"password,omitempty"`
|
|
EmailHeaders []map[string]string `json:"email_headers"`
|
|
MaxConns int `json:"max_conns"`
|
|
MaxMsgRetries int `json:"max_msg_retries"`
|
|
IdleTimeout string `json:"idle_timeout"`
|
|
WaitTimeout string `json:"wait_timeout"`
|
|
TLSType string `json:"tls_type"`
|
|
TLSSkipVerify bool `json:"tls_skip_verify"`
|
|
} `json:"smtp"`
|
|
|
|
Messengers []struct {
|
|
UUID string `json:"uuid"`
|
|
Enabled bool `json:"enabled"`
|
|
Name string `json:"name"`
|
|
RootURL string `json:"root_url"`
|
|
Username string `json:"username"`
|
|
Password string `json:"password,omitempty"`
|
|
MaxConns int `json:"max_conns"`
|
|
Timeout string `json:"timeout"`
|
|
MaxMsgRetries int `json:"max_msg_retries"`
|
|
} `json:"messengers"`
|
|
|
|
BounceEnabled bool `json:"bounce.enabled"`
|
|
BounceEnableWebhooks bool `json:"bounce.webhooks_enabled"`
|
|
BounceCount int `json:"bounce.count"`
|
|
BounceAction string `json:"bounce.action"`
|
|
SESEnabled bool `json:"bounce.ses_enabled"`
|
|
SendgridEnabled bool `json:"bounce.sendgrid_enabled"`
|
|
SendgridKey string `json:"bounce.sendgrid_key"`
|
|
BounceBoxes []struct {
|
|
UUID string `json:"uuid"`
|
|
Enabled bool `json:"enabled"`
|
|
Type string `json:"type"`
|
|
Host string `json:"host"`
|
|
Port int `json:"port"`
|
|
AuthProtocol string `json:"auth_protocol"`
|
|
ReturnPath string `json:"return_path"`
|
|
Username string `json:"username"`
|
|
Password string `json:"password,omitempty"`
|
|
TLSEnabled bool `json:"tls_enabled"`
|
|
TLSSkipVerify bool `json:"tls_skip_verify"`
|
|
ScanInterval string `json:"scan_interval"`
|
|
} `json:"bounce.mailboxes"`
|
|
|
|
AdminCustomCSS string `json:"appearance.admin.custom_css"`
|
|
AdminCustomJS string `json:"appearance.admin.custom_js"`
|
|
PublicCustomCSS string `json:"appearance.public.custom_css"`
|
|
PublicCustomJS string `json:"appearance.public.custom_js"`
|
|
}
|