openship 0.4.4 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/README.md +2 -24
  2. package/dist/bare-2HYDXQEH.js +23 -0
  3. package/dist/{bowser-MFQA6OS4.js → bowser-O3AEA6AN.js} +5 -1
  4. package/dist/{chunk-KD7VO4LG.js → chunk-2ZLR7ULL.js} +255 -65
  5. package/dist/{chunk-YHXCHW7Q.js → chunk-3JQTL4R4.js} +236 -99
  6. package/dist/{chunk-E77LJWJK.js → chunk-4TJC4JZQ.js} +20 -9
  7. package/dist/{chunk-YL67EWYZ.js → chunk-4Z5QO7N6.js} +6 -2
  8. package/dist/{chunk-WJPCBU7Z.js → chunk-5FNIWBFI.js} +10 -6
  9. package/dist/{chunk-Y37KHU7L.js → chunk-5MZ624VX.js} +5 -0
  10. package/dist/{chunk-QKFRZNKN.js → chunk-6APIPIJY.js} +8 -4
  11. package/dist/{chunk-JZLNHGLW.js → chunk-6APULWSU.js} +153 -133
  12. package/dist/{chunk-F4DFVG6Q.js → chunk-6B5YCFFV.js} +8 -4
  13. package/dist/{chunk-XVSAUO2I.js → chunk-AVIB7CT7.js} +5 -1
  14. package/dist/{chunk-TEYJYSMT.js → chunk-C5OHTYEF.js} +12 -6
  15. package/dist/{chunk-7UOB5GGQ.js → chunk-DYPH4HCI.js} +5 -0
  16. package/dist/{chunk-XIFRMKYT.js → chunk-EI575GHN.js} +6 -2
  17. package/dist/{chunk-4CQWT2WL.js → chunk-FPRHYBY2.js} +5 -0
  18. package/dist/chunk-FQGJZ2HS.js +248 -0
  19. package/dist/{chunk-JR2OCMJA.js → chunk-FRNAR33O.js} +6 -2
  20. package/dist/{chunk-JUJBBF5U.js → chunk-FXTBHTWY.js} +362 -42
  21. package/dist/chunk-ILFETZOM.js +131 -0
  22. package/dist/{chunk-5ZCKQ2MI.js → chunk-IXCHURVK.js} +7 -3
  23. package/dist/{chunk-6ERIMTBC.js → chunk-JYGD5WSN.js} +5 -0
  24. package/dist/{chunk-4VNS5WPM.js → chunk-KI2EY3WB.js} +4 -0
  25. package/dist/{chunk-3U4SPZD5.js → chunk-L2VOGB2X.js} +7 -104
  26. package/dist/{chunk-NB2VEIWG.js → chunk-MZ2WEHHY.js} +7 -3
  27. package/dist/{chunk-BUBSSKO6.js → chunk-O6ZZF52V.js} +5 -1
  28. package/dist/{chunk-LBFH7THC.js → chunk-OWED2GRM.js} +5 -1
  29. package/dist/{chunk-4MG3BVHE.js → chunk-OXWDY22G.js} +6 -2
  30. package/dist/{chunk-4FABQGQP.js → chunk-Q2CIRAOK.js} +5 -0
  31. package/dist/{chunk-4LEL3H2Z.js → chunk-RPHRPFEH.js} +5 -0
  32. package/dist/{chunk-46YJFP4S.js → chunk-SQ77DZOI.js} +1728 -1484
  33. package/dist/{chunk-S6DSRLNE.js → chunk-TGIINPVM.js} +15 -2
  34. package/dist/{chunk-U2DPZSXA.js → chunk-TYVME3XD.js} +9 -1
  35. package/dist/{chunk-HFYDYK4D.js → chunk-V6AN6XLZ.js} +18 -6
  36. package/dist/{chunk-ZKJOFWBJ.js → chunk-VDMQJHPI.js} +38 -15
  37. package/dist/{chunk-E6W2JMMU.js → chunk-VFINNTUL.js} +22 -1
  38. package/dist/{chunk-OJE6YWPQ.js → chunk-VWPEKOH6.js} +6 -2
  39. package/dist/{chunk-5N7VUGL6.js → chunk-W73X43R7.js} +6 -2
  40. package/dist/cloud-7QYOGF7F.js +11 -0
  41. package/dist/cloud-ZSKOS4GY.js +30 -0
  42. package/dist/detect-SH4FHFBI.js +36 -0
  43. package/dist/{dist-L3MPOWCA.js → dist-IQJ6H6UZ.js} +6 -2
  44. package/dist/{dist-es-KE56MWYO.js → dist-es-5DY7K32L.js} +9 -5
  45. package/dist/dist-es-JSTDUS7Q.js +26 -0
  46. package/dist/{dist-es-GTAMF674.js → dist-es-OSNJBLXB.js} +8 -4
  47. package/dist/{dist-es-NRZIQY5B.js → dist-es-RYHIPOTN.js} +17 -13
  48. package/dist/{dist-es-XQCOTGC7.js → dist-es-VNKHQVIB.js} +7 -3
  49. package/dist/{dist-es-WZCR7DHQ.js → dist-es-WV4AMOII.js} +11 -7
  50. package/dist/{dist-es-ZW3HFQUM.js → dist-es-X3B5QYKB.js} +9 -5
  51. package/dist/docker-U7AF5PTA.js +16 -0
  52. package/dist/docker-edge-executor-VHW3JPJS.js +13 -0
  53. package/dist/edge-import-V5CBA47C.js +45 -0
  54. package/dist/ensure-container-edge-CMYROUSI.js +33 -0
  55. package/dist/{event-streams-7LGDL56D.js → event-streams-EHRAKL75.js} +7 -3
  56. package/dist/executor-YPT6RH6O.js +30 -0
  57. package/dist/index.d.ts +2 -1
  58. package/dist/index.js +258 -245
  59. package/dist/{loadSso-N273C5I7.js → loadSso-46FQRIZS.js} +13 -9
  60. package/dist/local-executor-V7U5VOZW.js +12 -0
  61. package/dist/nginx-2GTRUIDE.js +24 -0
  62. package/dist/noop-FMMFG2EZ.js +11 -0
  63. package/dist/{openresty-lua-HAO4EUDY.js → openresty-lua-4WLGDSER.js} +13 -3
  64. package/dist/server/engine/ChangeLog +2289 -0
  65. package/dist/server/engine/Documentations +5 -0
  66. package/dist/server/engine/LICENSE +674 -0
  67. package/dist/server/engine/README.md +34 -0
  68. package/dist/server/engine/conf/amavisd +150 -0
  69. package/dist/server/engine/conf/clamav +71 -0
  70. package/dist/server/engine/conf/core +632 -0
  71. package/dist/server/engine/conf/dovecot +151 -0
  72. package/dist/server/engine/conf/fail2ban +72 -0
  73. package/dist/server/engine/conf/global +698 -0
  74. package/dist/server/engine/conf/iredapd +52 -0
  75. package/dist/server/engine/conf/logwatch +28 -0
  76. package/dist/server/engine/conf/postfix +97 -0
  77. package/dist/server/engine/conf/postgresql +93 -0
  78. package/dist/server/engine/conf/spamassassin +39 -0
  79. package/dist/server/engine/dialog/config_via_dialog.sh +258 -0
  80. package/dist/server/engine/dialog/optional_components.sh +122 -0
  81. package/dist/server/engine/dialog/pgsql_config.sh +52 -0
  82. package/dist/server/engine/dialog/virtual_domain_config.sh +94 -0
  83. package/dist/server/engine/functions/amavisd.sh +267 -0
  84. package/dist/server/engine/functions/backend.sh +85 -0
  85. package/dist/server/engine/functions/clamav.sh +100 -0
  86. package/dist/server/engine/functions/cleanup.sh +393 -0
  87. package/dist/server/engine/functions/dovecot.sh +583 -0
  88. package/dist/server/engine/functions/fail2ban.sh +209 -0
  89. package/dist/server/engine/functions/iredapd.sh +356 -0
  90. package/dist/server/engine/functions/optional_components.sh +24 -0
  91. package/dist/server/engine/functions/packages.sh +522 -0
  92. package/dist/server/engine/functions/packages_freebsd.sh +179 -0
  93. package/dist/server/engine/functions/postfix.sh +457 -0
  94. package/dist/server/engine/functions/postgresql.sh +239 -0
  95. package/dist/server/engine/functions/spamassassin.sh +49 -0
  96. package/dist/server/engine/functions/system_accounts.sh +128 -0
  97. package/dist/server/engine/iRedMail.sh +144 -0
  98. package/dist/server/engine/pkgs/get_all.sh +338 -0
  99. package/dist/server/engine/pkgs/pkgs.freebsd.sha256 +3 -0
  100. package/dist/server/engine/pkgs/pkgs.openbsd.sha256 +6 -0
  101. package/dist/server/engine/pkgs/pkgs.sha256 +1 -0
  102. package/dist/server/engine/samples/amavisd/amavisd.conf +677 -0
  103. package/dist/server/engine/samples/amavisd/amavisd.mysql +278 -0
  104. package/dist/server/engine/samples/amavisd/amavisd.pgsql +253 -0
  105. package/dist/server/engine/samples/amavisd/amavisd.schema +942 -0
  106. package/dist/server/engine/samples/amavisd/default_spam_policy.sql +46 -0
  107. package/dist/server/engine/samples/dovecot/dovecot-2.4-mariadb.conf +758 -0
  108. package/dist/server/engine/samples/dovecot/dovecot-2.4-openldap.conf +767 -0
  109. package/dist/server/engine/samples/dovecot/dovecot-2.4-pgsql.conf +762 -0
  110. package/dist/server/engine/samples/dovecot/dovecot-last-login.conf +50 -0
  111. package/dist/server/engine/samples/dovecot/dovecot-ldap.conf +21 -0
  112. package/dist/server/engine/samples/dovecot/dovecot-share-folder.conf +22 -0
  113. package/dist/server/engine/samples/dovecot/dovecot-sql.conf +28 -0
  114. package/dist/server/engine/samples/dovecot/dovecot-used-quota.conf +13 -0
  115. package/dist/server/engine/samples/dovecot/dovecot.conf +484 -0
  116. package/dist/server/engine/samples/dovecot/dovecot.sieve +7 -0
  117. package/dist/server/engine/samples/dovecot/dovecot2-quota-warning.sh +38 -0
  118. package/dist/server/engine/samples/dovecot/sql/imap_share_folder.mysql +16 -0
  119. package/dist/server/engine/samples/dovecot/sql/last_login.mysql +12 -0
  120. package/dist/server/engine/samples/dovecot/sql/used_quota.mysql +26 -0
  121. package/dist/server/engine/samples/dovecot/systemd/override.conf +3 -0
  122. package/dist/server/engine/samples/fail2ban/action.d/banned_db.conf +9 -0
  123. package/dist/server/engine/samples/fail2ban/bin/fail2ban_banned_db +268 -0
  124. package/dist/server/engine/samples/fail2ban/fail2ban.local +17 -0
  125. package/dist/server/engine/samples/fail2ban/filter.d/dovecot.iredmail.conf +5 -0
  126. package/dist/server/engine/samples/fail2ban/filter.d/postfix-pregreet.iredmail.conf +16 -0
  127. package/dist/server/engine/samples/fail2ban/filter.d/postfix.iredmail.conf +18 -0
  128. package/dist/server/engine/samples/fail2ban/filter.d/roundcube.iredmail.conf +9 -0
  129. package/dist/server/engine/samples/fail2ban/jail.d/dovecot.local +8 -0
  130. package/dist/server/engine/samples/fail2ban/jail.d/nginx-http-auth.local +8 -0
  131. package/dist/server/engine/samples/fail2ban/jail.d/postfix-pregreet.local +9 -0
  132. package/dist/server/engine/samples/fail2ban/jail.d/postfix.local +8 -0
  133. package/dist/server/engine/samples/fail2ban/jail.d/roundcube.local +9 -0
  134. package/dist/server/engine/samples/fail2ban/jail.d/sogo.local +8 -0
  135. package/dist/server/engine/samples/fail2ban/jail.d/sshd.local +8 -0
  136. package/dist/server/engine/samples/fail2ban/jail.local +6 -0
  137. package/dist/server/engine/samples/fail2ban/openbsd/rc +27 -0
  138. package/dist/server/engine/samples/fail2ban/sql/fail2ban.mysql +49 -0
  139. package/dist/server/engine/samples/fail2ban/sql/fail2ban.pgsql +48 -0
  140. package/dist/server/engine/samples/firewall/firewalld/services/ssh.xml +6 -0
  141. package/dist/server/engine/samples/firewall/firewalld/zones/iredmail.xml +15 -0
  142. package/dist/server/engine/samples/firewall/iptables/ip6tables.init.debian +362 -0
  143. package/dist/server/engine/samples/firewall/iptables/ip6tables.rules +53 -0
  144. package/dist/server/engine/samples/firewall/iptables/iptables.init.debian +363 -0
  145. package/dist/server/engine/samples/firewall/iptables/iptables.rules +54 -0
  146. package/dist/server/engine/samples/firewall/nftables.conf +58 -0
  147. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/dovecot.conf +3 -0
  148. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/iredapd.conf +1 -0
  149. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/mlmmjadmin.conf +1 -0
  150. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/php-fpm.conf +2 -0
  151. package/dist/server/engine/samples/freebsd/newsyslog.conf.d/slapd.conf +1 -0
  152. package/dist/server/engine/samples/freebsd/syslog.d/dovecot.conf +2 -0
  153. package/dist/server/engine/samples/freebsd/syslog.d/fail2ban.conf +2 -0
  154. package/dist/server/engine/samples/freebsd/syslog.d/iredapd.conf +2 -0
  155. package/dist/server/engine/samples/freebsd/syslog.d/mlmmjadmin.conf +2 -0
  156. package/dist/server/engine/samples/freebsd/syslog.d/php-fpm.conf +2 -0
  157. package/dist/server/engine/samples/freebsd/syslog.d/slapd.conf +2 -0
  158. package/dist/server/engine/samples/iredmail/iredmail.mysql +491 -0
  159. package/dist/server/engine/samples/iredmail/iredmail.pgsql +465 -0
  160. package/dist/server/engine/samples/iredmail/iredmail.schema +456 -0
  161. package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.3.pgsql +40 -0
  162. package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.4.pgsql +18 -0
  163. package/dist/server/engine/samples/logrotate/dovecot +13 -0
  164. package/dist/server/engine/samples/logrotate/iredapd +13 -0
  165. package/dist/server/engine/samples/logrotate/mlmmjadmin +13 -0
  166. package/dist/server/engine/samples/logrotate/openldap +19 -0
  167. package/dist/server/engine/samples/logrotate/php-fpm +13 -0
  168. package/dist/server/engine/samples/openbsd/ldapd.conf +58 -0
  169. package/dist/server/engine/samples/openbsd/pf.conf +28 -0
  170. package/dist/server/engine/samples/postfix/command_filter.pcre +3 -0
  171. package/dist/server/engine/samples/postfix/freebsd/mailer.conf +9 -0
  172. package/dist/server/engine/samples/postfix/helo_access.pcre +180 -0
  173. package/dist/server/engine/samples/postfix/ldap/catchall_maps.cf +11 -0
  174. package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_domain.cf +11 -0
  175. package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_user.cf +11 -0
  176. package/dist/server/engine/samples/postfix/ldap/relay_domains.cf +11 -0
  177. package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_domain.cf +11 -0
  178. package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_user.cf +11 -0
  179. package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_domain.cf +11 -0
  180. package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_user.cf +11 -0
  181. package/dist/server/engine/samples/postfix/ldap/sender_login_maps.cf +11 -0
  182. package/dist/server/engine/samples/postfix/ldap/transport_maps_domain.cf +11 -0
  183. package/dist/server/engine/samples/postfix/ldap/transport_maps_user.cf +11 -0
  184. package/dist/server/engine/samples/postfix/ldap/virtual_alias_maps.cf +11 -0
  185. package/dist/server/engine/samples/postfix/ldap/virtual_group_maps.cf +11 -0
  186. package/dist/server/engine/samples/postfix/ldap/virtual_group_members_maps.cf +11 -0
  187. package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_domains.cf +11 -0
  188. package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_maps.cf +12 -0
  189. package/dist/server/engine/samples/postfix/main.cf +282 -0
  190. package/dist/server/engine/samples/postfix/main.cf.amavisd +7 -0
  191. package/dist/server/engine/samples/postfix/main.cf.dovecot +8 -0
  192. package/dist/server/engine/samples/postfix/main.cf.ldap +39 -0
  193. package/dist/server/engine/samples/postfix/main.cf.mlmmj +5 -0
  194. package/dist/server/engine/samples/postfix/main.cf.mysql +39 -0
  195. package/dist/server/engine/samples/postfix/main.cf.pgsql +39 -0
  196. package/dist/server/engine/samples/postfix/main.cf.postscreen +30 -0
  197. package/dist/server/engine/samples/postfix/master.cf +87 -0
  198. package/dist/server/engine/samples/postfix/mysql/catchall_maps.cf +5 -0
  199. package/dist/server/engine/samples/postfix/mysql/domain_alias_catchall_maps.cf +5 -0
  200. package/dist/server/engine/samples/postfix/mysql/domain_alias_maps.cf +5 -0
  201. package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_domain.cf +5 -0
  202. package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_user.cf +5 -0
  203. package/dist/server/engine/samples/postfix/mysql/relay_domains.cf +5 -0
  204. package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_domain.cf +5 -0
  205. package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_user.cf +5 -0
  206. package/dist/server/engine/samples/postfix/mysql/sender_dependent_relayhost_maps.cf +6 -0
  207. package/dist/server/engine/samples/postfix/mysql/sender_login_maps.cf +5 -0
  208. package/dist/server/engine/samples/postfix/mysql/transport_maps_domain.cf +5 -0
  209. package/dist/server/engine/samples/postfix/mysql/transport_maps_maillist.cf +5 -0
  210. package/dist/server/engine/samples/postfix/mysql/transport_maps_user.cf +5 -0
  211. package/dist/server/engine/samples/postfix/mysql/virtual_alias_maps.cf +5 -0
  212. package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_domains.cf +5 -0
  213. package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_maps.cf +5 -0
  214. package/dist/server/engine/samples/postfix/pgsql/catchall_maps.cf +5 -0
  215. package/dist/server/engine/samples/postfix/pgsql/domain_alias_catchall_maps.cf +5 -0
  216. package/dist/server/engine/samples/postfix/pgsql/domain_alias_maps.cf +5 -0
  217. package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_domain.cf +5 -0
  218. package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_user.cf +5 -0
  219. package/dist/server/engine/samples/postfix/pgsql/relay_domains.cf +5 -0
  220. package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_domain.cf +5 -0
  221. package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_user.cf +5 -0
  222. package/dist/server/engine/samples/postfix/pgsql/sender_dependent_relayhost_maps.cf +6 -0
  223. package/dist/server/engine/samples/postfix/pgsql/sender_login_maps.cf +5 -0
  224. package/dist/server/engine/samples/postfix/pgsql/transport_maps_domain.cf +5 -0
  225. package/dist/server/engine/samples/postfix/pgsql/transport_maps_maillist.cf +5 -0
  226. package/dist/server/engine/samples/postfix/pgsql/transport_maps_user.cf +5 -0
  227. package/dist/server/engine/samples/postfix/pgsql/virtual_alias_maps.cf +5 -0
  228. package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_domains.cf +5 -0
  229. package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_maps.cf +5 -0
  230. package/dist/server/engine/samples/postfix/postscreen_access.cidr +6 -0
  231. package/dist/server/engine/samples/postgresql/sql/add_first_domain_and_user.sql +34 -0
  232. package/dist/server/engine/samples/postgresql/sql/grant_permissions.sql +14 -0
  233. package/dist/server/engine/samples/postgresql/sql/init_vmail_db.sql +15 -0
  234. package/dist/server/engine/samples/rsyslog.d/1-iredmail-dovecot.conf +23 -0
  235. package/dist/server/engine/samples/rsyslog.d/1-iredmail-fail2ban.conf +2 -0
  236. package/dist/server/engine/samples/rsyslog.d/1-iredmail-iredapd.conf +12 -0
  237. package/dist/server/engine/samples/rsyslog.d/1-iredmail-mlmmjadmin.conf +12 -0
  238. package/dist/server/engine/samples/rsyslog.d/1-iredmail-openldap.conf +2 -0
  239. package/dist/server/engine/samples/rsyslog.d/1-iredmail-phpfpm.conf +3 -0
  240. package/dist/server/engine/samples/spamassassin/local.cf +186 -0
  241. package/dist/server/engine/samples/spamassassin/razor.conf +1 -0
  242. package/dist/server/engine/samples/systemd/clamd.service.d/override.conf +2 -0
  243. package/dist/server/engine/samples/systemd/mariadb.service.d/override.conf +3 -0
  244. package/dist/server/engine/samples/systemd/slapd.service.d/override.conf +6 -0
  245. package/dist/server/engine/samples/yum/CentOS-Linux-AppStream.repo +6 -0
  246. package/dist/server/engine/samples/yum/CentOS-Linux-PowerTools.repo +6 -0
  247. package/dist/server/engine/samples/yum/CentOS-Stream-AppStream.repo +7 -0
  248. package/dist/server/engine/samples/yum/CentOS-Stream-PowerTools.repo +7 -0
  249. package/dist/server/engine/samples/yum/symas-openldap.repo +6 -0
  250. package/dist/server/engine/tools/add_enabled_service.py +60 -0
  251. package/dist/server/engine/tools/backup_mysql.sh +238 -0
  252. package/dist/server/engine/tools/backup_openldap.sh +230 -0
  253. package/dist/server/engine/tools/backup_pgsql.sh +217 -0
  254. package/dist/server/engine/tools/backup_sogo.sh +156 -0
  255. package/dist/server/engine/tools/create_mail_user_OpenLDAP.py +335 -0
  256. package/dist/server/engine/tools/create_mail_user_OpenLDAP.sh +287 -0
  257. package/dist/server/engine/tools/create_mail_user_SQL.sh +127 -0
  258. package/dist/server/engine/tools/enable_postscreen.sh +144 -0
  259. package/dist/server/engine/tools/fail2ban_unban_ip.sh +39 -0
  260. package/dist/server/engine/tools/find_sasl_login_ip.sh +20 -0
  261. package/dist/server/engine/tools/find_top_sasl_usernames.sh +28 -0
  262. package/dist/server/engine/tools/generate_ssl_keys.sh +85 -0
  263. package/dist/server/engine/tools/kill_high_cpu_sogo_process.sh +32 -0
  264. package/dist/server/engine/tools/ldap_assign_user_to_groups.py +151 -0
  265. package/dist/server/engine/tools/ldap_move_members_to_another_group.py +129 -0
  266. package/dist/server/engine/tools/migrate_sql_alias_table.py +177 -0
  267. package/dist/server/engine/update/0.9.8/amavisd.mysql +29 -0
  268. package/dist/server/engine/update/0.9.8/amavisd.pgsql +39 -0
  269. package/dist/server/engine/update/0.9.8/iredmail.mysql +53 -0
  270. package/dist/server/engine/update/0.9.8/iredmail.pgsql +61 -0
  271. package/dist/server/engine/update/0.9.9/iredmail.mysql +2 -0
  272. package/dist/server/engine/update/0.9.9/iredmail.pgsql +2 -0
  273. package/dist/server/engine/update/1.0/iredmail.mysql +2 -0
  274. package/dist/server/engine/update/1.0/iredmail.pgsql +2 -0
  275. package/dist/server/engine/update/1.2/last_login.mysql +16 -0
  276. package/dist/server/engine/update/1.4.0/iredmail.mysql +22 -0
  277. package/dist/server/engine/update/1.4.0/iredmail.pgsql +20 -0
  278. package/dist/server/engine/update/1.4.1/iredmail.mysql +3 -0
  279. package/dist/server/engine/update/1.4.1/iredmail.pgsql +3 -0
  280. package/dist/server/engine/update/1.4.1/sogo.mysql +11 -0
  281. package/dist/server/engine/update/1.4.1/sogo.pgsql +30 -0
  282. package/dist/server/engine/update/1.4.1/update-ldap.py +66 -0
  283. package/dist/server/engine/update/1.4.2/iredmail.mysql +9 -0
  284. package/dist/server/engine/update/1.4.2/iredmail.pgsql +9 -0
  285. package/dist/server/engine/update/1.4.2/sogo.pgsql +30 -0
  286. package/dist/server/engine/update/1.6.0/sogo_view.pgsql +27 -0
  287. package/dist/server/engine/update/1.6.3/iredmail.mysql +1 -0
  288. package/dist/server/engine/update/1.7.0/fail2ban.mysql +11 -0
  289. package/dist/server/engine/update/1.7.0/fail2ban.pgsql +12 -0
  290. package/dist/server/engine/update/1.7.1/amavisd.mysql +1 -0
  291. package/dist/server/engine/update/1.7.2/vmail.mysql +30 -0
  292. package/dist/server/engine/update/1.7.3/deleted_mailboxes.mysql +43 -0
  293. package/dist/server/engine/update/1.7.3/iredadmin.mysql +26 -0
  294. package/dist/server/engine/update/1.7.3/vmail.mysql +79 -0
  295. package/dist/server/engine/update/1.7.3/vmail.pgsql +9 -0
  296. package/dist/server/engine/update/README.md +1 -0
  297. package/dist/server/engine/update/ldap/README.md +40 -0
  298. package/dist/server/engine/update/ldap/update-ldap-dovecot-2.3.py +69 -0
  299. package/dist/server/index.js +55574 -53675
  300. package/dist/server/migrations/0071_gh_device_token.sql +3 -0
  301. package/dist/server/migrations/0072_gh_device_token_method.sql +1 -0
  302. package/dist/server/migrations/meta/_journal.json +14 -0
  303. package/dist/setup-HQIZLUOJ.js +20 -0
  304. package/dist/{signin-DR462ERO.js → signin-ITOPKKUB.js} +13 -9
  305. package/dist/{sso-oidc-VBZLJUK5.js → sso-oidc-NON2PD7Y.js} +13 -9
  306. package/dist/{sts-EJLZ4Z77.js → sts-HHFFSAY2.js} +12 -8
  307. package/package.json +1 -1
  308. package/dist/bare-ITM45QBX.js +0 -18
  309. package/dist/cloud-JMPHO3CW.js +0 -7
  310. package/dist/cloud-W5G6YXAY.js +0 -24
  311. package/dist/dist-es-4C322O5D.js +0 -22
  312. package/dist/docker-3FVJMFC3.js +0 -12
  313. package/dist/docker-edge-executor-ZIWAZWPL.js +0 -9
  314. package/dist/edge-import-Y34YL6JK.js +0 -39
  315. package/dist/executor-J7BHW5HF.js +0 -26
  316. package/dist/nginx-YZWKYKQU.js +0 -16
  317. package/dist/noop-RRNCIUI5.js +0 -7
  318. package/dist/setup-5X3WEEHA.js +0 -14
