settings.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. package models
  2. // Settings represents the app settings stored in the DB.
  3. type Settings struct {
  4. AppSiteName string `json:"app.site_name"`
  5. AppRootURL string `json:"app.root_url"`
  6. AppLogoURL string `json:"app.logo_url"`
  7. AppFaviconURL string `json:"app.favicon_url"`
  8. AppFromEmail string `json:"app.from_email"`
  9. AppNotifyEmails []string `json:"app.notify_emails"`
  10. EnablePublicSubPage bool `json:"app.enable_public_subscription_page"`
  11. EnablePublicArchive bool `json:"app.enable_public_archive"`
  12. EnablePublicArchiveRSSContent bool `json:"app.enable_public_archive_rss_content"`
  13. SendOptinConfirmation bool `json:"app.send_optin_confirmation"`
  14. CheckUpdates bool `json:"app.check_updates"`
  15. AppLang string `json:"app.lang"`
  16. AppBatchSize int `json:"app.batch_size"`
  17. AppConcurrency int `json:"app.concurrency"`
  18. AppMaxSendErrors int `json:"app.max_send_errors"`
  19. AppMessageRate int `json:"app.message_rate"`
  20. AppMessageSlidingWindow bool `json:"app.message_sliding_window"`
  21. AppMessageSlidingWindowDuration string `json:"app.message_sliding_window_duration"`
  22. AppMessageSlidingWindowRate int `json:"app.message_sliding_window_rate"`
  23. PrivacyIndividualTracking bool `json:"privacy.individual_tracking"`
  24. PrivacyUnsubHeader bool `json:"privacy.unsubscribe_header"`
  25. PrivacyAllowBlocklist bool `json:"privacy.allow_blocklist"`
  26. PrivacyAllowPreferences bool `json:"privacy.allow_preferences"`
  27. PrivacyAllowExport bool `json:"privacy.allow_export"`
  28. PrivacyAllowWipe bool `json:"privacy.allow_wipe"`
  29. PrivacyExportable []string `json:"privacy.exportable"`
  30. PrivacyRecordOptinIP bool `json:"privacy.record_optin_ip"`
  31. DomainBlocklist []string `json:"privacy.domain_blocklist"`
  32. SecurityEnableCaptcha bool `json:"security.enable_captcha"`
  33. SecurityCaptchaKey string `json:"security.captcha_key"`
  34. SecurityCaptchaSecret string `json:"security.captcha_secret"`
  35. UploadProvider string `json:"upload.provider"`
  36. UploadExtensions []string `json:"upload.extensions"`
  37. UploadFilesystemUploadPath string `json:"upload.filesystem.upload_path"`
  38. UploadFilesystemUploadURI string `json:"upload.filesystem.upload_uri"`
  39. UploadS3URL string `json:"upload.s3.url"`
  40. UploadS3PublicURL string `json:"upload.s3.public_url"`
  41. UploadS3AwsAccessKeyID string `json:"upload.s3.aws_access_key_id"`
  42. UploadS3AwsDefaultRegion string `json:"upload.s3.aws_default_region"`
  43. UploadS3AwsSecretAccessKey string `json:"upload.s3.aws_secret_access_key,omitempty"`
  44. UploadS3Bucket string `json:"upload.s3.bucket"`
  45. UploadS3BucketDomain string `json:"upload.s3.bucket_domain"`
  46. UploadS3BucketPath string `json:"upload.s3.bucket_path"`
  47. UploadS3BucketType string `json:"upload.s3.bucket_type"`
  48. UploadS3Expiry string `json:"upload.s3.expiry"`
  49. SMTP []struct {
  50. UUID string `json:"uuid"`
  51. Enabled bool `json:"enabled"`
  52. Host string `json:"host"`
  53. HelloHostname string `json:"hello_hostname"`
  54. Port int `json:"port"`
  55. AuthProtocol string `json:"auth_protocol"`
  56. Username string `json:"username"`
  57. Password string `json:"password,omitempty"`
  58. EmailHeaders []map[string]string `json:"email_headers"`
  59. MaxConns int `json:"max_conns"`
  60. MaxMsgRetries int `json:"max_msg_retries"`
  61. IdleTimeout string `json:"idle_timeout"`
  62. WaitTimeout string `json:"wait_timeout"`
  63. TLSType string `json:"tls_type"`
  64. TLSSkipVerify bool `json:"tls_skip_verify"`
  65. } `json:"smtp"`
  66. Messengers []struct {
  67. UUID string `json:"uuid"`
  68. Enabled bool `json:"enabled"`
  69. Name string `json:"name"`
  70. RootURL string `json:"root_url"`
  71. Username string `json:"username"`
  72. Password string `json:"password,omitempty"`
  73. MaxConns int `json:"max_conns"`
  74. Timeout string `json:"timeout"`
  75. MaxMsgRetries int `json:"max_msg_retries"`
  76. } `json:"messengers"`
  77. BounceEnabled bool `json:"bounce.enabled"`
  78. BounceEnableWebhooks bool `json:"bounce.webhooks_enabled"`
  79. BounceActions map[string]struct {
  80. Count int `json:"count"`
  81. Action string `json:"action"`
  82. } `json:"bounce.actions"`
  83. SESEnabled bool `json:"bounce.ses_enabled"`
  84. SendgridEnabled bool `json:"bounce.sendgrid_enabled"`
  85. SendgridKey string `json:"bounce.sendgrid_key"`
  86. BouncePostmark struct {
  87. Enabled bool `json:"enabled"`
  88. Username string `json:"username"`
  89. Password string `json:"password"`
  90. } `json:"bounce.postmark"`
  91. BounceBoxes []struct {
  92. UUID string `json:"uuid"`
  93. Enabled bool `json:"enabled"`
  94. Type string `json:"type"`
  95. Host string `json:"host"`
  96. Port int `json:"port"`
  97. AuthProtocol string `json:"auth_protocol"`
  98. ReturnPath string `json:"return_path"`
  99. Username string `json:"username"`
  100. Password string `json:"password,omitempty"`
  101. TLSEnabled bool `json:"tls_enabled"`
  102. TLSSkipVerify bool `json:"tls_skip_verify"`
  103. ScanInterval string `json:"scan_interval"`
  104. } `json:"bounce.mailboxes"`
  105. AdminCustomCSS string `json:"appearance.admin.custom_css"`
  106. AdminCustomJS string `json:"appearance.admin.custom_js"`
  107. PublicCustomCSS string `json:"appearance.public.custom_css"`
  108. PublicCustomJS string `json:"appearance.public.custom_js"`
  109. }