@@ -0,0 +1,278 @@
1
+ -- MySQL template for Amavisd-new-2.7.0 and later releases.
2
+ -- Extracted from Amavisd docs/README.sql-mysql.
3
+
4
+ -- used in @lookup_sql_dsn
5
+ -- local users
6
+ CREATE TABLE users (
7
+ id int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, -- unique id
8
+ priority integer NOT NULL DEFAULT '7', -- sort field, 0 is low prior.
9
+ policy_id integer unsigned NOT NULL DEFAULT '1', -- JOINs with policy.id
10
+ email varbinary(255) NOT NULL UNIQUE,
11
+ fullname varchar(255) DEFAULT NULL -- not used by amavisd-new
12
+ -- local char(1) -- Y/N (optional field, see note further down)
13
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
14
+
15
+ -- used in @lookup_sql_dsn
16
+ -- any e-mail address (non- rfc2822-quoted), external or local,
17
+ -- used as senders in wblist
18
+ CREATE TABLE mailaddr (
19
+ id int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
20
+ priority integer NOT NULL DEFAULT '7', -- 0 is low priority
21
+ email varbinary(255) NOT NULL UNIQUE
22
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
23
+
24
+ -- used in @lookup_sql_dsn
25
+ -- per-recipient whitelist and/or blacklist,
26
+ -- puts sender and recipient in relation wb (white or blacklisted sender)
27
+ -- White/blacklist for inbound message
28
+ CREATE TABLE wblist (
29
+ rid integer unsigned NOT NULL, -- recipient: users.id
30
+ sid integer unsigned NOT NULL, -- sender: mailaddr.id
31
+ wb varchar(10) NOT NULL, -- W or Y / B or N / space=neutral / score
32
+ PRIMARY KEY (rid,sid)
33
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
34
+
35
+ -- White/blacklist for outbound message
36
+ -- Note: it's used by iRedAPD plugin `amavisd_wblist`, not by Amavisd.
37
+ CREATE TABLE outbound_wblist (
38
+ rid integer unsigned NOT NULL, -- recipient: mailaddr.id
39
+ sid integer unsigned NOT NULL, -- sender: users.id
40
+ wb varchar(10) NOT NULL, -- W or Y / B or N / space=neutral / score
41
+ PRIMARY KEY (rid,sid)
42
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
43
+
44
+ -- used in @lookup_sql_dsn
45
+ CREATE TABLE policy (
46
+ id int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
47
+ -- 'id' this is the _only_ required field
48
+ policy_name varchar(32), -- not used by amavisd-new, a comment
49
+
50
+ virus_lover char(1) default NULL, -- Y/N
51
+ spam_lover char(1) default NULL, -- Y/N
52
+ unchecked_lover char(1) default NULL, -- Y/N
53
+ banned_files_lover char(1) default NULL, -- Y/N
54
+ bad_header_lover char(1) default NULL, -- Y/N
55
+
56
+ bypass_virus_checks char(1) default NULL, -- Y/N
57
+ bypass_spam_checks char(1) default NULL, -- Y/N
58
+ bypass_banned_checks char(1) default NULL, -- Y/N
59
+ bypass_header_checks char(1) default NULL, -- Y/N
60
+
61
+ virus_quarantine_to varchar(64) default NULL,
62
+ spam_quarantine_to varchar(64) default NULL,
63
+ banned_quarantine_to varchar(64) default NULL,
64
+ unchecked_quarantine_to varchar(64) default NULL,
65
+ bad_header_quarantine_to varchar(64) default NULL,
66
+ clean_quarantine_to varchar(64) default NULL,
67
+ archive_quarantine_to varchar(64) default NULL,
68
+
69
+ spam_tag_level float default NULL, -- higher score inserts spam info headers
70
+ spam_tag2_level float default NULL, -- inserts 'declared spam' header fields
71
+ spam_tag3_level float default NULL, -- inserts 'blatant spam' header fields
72
+ spam_kill_level float default NULL, -- higher score triggers evasive actions
73
+ -- e.g. reject/drop, quarantine, ...
74
+ -- (subject to final_spam_destiny setting)
75
+ spam_dsn_cutoff_level float default NULL,
76
+ spam_quarantine_cutoff_level float default NULL,
77
+
78
+ addr_extension_virus varchar(64) default NULL,
79
+ addr_extension_spam varchar(64) default NULL,
80
+ addr_extension_banned varchar(64) default NULL,
81
+ addr_extension_bad_header varchar(64) default NULL,
82
+
83
+ warnvirusrecip char(1) default NULL, -- Y/N
84
+ warnbannedrecip char(1) default NULL, -- Y/N
85
+ warnbadhrecip char(1) default NULL, -- Y/N
86
+ newvirus_admin varchar(64) default NULL,
87
+ virus_admin varchar(64) default NULL,
88
+ banned_admin varchar(64) default NULL,
89
+ bad_header_admin varchar(64) default NULL,
90
+ spam_admin varchar(64) default NULL,
91
+ spam_subject_tag varchar(64) default NULL,
92
+ spam_subject_tag2 varchar(64) default NULL,
93
+ spam_subject_tag3 varchar(64) default NULL,
94
+ message_size_limit integer default NULL, -- max size in bytes, 0 disable
95
+ banned_rulenames varchar(64) default NULL, -- comma-separated list of ...
96
+ -- names mapped through %banned_rules to actual banned_filename tables
97
+ disclaimer_options varchar(64) default NULL,
98
+ forward_method varchar(64) default NULL,
99
+ sa_userconf varchar(64) default NULL,
100
+ sa_username varchar(64) default NULL
101
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
102
+
103
+ -- Required by iRedMail
104
+ ALTER TABLE policy MODIFY COLUMN policy_name VARCHAR(255) NOT NULL DEFAULT '';
105
+ CREATE UNIQUE INDEX policy_idx_policy_name ON policy (policy_name);
106
+
107
+ -- Read-write part of the dataset (optional) - @storage_sql_dsn.
108
+ -- May reside in the same or in a separate database as lookups database;
109
+ -- REQUIRES SUPPORT FOR TRANSACTIONS; specified in @storage_sql_dsn
110
+ --
111
+ -- MySQL note ( http://dev.mysql.com/doc/mysql/en/storage-engines.html ):
112
+ -- ENGINE is the preferred term, but cannot be used before MySQL 4.0.18.
113
+ -- TYPE is available beginning with MySQL 3.23.0, the first version of
114
+ -- MySQL for which multiple storage engines were available. If you omit
115
+ -- the ENGINE or TYPE option, the default storage engine is used.
116
+ -- By default this is MyISAM.
117
+ --
118
+ -- Please create additional indexes on keys when needed, or drop suggested
119
+ -- ones as appropriate to optimize queries needed by a management application.
120
+ -- See your database documentation for further optimization hints. With MySQL
121
+ -- see Chapter 15 of the reference manual. For example the chapter 15.17 says:
122
+ -- InnoDB does not keep an internal count of rows in a table. To process a
123
+ -- SELECT COUNT(*) FROM T statement, InnoDB must scan an index of the table,
124
+ -- which takes some time if the index is not entirely in the buffer pool.
125
+ --
126
+ -- Wayne Smith adds: When using MySQL with InnoDB one might want to
127
+ -- increase buffer size for both pool and log, and might also want
128
+ -- to change flush settings for a little better performance. Example:
129
+ -- innodb_buffer_pool_size = 384M
130
+ -- innodb_log_buffer_size = 8M
131
+ -- innodb_flush_log_at_trx_commit = 0
132
+ -- The big performance increase is the first two, the third just helps with
133
+ -- lowering disk activity. Consider also adjusting the key_buffer_size.
134
+
135
+ -- used in @storage_sql_dsn
136
+ -- provide unique id for each e-mail address, avoids storing copies
137
+ CREATE TABLE maddr (
138
+ partition_tag integer DEFAULT 0, -- see $partition_tag
139
+ id bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
140
+ email varbinary(255) NOT NULL, -- full mail address
141
+ -- mail address without address extension: user+abc@domain.com -> user@domain.com
142
+ email_raw varbinary(255) NOT NULL DEFAULT '',
143
+ domain varchar(255) NOT NULL, -- only domain part of the email address
144
+ -- with subdomain fields in reverse
145
+ CONSTRAINT part_email UNIQUE (partition_tag,email)
146
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
147
+
148
+ CREATE INDEX maddr_idx_email ON maddr (email);
149
+ CREATE INDEX maddr_idx_email_raw ON maddr (email_raw);
150
+ CREATE INDEX maddr_idx_domain ON maddr (domain);
151
+
152
+ -- Create trigger to save email address withou address extension
153
+ -- user+abc@domain.com -> user@domain.com
154
+ DELIMITER //
155
+ CREATE TRIGGER `maddr_email_raw`
156
+ BEFORE INSERT
157
+ ON `maddr`
158
+ FOR EACH ROW
159
+ BEGIN
160
+ IF (NEW.email LIKE '%+%') THEN
161
+ SET NEW.email_raw = CONCAT(SUBSTRING_INDEX(NEW.email, '+', 1), '@', SUBSTRING_INDEX(new.email, '@', -1));
162
+ ELSE
163
+ SET NEW.email_raw = NEW.email;
164
+ END IF;
165
+ END;
166
+ //
167
+ DELIMITER ;
168
+
169
+ -- used in @storage_sql_dsn
170
+ -- information pertaining to each processed message as a whole;
171
+ -- NOTE: records with NULL msgs.content should be ignored by utilities,
172
+ -- as such records correspond to messages just being processes, or were lost
173
+ -- NOTE: instead of a character field time_iso, one might prefer:
174
+ -- time_iso TIMESTAMP NOT NULL DEFAULT 0,
175
+ -- but the following MUST then be set in amavisd.conf: $timestamp_fmt_mysql=1
176
+ CREATE TABLE msgs (
177
+ partition_tag integer DEFAULT 0, -- see $partition_tag
178
+ mail_id varbinary(16) NOT NULL, -- long-term unique mail id, dflt 12 ch
179
+ secret_id varbinary(16) DEFAULT '', -- authorizes release of mail_id, 12 ch
180
+ am_id varchar(20) NOT NULL, -- id used in the log
181
+ time_num integer unsigned NOT NULL, -- rx_time: seconds since Unix epoch
182
+ time_iso char(16) NOT NULL, -- rx_time: ISO8601 UTC ascii time
183
+ sid bigint unsigned NOT NULL, -- sender: maddr.id
184
+ policy varchar(255) DEFAULT '', -- policy bank path (like macro %p)
185
+ client_addr varchar(255) DEFAULT '', -- SMTP client IP address (IPv4 or v6)
186
+ size integer unsigned NOT NULL, -- message size in bytes
187
+ originating char(1) DEFAULT ' ' NOT NULL, -- sender from inside or auth'd
188
+ content char(1),
189
+ -- V: virus
190
+ -- B: banned
191
+ -- U: unchecked
192
+ -- S: spam(kill)
193
+ -- Y: spammy(tag2)
194
+ -- M: bad-mime
195
+ -- H: bad-header
196
+ -- O: oversized
197
+ -- O: mta-err
198
+ -- C: clean
199
+ -- is NULL on partially processed mail
200
+ -- (prior to 2.7.0 the CC_SPAMMY was logged as 's', now 'Y' is used;
201
+ -- to avoid a need for case-insenstivity in queries)
202
+ quar_type char(1), -- quarantined as: ' '/F/Z/B/Q/M/L
203
+ -- none/file/zipfile/bsmtp/sql/
204
+ -- /mailbox(smtp)/mailbox(lmtp)
205
+ quar_loc varbinary(255) DEFAULT '', -- quarantine location (e.g. file)
206
+ dsn_sent char(1), -- was DSN sent? Y/N/q (q=quenched)
207
+ spam_level float, -- SA spam level (no boosts)
208
+ message_id varchar(255) DEFAULT '', -- mail Message-ID header field
209
+ from_addr VARBINARY(255) NOT NULL DEFAULT '', -- mail From header field, UTF8
210
+ subject VARBINARY(1024) NOT NULL DEFAULT '', -- mail Subject header field, UTF8
211
+ host varchar(255) NOT NULL, -- hostname where amavisd is running
212
+ PRIMARY KEY (partition_tag,mail_id)
213
+ -- FOREIGN KEY (sid) REFERENCES maddr(id) ON DELETE RESTRICT
214
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
215
+
216
+ CREATE INDEX msgs_idx_sid ON msgs (sid);
217
+ CREATE INDEX msgs_idx_mess_id ON msgs (message_id); -- useful with pen pals
218
+ CREATE INDEX msgs_idx_time_num ON msgs (time_num);
219
+
220
+ CREATE INDEX msgs_idx_mail_id ON msgs (mail_id);
221
+ CREATE INDEX msgs_idx_content ON msgs (content);
222
+ CREATE INDEX msgs_idx_quar_type ON msgs (quar_type);
223
+ CREATE INDEX msgs_idx_content_time_num ON msgs (content, time_num);
224
+ CREATE INDEX msgs_idx_spam_level ON msgs (spam_level);
225
+
226
+ -- alternatively when purging based on time_iso (instead of msgs_idx_time_num):
227
+ CREATE INDEX msgs_idx_time_iso ON msgs (time_iso);
228
+
229
+ -- used in @storage_sql_dsn
230
+ -- per-recipient information related to each processed message;
231
+ -- NOTE: records in msgrcpt without corresponding msgs.mail_id record are
232
+ -- orphaned and should be ignored and eventually deleted by external utilities
233
+ CREATE TABLE msgrcpt (
234
+ partition_tag integer DEFAULT 0, -- see $partition_tag
235
+ mail_id varbinary(16) NOT NULL, -- (must allow duplicates)
236
+ rseqnum integer DEFAULT 0 NOT NULL, -- recip's enumeration within msg
237
+ rid bigint unsigned NOT NULL, -- recipient: maddr.id (dupl. allowed)
238
+ is_local char(1) DEFAULT ' ' NOT NULL, -- recip is: Y=local, N=foreign
239
+ content char(1) DEFAULT ' ' NOT NULL, -- content type V/B/U/S/Y/M/H/O/T/C
240
+ ds char(1) NOT NULL, -- delivery status: P/R/B/D/T
241
+ -- pass/reject/bounce/discard/tempfail
242
+ rs char(1) NOT NULL, -- release status: initialized to ' '
243
+ bl char(1) DEFAULT ' ', -- sender blacklisted by this recip
244
+ wl char(1) DEFAULT ' ', -- sender whitelisted by this recip
245
+ bspam_level float, -- per-recipient (total) spam level
246
+ smtp_resp varchar(255) DEFAULT '', -- SMTP response given to MTA
247
+ PRIMARY KEY (partition_tag,mail_id,rseqnum)
248
+ -- FOREIGN KEY (rid) REFERENCES maddr(id) ON DELETE RESTRICT,
249
+ -- FOREIGN KEY (mail_id) REFERENCES msgs(mail_id) ON DELETE CASCADE
250
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
251
+
252
+ CREATE INDEX msgrcpt_idx_mail_id ON msgrcpt (mail_id);
253
+ CREATE INDEX msgrcpt_idx_rid ON msgrcpt (rid);
254
+
255
+ -- used in @storage_sql_dsn
256
+ -- mail quarantine in SQL, enabled by $*_quarantine_method='sql:'
257
+ -- NOTE: records in quarantine without corresponding msgs.mail_id record are
258
+ -- orphaned and should be ignored and eventually deleted by external utilities
259
+ CREATE TABLE quarantine (
260
+ partition_tag integer DEFAULT 0, -- see $partition_tag
261
+ mail_id varbinary(16) NOT NULL, -- long-term unique mail id
262
+ chunk_ind integer unsigned NOT NULL, -- chunk number, starting with 1
263
+ mail_text blob NOT NULL, -- store mail as chunks of octets
264
+ PRIMARY KEY (partition_tag,mail_id,chunk_ind)
265
+ -- FOREIGN KEY (mail_id) REFERENCES msgs(mail_id) ON DELETE CASCADE
266
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
267
+
268
+ CREATE INDEX quar_idx_mail_id ON quarantine (mail_id);
269
+
270
+ -- field msgrcpt.rs is primarily intended for use by quarantine management
271
+ -- software; the value assigned by amavisd is a space;
272
+ -- a short _preliminary_ list of possible values:
273
+ -- 'V' => viewed (marked as read)
274
+ -- 'R' => released (delivered) to this recipient
275
+ -- 'p' => pending (a status given to messages when the admin received the
276
+ -- request but not yet released; targeted to banned parts)
277
+ -- 'D' => marked for deletion; a cleanup script may delete it
278
+
@@ -0,0 +1,253 @@
1
+ -- MySQL template for Amavisd-new-2.7.0 and later releases.
2
+ -- Read-only part of the dataset (@lookup_sql_dsn)
3
+
4
+ -- used in @lookup_sql_dsn
5
+ -- local users
6
+ CREATE TABLE users (
7
+ id serial PRIMARY KEY, -- unique id
8
+ priority integer NOT NULL DEFAULT '7', -- sort field, 0 is low prior.
9
+ policy_id integer NOT NULL DEFAULT '1' CHECK (policy_id >= 0),
10
+ -- JOINs with policy.id
11
+ email bytea NOT NULL UNIQUE, -- email address, non-rfc2822-quoted
12
+ fullname varchar(255) DEFAULT NULL -- not used by amavisd-new
13
+ -- local char(1) -- Y/N (optional field, see note further down)
14
+ );
15
+
16
+ -- used in @lookup_sql_dsn
17
+ -- any e-mail address (non- rfc2822-quoted), external or local,
18
+ -- used as senders in wblist
19
+ CREATE TABLE mailaddr (
20
+ id serial PRIMARY KEY,
21
+ priority integer NOT NULL DEFAULT '7', -- 0 is low priority
22
+ email bytea NOT NULL UNIQUE
23
+ );
24
+
25
+ -- used in @lookup_sql_dsn
26
+ -- per-recipient whitelist and/or blacklist,
27
+ -- puts sender and recipient in relation wb (white or blacklisted sender)
28
+ -- White/blacklist for inbound message
29
+ CREATE TABLE wblist (
30
+ rid integer NOT NULL CHECK (rid >= 0), -- recipient: users.id
31
+ sid integer NOT NULL CHECK (sid >= 0), -- sender: mailaddr.id
32
+ wb varchar(10) NOT NULL, -- W or Y / B or N / space=neutral / score
33
+ PRIMARY KEY (rid,sid)
34
+ );
35
+
36
+ -- White/blacklist for outbound message
37
+ -- Note: it's used by iRedAPD plugin `amavisd_wblist`, not by Amavisd.
38
+ CREATE TABLE outbound_wblist (
39
+ rid integer NOT NULL CHECK (rid >= 0), -- recipient: mailaddr.id
40
+ sid integer NOT NULL CHECK (sid >= 0), -- sender: users.id
41
+ wb varchar(10) NOT NULL, -- W or Y / B or N / space=neutral / score
42
+ PRIMARY KEY (rid,sid)
43
+ );
44
+
45
+ -- used in @lookup_sql_dsn
46
+ CREATE TABLE policy (
47
+ id serial PRIMARY KEY, -- 'id' this is the _only_ required field
48
+ policy_name varchar(32), -- not used by amavisd-new, a comment
49
+
50
+ virus_lover char(1) default NULL, -- Y/N
51
+ spam_lover char(1) default NULL, -- Y/N
52
+ unchecked_lover char(1) default NULL, -- Y/N
53
+ banned_files_lover char(1) default NULL, -- Y/N
54
+ bad_header_lover char(1) default NULL, -- Y/N
55
+
56
+ bypass_virus_checks char(1) default NULL, -- Y/N
57
+ bypass_spam_checks char(1) default NULL, -- Y/N
58
+ bypass_banned_checks char(1) default NULL, -- Y/N
59
+ bypass_header_checks char(1) default NULL, -- Y/N
60
+
61
+ virus_quarantine_to varchar(64) default NULL,
62
+ spam_quarantine_to varchar(64) default NULL,
63
+ banned_quarantine_to varchar(64) default NULL,
64
+ unchecked_quarantine_to varchar(64) default NULL,
65
+ bad_header_quarantine_to varchar(64) default NULL,
66
+ clean_quarantine_to varchar(64) default NULL,
67
+ archive_quarantine_to varchar(64) default NULL,
68
+
69
+ spam_tag_level real default NULL, -- higher score inserts spam info headers
70
+ spam_tag2_level real default NULL, -- inserts 'declared spam' header fields
71
+ spam_tag3_level real default NULL, -- inserts 'blatant spam' header fields
72
+ spam_kill_level real default NULL, -- higher score triggers evasive actions
73
+ -- e.g. reject/drop, quarantine, ...
74
+ -- (subject to final_spam_destiny setting)
75
+ spam_dsn_cutoff_level real default NULL,
76
+ spam_quarantine_cutoff_level real default NULL,
77
+
78
+ addr_extension_virus varchar(64) default NULL,
79
+ addr_extension_spam varchar(64) default NULL,
80
+ addr_extension_banned varchar(64) default NULL,
81
+ addr_extension_bad_header varchar(64) default NULL,
82
+
83
+ warnvirusrecip char(1) default NULL, -- Y/N
84
+ warnbannedrecip char(1) default NULL, -- Y/N
85
+ warnbadhrecip char(1) default NULL, -- Y/N
86
+ newvirus_admin varchar(64) default NULL,
87
+ virus_admin varchar(64) default NULL,
88
+ banned_admin varchar(64) default NULL,
89
+ bad_header_admin varchar(64) default NULL,
90
+ spam_admin varchar(64) default NULL,
91
+ spam_subject_tag varchar(64) default NULL,
92
+ spam_subject_tag2 varchar(64) default NULL,
93
+ spam_subject_tag3 varchar(64) default NULL,
94
+ message_size_limit integer default NULL, -- max size in bytes, 0 disable
95
+ banned_rulenames varchar(64) default NULL, -- comma-separated list of ...
96
+ -- names mapped through %banned_rules to actual banned_filename tables
97
+ disclaimer_options varchar(64) default NULL,
98
+ forward_method varchar(64) default NULL,
99
+ sa_userconf varchar(64) default NULL,
100
+ sa_username varchar(64) default NULL
101
+ );
102
+
103
+ -- Required by iRedMail
104
+ ALTER TABLE policy ALTER COLUMN policy_name TYPE varchar(255);
105
+ CREATE UNIQUE INDEX policy_idx_policy_name ON policy (policy_name);
106
+
107
+ -- Read-write part of the dataset (optional) - @storage_sql_dsn.
108
+ -- May reside in the same or in a separate database as lookups database;
109
+ -- REQUIRES SUPPORT FOR TRANSACTIONS; specified in @storage_sql_dsn
110
+ --
111
+ -- Please create additional indexes on keys when needed, or drop suggested
112
+ -- ones as appropriate to optimize queries needed by a management application.
113
+ -- See your database documentation for further optimization hints.
114
+
115
+ -- used in @storage_sql_dsn
116
+ -- provide unique id for each e-mail address, avoids storing copies
117
+ CREATE TABLE maddr (
118
+ partition_tag integer DEFAULT 0, -- see $partition_tag
119
+ id serial PRIMARY KEY,
120
+ -- full e-mail address
121
+ email bytea NOT NULL, -- long-term unique mail id, dflt 12 ch
122
+ -- mail address without address extension: user+abc@domain.com -> user@domain.com
123
+ email_raw VARCHAR(255) NOT NULL DEFAULT '',
124
+ domain bytea NOT NULL, -- only domain part of the email address
125
+ -- with subdomain fields in reverse
126
+ CONSTRAINT part_email UNIQUE (partition_tag,email)
127
+ );
128
+
129
+ CREATE INDEX maddr_idx_email ON maddr (email);
130
+ CREATE INDEX maddr_idx_email_raw ON maddr (email_raw);
131
+ CREATE INDEX maddr_idx_domain ON maddr (domain);
132
+
133
+ -- Create trigger to save email address withou address extension
134
+ -- user+abc@domain.com -> user@domain.com
135
+ -- CREATE OR REPLACE FUNCTION strip_addr_extension(bytea, varchar, integer) RETURNS TRIGGER AS $$
136
+ CREATE OR REPLACE FUNCTION strip_addr_extension()
137
+ RETURNS TRIGGER AS $$
138
+ BEGIN
139
+ IF (NEW.email LIKE '%+%') THEN
140
+ NEW.email_raw := split_part(convert_from(NEW.email, 'UTF8'), '+', 1) || '@' || split_part(convert_from(NEW.email, 'UTF8'), '@', 2);
141
+ ELSE
142
+ NEW.email_raw := convert_from(NEW.email, 'UTF8');
143
+ END IF;
144
+ RETURN NEW;
145
+ END;
146
+ $$ LANGUAGE plpgsql;
147
+
148
+ CREATE TRIGGER maddr_email_raw
149
+ BEFORE INSERT ON maddr
150
+ FOR EACH ROW
151
+ EXECUTE PROCEDURE strip_addr_extension();
152
+
153
+ -- used in @storage_sql_dsn
154
+ -- information pertaining to each processed message as a whole;
155
+ -- NOTE: records with NULL msgs.content should be ignored by utilities,
156
+ -- as such records correspond to messages just being processes, or were lost
157
+ CREATE TABLE msgs (
158
+ partition_tag integer DEFAULT 0, -- see $partition_tag
159
+ mail_id bytea NOT NULL, -- long-term unique mail id, dflt 12 ch
160
+ secret_id bytea DEFAULT '', -- authorizes release of mail_id, 12 ch
161
+ am_id varchar(20) NOT NULL, -- id used in the log
162
+ time_num integer NOT NULL CHECK (time_num >= 0),
163
+ -- rx_time: seconds since Unix epoch
164
+ time_iso timestamp WITH TIME ZONE NOT NULL,-- rx_time: ISO8601 UTC ascii time
165
+ sid integer NOT NULL CHECK (sid >= 0), -- sender: maddr.id
166
+ policy varchar(255) DEFAULT '', -- policy bank path (like macro %p)
167
+ client_addr varchar(255) DEFAULT '', -- SMTP client IP address (IPv4 or v6)
168
+ size integer NOT NULL CHECK (size >= 0), -- message size in bytes
169
+ originating char(1) DEFAULT ' ' NOT NULL, -- sender from inside or auth'd
170
+ content char(1),
171
+ -- V: virus
172
+ -- B: banned
173
+ -- U: unchecked
174
+ -- S: spam(kill)
175
+ -- Y: spammy(tag2)
176
+ -- M: bad-mime
177
+ -- H: bad-header
178
+ -- O: oversized
179
+ -- O: mta-err
180
+ -- C: clean
181
+ -- is NULL on partially processed mail
182
+ -- (prior to 2.7.0 the CC_SPAMMY was logged as 's', now 'Y' is used;
183
+ -- to avoid a need for case-insenstivity in queries)
184
+ quar_type char(1), -- quarantined as: ' '/F/Z/B/Q/M/L
185
+ -- none/file/zipfile/bsmtp/sql/
186
+ -- /mailbox(smtp)/mailbox(lmtp)
187
+ quar_loc varchar(255) DEFAULT '', -- quarantine location (e.g. file)
188
+ dsn_sent char(1), -- was DSN sent? Y/N/q (q=quenched)
189
+ spam_level real, -- SA spam level (no boosts)
190
+ message_id varchar(255) DEFAULT '', -- mail Message-ID header field
191
+ from_addr bytea DEFAULT '', -- mail From header field, UTF8
192
+ subject bytea DEFAULT '', -- mail Subject header field, UTF8
193
+ host varchar(255) NOT NULL, -- hostname where amavisd is running
194
+ PRIMARY KEY (partition_tag,mail_id)
195
+ --FOREIGN KEY (sid) REFERENCES maddr(id) ON DELETE RESTRICT
196
+ );
197
+ CREATE INDEX msgs_idx_sid ON msgs (sid);
198
+ CREATE INDEX msgs_idx_mess_id ON msgs (message_id); -- useful with pen pals
199
+ CREATE INDEX msgs_idx_time_iso ON msgs (time_iso);
200
+ CREATE INDEX msgs_idx_time_num ON msgs (time_num); -- optional
201
+
202
+ CREATE INDEX msgs_idx_mail_id ON msgs (mail_id);
203
+ CREATE INDEX msgs_idx_content ON msgs (content);
204
+ CREATE INDEX msgs_idx_quar_type ON msgs (quar_type);
205
+ -- CREATE INDEX msgs_idx_content_time_num ON msgs (content, time_num);
206
+ CREATE INDEX msgs_idx_spam_level ON msgs (spam_level);
207
+
208
+ -- used in @storage_sql_dsn
209
+ -- per-recipient information related to each processed message;
210
+ -- NOTE: records in msgrcpt without corresponding msgs.mail_id record are
211
+ -- orphaned and should be ignored and eventually deleted by external utilities
212
+ CREATE TABLE msgrcpt (
213
+ partition_tag integer DEFAULT 0, -- see $partition_tag
214
+ mail_id bytea NOT NULL, -- (must allow duplicates)
215
+ rseqnum integer DEFAULT 0 NOT NULL, -- recip's enumeration within msg
216
+ rid integer NOT NULL, -- recipient: maddr.id (duplicates allowed)
217
+ is_local char(1) DEFAULT ' ' NOT NULL, -- recip is: Y=local, N=foreign
218
+ content char(1) DEFAULT ' ' NOT NULL, -- content type V/B/U/S/Y/M/H/O/T/C
219
+ ds char(1) NOT NULL, -- delivery status: P/R/B/D/T
220
+ -- pass/reject/bounce/discard/tempfail
221
+ rs char(1) NOT NULL, -- release status: initialized to ' '
222
+ bl char(1) DEFAULT ' ', -- sender blacklisted by this recip
223
+ wl char(1) DEFAULT ' ', -- sender whitelisted by this recip
224
+ bspam_level real, -- per-recipient (total) spam level
225
+ smtp_resp varchar(255) DEFAULT '', -- SMTP response given to MTA
226
+ PRIMARY KEY (partition_tag,mail_id,rseqnum)
227
+ --FOREIGN KEY (rid) REFERENCES maddr(id) ON DELETE RESTRICT,
228
+ --FOREIGN KEY (mail_id) REFERENCES msgs(mail_id) ON DELETE CASCADE
229
+ );
230
+ CREATE INDEX msgrcpt_idx_mail_id ON msgrcpt (mail_id);
231
+ CREATE INDEX msgrcpt_idx_rid ON msgrcpt (rid);
232
+
233
+ -- used in @storage_sql_dsn
234
+ -- mail quarantine in SQL, enabled by $*_quarantine_method='sql:'
235
+ -- NOTE: records in quarantine without corresponding msgs.mail_id record are
236
+ -- orphaned and should be ignored and eventually deleted by external utilities
237
+ CREATE TABLE quarantine (
238
+ partition_tag integer DEFAULT 0, -- see $partition_tag
239
+ mail_id bytea NOT NULL, -- long-term unique mail id
240
+ chunk_ind integer NOT NULL CHECK (chunk_ind >= 0), -- chunk number, 1..
241
+ mail_text bytea NOT NULL, -- store mail as chunks of octects
242
+ PRIMARY KEY (partition_tag,mail_id,chunk_ind)
243
+ --FOREIGN KEY (mail_id) REFERENCES msgs(mail_id) ON DELETE CASCADE
244
+ );
245
+
246
+ -- field msgrcpt.rs is primarily intended for use by quarantine management
247
+ -- software; the value assigned by amavisd is a space;
248
+ -- a short _preliminary_ list of possible values:
249
+ -- 'V' => viewed (marked as read)
250
+ -- 'R' => released (delivered) to this recipient
251
+ -- 'p' => pending (a status given to messages when the admin received the
252
+ -- request but not yet released; targeted to banned parts)
253
+ -- 'D' => marked for deletion; a cleanup script may delete it