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,61 @@
1
+ -- \c vmail;
2
+
3
+ -- DROP column
4
+ ALTER TABLE mailbox DROP COLUMN local_part;
5
+
6
+ -- New SQL column
7
+ ALTER TABLE mailbox ADD COLUMN enableimaptls INT2 NOT NULL DEFAULT 1;
8
+ CREATE INDEX idx_mailbox_enableimaptls ON mailbox (enableimaptls);
9
+ ALTER TABLE mailbox ADD COLUMN enablepop3tls INT2 NOT NULL DEFAULT 1;
10
+ CREATE INDEX idx_mailbox_enablepop3tls ON mailbox (enablepop3tls);
11
+ ALTER TABLE mailbox ADD COLUMN enablesievetls INT2 NOT NULL DEFAULT 1;
12
+ CREATE INDEX idx_mailbox_enablesievetls ON mailbox (enablesievetls);
13
+
14
+ -- Rename table
15
+ ALTER TABLE alias_moderators RENAME TO moderators;
16
+
17
+ -- Column used to limit number of mailing lists a domain admin can create
18
+ ALTER TABLE domain ADD COLUMN maillists INT8 NOT NULL DEFAULT 0;
19
+
20
+ -- Column used to mark sql record is a mailing list
21
+ ALTER TABLE forwardings ADD COLUMN is_maillist INT2 NOT NULL DEFAULT 0;
22
+ CREATE INDEX idx_forwardings_is_maillist ON forwardings (is_maillist);
23
+
24
+ CREATE TABLE maillists (
25
+ id SERIAL PRIMARY KEY,
26
+ address VARCHAR(255) NOT NULL DEFAULT '',
27
+ domain VARCHAR(255) NOT NULL DEFAULT '',
28
+ -- Per mailing list transport. for example: 'mlmmj:example.com/listname'.
29
+ transport VARCHAR(255) NOT NULL DEFAULT '',
30
+ accesspolicy VARCHAR(30) NOT NULL DEFAULT '',
31
+ maxmsgsize INT8 NOT NULL DEFAULT 0,
32
+ -- name of the mailing list
33
+ name VARCHAR(255) NOT NULL DEFAULT '',
34
+ -- short introduction of the mailing list on subscription page
35
+ description TEXT,
36
+ -- a server-wide unique id (a 36-characters string) for each mailing list
37
+ mlid VARCHAR(36) NOT NULL DEFAULT '',
38
+ -- control whether newsletter-style subscription from website is enabled
39
+ -- 1 -> enabled, 0 -> disabled
40
+ is_newsletter INT2 NOT NULL DEFAULT 0,
41
+ settings TEXT,
42
+ created TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT '1970-01-01 00:00:00',
43
+ modified TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT '1970-01-01 00:00:00',
44
+ expired TIMESTAMP WITHOUT TIME ZONE NOT NULL DEFAULT '9999-12-31 00:00:00',
45
+ active INT2 NOT NULL DEFAULT 1
46
+ );
47
+ CREATE UNIQUE INDEX idx_maillists_address ON maillists (address);
48
+ CREATE INDEX idx_maillists_domain ON maillists (domain);
49
+ CREATE UNIQUE INDEX idx_maillists_mlid ON maillists (mlid);
50
+ CREATE INDEX idx_maillists_is_newsletter ON maillists (is_newsletter);
51
+ CREATE INDEX idx_maillists_active ON maillists (active);
52
+
53
+ GRANT SELECT ON maillists TO vmail;
54
+ GRANT SELECT ON maillists_id_seq TO vmail;
55
+ GRANT SELECT ON alias_moderators_id_seq TO vmail;
56
+ GRANT SELECT ON forwardings_id_seq TO vmail;
57
+
58
+ GRANT ALL ON maillists TO vmailadmin;
59
+ GRANT ALL ON maillists_id_seq TO vmailadmin;
60
+ GRANT ALL ON alias_moderators_id_seq TO vmailadmin;
61
+ GRANT ALL ON forwardings_id_seq TO vmailadmin;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE mailbox ADD COLUMN mailboxformat VARCHAR(50) NOT NULL DEFAULT 'maildir';
2
+ ALTER TABLE mailbox ADD COLUMN mailboxfolder VARCHAR(50) NOT NULL DEFAULT 'Maildir';
@@ -0,0 +1,2 @@
1
+ ALTER TABLE mailbox ADD COLUMN mailboxformat VARCHAR(50) NOT NULL DEFAULT 'maildir';
2
+ ALTER TABLE mailbox ADD COLUMN mailboxfolder VARCHAR(50) NOT NULL DEFAULT 'Maildir';
@@ -0,0 +1,2 @@
1
+ ALTER TABLE mailbox ADD COLUMN `enablequota-status` TINYINT(1) NOT NULL DEFAULT 1;
2
+ CREATE INDEX `enablequota-status` ON mailbox (`enablequota-status`);
@@ -0,0 +1,2 @@
1
+ ALTER TABLE mailbox ADD COLUMN "enablequota-status" INT2 NOT NULL DEFAULT 1;
2
+ CREATE INDEX idx_mailbox_enablequota_status ON mailbox ("enablequota-status");
@@ -0,0 +1,16 @@
1
+ -- For MySQL/MariaDB backends, please update database `vmail`.
2
+ -- For OpenLDAP backend, please update database `iredadmin`.
3
+ DROP TABLE `last_login`;
4
+
5
+ CREATE TABLE `last_login` (
6
+ `username` VARCHAR(255) NOT NULL DEFAULT '',
7
+ `domain` VARCHAR(255) NOT NULL DEFAULT '',
8
+ `imap` INT(11) DEFAULT NULL,
9
+ `pop3` INT(11) DEFAULT NULL,
10
+ `lda` INT(11) DEFAULT NULL,
11
+ PRIMARY KEY (`username`),
12
+ INDEX last_login_domain (`domain`),
13
+ INDEX last_login_imap (`imap`),
14
+ INDEX last_login_pop3 (`pop3`),
15
+ INDEX last_login_lda (`lda`)
16
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@@ -0,0 +1,22 @@
1
+ -- (mlmmj) mailing list owners.
2
+ CREATE TABLE IF NOT EXISTS maillist_owners (
3
+ id BIGINT(20) UNSIGNED AUTO_INCREMENT,
4
+ -- email address of mailing list
5
+ address VARCHAR(255) NOT NULL DEFAULT '',
6
+ -- email address of owner
7
+ owner VARCHAR(255) NOT NULL DEFAULT '',
8
+ domain VARCHAR(255) NOT NULL DEFAULT '',
9
+ -- domain part of owner email address
10
+ dest_domain VARCHAR(255) NOT NULL DEFAULT '',
11
+ PRIMARY KEY (id),
12
+ UNIQUE INDEX (address, owner),
13
+ INDEX (owner),
14
+ INDEX (domain),
15
+ INDEX (dest_domain)
16
+ ) ENGINE=InnoDB;
17
+
18
+ -- Drop unused SQL columns
19
+ ALTER TABLE mailbox DROP COLUMN `allowedsenders`;
20
+ ALTER TABLE mailbox DROP COLUMN `rejectedsenders`;
21
+ ALTER TABLE mailbox DROP COLUMN `allowedrecipients`;
22
+ ALTER TABLE mailbox DROP COLUMN `rejectedrecipients`;
@@ -0,0 +1,20 @@
1
+ -- (mlmmj) mailing list owners.
2
+ CREATE TABLE maillist_owners (
3
+ id SERIAL PRIMARY KEY,
4
+ address VARCHAR(255) NOT NULL DEFAULT '',
5
+ owner VARCHAR(255) NOT NULL DEFAULT '',
6
+ domain VARCHAR(255) NOT NULL DEFAULT '',
7
+ dest_domain VARCHAR(255) NOT NULL DEFAULT ''
8
+ );
9
+ CREATE UNIQUE INDEX idx_maillist_owners_address_owner ON maillist_owners (address, owner);
10
+ CREATE INDEX idx_maillist_owners_owner ON maillist_owners (owner);
11
+ CREATE INDEX idx_maillist_owners_domain ON maillist_owners (domain);
12
+ CREATE INDEX idx_maillist_owners_dest_domain ON maillist_owners (dest_domain);
13
+
14
+ ALTER TABLE maillist_owners OWNER TO vmailadmin;
15
+
16
+ -- Drop unused SQL columns
17
+ ALTER TABLE mailbox DROP COLUMN "allowedsenders";
18
+ ALTER TABLE mailbox DROP COLUMN "rejectedsenders";
19
+ ALTER TABLE mailbox DROP COLUMN "allowedrecipients";
20
+ ALTER TABLE mailbox DROP COLUMN "rejectedrecipients";
@@ -0,0 +1,3 @@
1
+ ALTER TABLE mailbox ADD COLUMN `enablesogowebmail` CHAR(1) NOT NULL DEFAULT 'y';
2
+ ALTER TABLE mailbox ADD COLUMN `enablesogocalendar` CHAR(1) NOT NULL DEFAULT 'y';
3
+ ALTER TABLE mailbox ADD COLUMN `enablesogoactivesync` CHAR(1) NOT NULL DEFAULT 'y';
@@ -0,0 +1,3 @@
1
+ ALTER TABLE mailbox ADD COLUMN "enablesogowebmail" CHAR(1) NOT NULL DEFAULT 'y';
2
+ ALTER TABLE mailbox ADD COLUMN "enablesogocalendar" CHAR(1) NOT NULL DEFAULT 'y';
3
+ ALTER TABLE mailbox ADD COLUMN "enablesogoactivesync" CHAR(1) NOT NULL DEFAULT 'y';
@@ -0,0 +1,11 @@
1
+ DROP VIEW users;
2
+
3
+ CREATE VIEW users (
4
+ c_uid, c_name, c_password, c_cn,
5
+ mail, domain,
6
+ c_webmail, c_calendar, c_activesync)
7
+ AS SELECT username, username, password, name,
8
+ username, domain,
9
+ enablesogowebmail, enablesogocalendar, enablesogoactivesync
10
+ FROM vmail.mailbox
11
+ WHERE enablesogo=1 AND active=1;
@@ -0,0 +1,30 @@
1
+ DROP VIEW users;
2
+
3
+ CREATE VIEW users AS
4
+ SELECT * FROM dblink('host=127.0.0.1
5
+ port=5432
6
+ dbname=vmail
7
+ user=vmail
8
+ password=VMAIL_DB_BIND_PASSWD',
9
+ 'SELECT username AS c_uid,
10
+ username AS c_name,
11
+ password AS c_password,
12
+ name AS c_cn,
13
+ username AS mail,
14
+ domain AS domain,
15
+ enablesogowebmail AS c_webmail,
16
+ enablesogocalendar AS c_calendar,
17
+ enablesogoactivesync AS c_activesync
18
+ FROM mailbox
19
+ WHERE enablesogo=1 AND active=1')
20
+ AS users (c_uid VARCHAR(255),
21
+ c_name VARCHAR(255),
22
+ c_password VARCHAR(255),
23
+ c_cn VARCHAR(255),
24
+ mail VARCHAR(255),
25
+ domain VARCHAR(255),
26
+ c_webmail VARCHAR(1),
27
+ c_calendar VARCHAR(1),
28
+ c_activesync VARCHAR(1));
29
+
30
+ ALTER TABLE users OWNER TO sogo;
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env python3
2
+ # Author: Zhang Huangbin <zhb _at_ iredmail.org>
3
+ # Purpose: Add new attribute/value pairs introduced in iRedMail-1.4.1:
4
+ # enabledService=sogowebmail
5
+ # enabledService=sogocalendar
6
+ # enabledService=sogoactivesync
7
+ # Date: Sep 1, 2021.
8
+
9
+ import ldap
10
+
11
+ # Note: bind_dn must have write privilege on LDAP server.
12
+ uri = 'ldap://127.0.0.1:389'
13
+ basedn = 'o=domains,dc=example,dc=com'
14
+ bind_dn = 'cn=Manager,dc=example,dc=com'
15
+ bind_pw = 'password'
16
+
17
+ # Initialize LDAP connection.
18
+ print("* Connecting to LDAP server: {}".format(uri))
19
+ conn = ldap.initialize(uri=uri, trace_level=0,)
20
+ conn.bind_s(bind_dn, bind_pw)
21
+
22
+ # Get all mail users.
23
+ print("* Get mail accounts ...")
24
+ allUsers = conn.search_s(
25
+ basedn,
26
+ ldap.SCOPE_SUBTREE,
27
+ "(objectClass=mailUser)",
28
+ ['mail', 'enabledService'],
29
+ )
30
+
31
+ total = len(allUsers)
32
+ print("* Found {} user(s).".format(total))
33
+
34
+ # Counter.
35
+ count = 1
36
+
37
+ for (dn, entry) in allUsers:
38
+ mail = entry['mail'][0].decode()
39
+ if 'enabledService' not in entry:
40
+ continue
41
+
42
+ enabledService = entry['enabledService']
43
+
44
+ _update = False
45
+ for srv in [b"sogowebmail", b"sogocalendar", b"sogoactivesync"]:
46
+ if srv not in enabledService:
47
+ enabledService.append(srv)
48
+ _update = True
49
+
50
+ if _update:
51
+ print("* ({} of {}) Updating user: {}".format(count, total, mail))
52
+ mod_attr = [(ldap.MOD_REPLACE, 'enabledService', enabledService)]
53
+ try:
54
+ conn.modify_s(dn, mod_attr)
55
+ except Exception as e:
56
+ print("Error while updating user {}: {}".format(mail, repr(e)))
57
+ else:
58
+ print("* [SKIP] No update required for user: {}".format(mail))
59
+
60
+ count += 1
61
+
62
+ # Unbind connection.
63
+ print("* Unbind LDAP server.")
64
+ conn.unbind()
65
+
66
+ print("* Update completed.")
@@ -0,0 +1,9 @@
1
+ -- Fix incorrect column types.
2
+ ALTER TABLE mailbox MODIFY COLUMN `enablesogowebmail` VARCHAR(1) NOT NULL DEFAULT 'y';
3
+ ALTER TABLE mailbox MODIFY COLUMN `enablesogocalendar` VARCHAR(1) NOT NULL DEFAULT 'y';
4
+ ALTER TABLE mailbox MODIFY COLUMN `enablesogoactivesync` VARCHAR(1) NOT NULL DEFAULT 'y';
5
+
6
+ -- Drop unused columns.
7
+ ALTER TABLE mailbox DROP COLUMN `lastlogindate`;
8
+ ALTER TABLE mailbox DROP COLUMN `lastloginipv4`;
9
+ ALTER TABLE mailbox DROP COLUMN `lastloginprotocol`;
@@ -0,0 +1,9 @@
1
+ -- Fix incorrect column types.
2
+ ALTER TABLE mailbox ALTER COLUMN "enablesogowebmail" TYPE VARCHAR(1);
3
+ ALTER TABLE mailbox ALTER COLUMN "enablesogocalendar" TYPE VARCHAR(1);
4
+ ALTER TABLE mailbox ALTER COLUMN "enablesogoactivesync" TYPE VARCHAR(1);
5
+
6
+ -- Drop unused columns.
7
+ ALTER TABLE mailbox DROP COLUMN "lastlogindate";
8
+ ALTER TABLE mailbox DROP COLUMN "lastloginipv4";
9
+ ALTER TABLE mailbox DROP COLUMN "lastloginprotocol";
@@ -0,0 +1,30 @@
1
+ DROP VIEW users;
2
+
3
+ CREATE VIEW users AS
4
+ SELECT * FROM dblink('host=127.0.0.1
5
+ port=5432
6
+ dbname=vmail
7
+ user=vmail
8
+ password=VMAIL_DB_BIND_PASSWD',
9
+ 'SELECT username AS c_uid,
10
+ username AS c_name,
11
+ password AS c_password,
12
+ name AS c_cn,
13
+ username AS mail,
14
+ domain AS domain,
15
+ enablesogowebmail AS c_webmail,
16
+ enablesogocalendar AS c_calendar,
17
+ enablesogoactivesync AS c_activesync
18
+ FROM mailbox
19
+ WHERE enablesogo=1 AND active=1')
20
+ AS users (c_uid VARCHAR(255),
21
+ c_name VARCHAR(255),
22
+ c_password VARCHAR(255),
23
+ c_cn VARCHAR(255),
24
+ mail VARCHAR(255),
25
+ domain VARCHAR(255),
26
+ c_webmail VARCHAR(1),
27
+ c_calendar VARCHAR(1),
28
+ c_activesync VARCHAR(1));
29
+
30
+ ALTER TABLE users OWNER TO sogo;
@@ -0,0 +1,27 @@
1
+ \c vmail;
2
+
3
+ -- cannot alter type of a column used by a view or rule
4
+ DROP VIEW IF EXISTS sogo_users;
5
+
6
+ ALTER TABLE mailbox ALTER COLUMN enablesogowebmail TYPE VARCHAR(1);
7
+ ALTER TABLE mailbox ALTER COLUMN enablesogocalendar TYPE VARCHAR(1);
8
+ ALTER TABLE mailbox ALTER COLUMN enablesogoactivesync TYPE VARCHAR(1);
9
+
10
+ CREATE VIEW sogo_users AS
11
+ SELECT username AS c_uid,
12
+ username AS c_name,
13
+ password AS c_password,
14
+ name AS c_cn,
15
+ username AS mail,
16
+ domain AS domain,
17
+ enablesogowebmail AS c_webmail,
18
+ enablesogocalendar AS c_calendar,
19
+ enablesogoactivesync AS c_activesync
20
+ FROM mailbox
21
+ WHERE enablesogo=1 AND active=1;
22
+
23
+ ALTER TABLE sogo_users OWNER TO vmailadmin;
24
+
25
+ -- allow end users to change their own passwords.
26
+ GRANT SELECT,UPDATE ON mailbox TO sogo;
27
+ GRANT SELECT,UPDATE ON sogo_users TO sogo;
@@ -0,0 +1 @@
1
+ ALTER TABLE forwardings ADD INDEX IF NOT EXISTS forwarding (forwarding);
@@ -0,0 +1,11 @@
1
+ --
2
+ -- Used to store both enabled and disabled jails.
3
+ --
4
+ CREATE TABLE IF NOT EXISTS `jails` (
5
+ `id` BIGINT(20) UNSIGNED AUTO_INCREMENT,
6
+ `name` VARCHAR(255) NOT NULL DEFAULT '',
7
+ `enabled` TINYINT(1) DEFAULT 1,
8
+ PRIMARY KEY (`id`),
9
+ UNIQUE INDEX (`name`),
10
+ INDEX (`enabled`)
11
+ ) ENGINE=InnoDB;
@@ -0,0 +1,12 @@
1
+ --
2
+ -- Used to store both enabled and disabled jails.
3
+ --
4
+ CREATE TABLE jails (
5
+ id SERIAL PRIMARY KEY,
6
+ name VARCHAR(255) NOT NULL DEFAULT '',
7
+ enabled INT2 DEFAULT 1
8
+ );
9
+ CREATE UNIQUE INDEX idx_jails_name ON jails (name);
10
+ CREATE INDEX idx_jails_enabled ON jails (enabled);
11
+
12
+ ALTER TABLE jails OWNER TO fail2ban;
@@ -0,0 +1 @@
1
+ ALTER TABLE msgs MODIFY COLUMN subject VARBINARY(1024) DEFAULT '';
@@ -0,0 +1,30 @@
1
+ --
2
+ -- Requires MySQL 5.5.3 (released in early 2010) or later releases.
3
+ --
4
+ -- Run command to show all columns of a table:
5
+ -- SHOW FULL COLUMNS FROM <table>;
6
+
7
+ ALTER DATABASE vmail
8
+ DEFAULT CHARACTER SET utf8mb4
9
+ DEFAULT COLLATE utf8mb4_general_ci;
10
+
11
+ ALTER TABLE admin CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
12
+ ALTER TABLE alias CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
13
+ ALTER TABLE alias_domain CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
14
+ ALTER TABLE anyone_shares CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
15
+ ALTER TABLE deleted_mailboxes CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
16
+ ALTER TABLE domain CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
17
+ ALTER TABLE domain_admins CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
18
+ ALTER TABLE forwardings CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
19
+ ALTER TABLE last_login CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
20
+ ALTER TABLE mailbox CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
21
+ ALTER TABLE maillist_owners CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
22
+ ALTER TABLE maillists CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
23
+ ALTER TABLE moderators CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
24
+ ALTER TABLE recipient_bcc_domain CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
25
+ ALTER TABLE recipient_bcc_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
26
+ ALTER TABLE sender_bcc_domain CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
27
+ ALTER TABLE sender_bcc_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
28
+ ALTER TABLE sender_relayhost CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
29
+ ALTER TABLE share_folder CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
30
+ ALTER TABLE used_quota CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
@@ -0,0 +1,43 @@
1
+ --
2
+ -- MariaDB 5.5 on CentOS 7 does not support `ADD COLUMN IF EXISTS`, so here is
3
+ -- an alternative way to add it without error.
4
+ --
5
+ -- Add columns in `vmail.deleted_mailboxes` (MariaDB) or
6
+ -- `iredadmin.deleted_mailboxes` (OpenLDAP):
7
+ --
8
+ -- - birthday
9
+ -- - recovery_email
10
+ --
11
+ drop procedure if exists irm173_schema_change;
12
+
13
+ delimiter ';;'
14
+ create procedure irm173_schema_change() begin
15
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'first_name') then
16
+ ALTER TABLE mailbox ADD COLUMN `first_name` VARCHAR(255) NOT NULL DEFAULT '';
17
+ end if;
18
+
19
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'last_name') then
20
+ ALTER TABLE mailbox ADD COLUMN `last_name` VARCHAR(255) NOT NULL DEFAULT '';
21
+ end if;
22
+
23
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'mobile') then
24
+ ALTER TABLE mailbox ADD COLUMN `mobile` VARCHAR(255) NOT NULL DEFAULT '';
25
+ end if;
26
+
27
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'telephone') then
28
+ ALTER TABLE mailbox ADD COLUMN `telephone` VARCHAR(255) NOT NULL DEFAULT '';
29
+ end if;
30
+
31
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'birthday') then
32
+ ALTER TABLE mailbox ADD COLUMN `birthday` DATE NOT NULL DEFAULT '0001-01-01';
33
+ end if;
34
+
35
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'recovery_email') then
36
+ ALTER TABLE mailbox ADD COLUMN `recovery_email` VARCHAR(255) NOT NULL DEFAULT '';
37
+ end if;
38
+ end;;
39
+
40
+ delimiter ';'
41
+ call irm173_schema_change();
42
+
43
+ drop procedure if exists irm173_schema_change;
@@ -0,0 +1,26 @@
1
+ --
2
+ -- MariaDB 5.5 on CentOS 7 does not support `ADD COLUMN IF EXISTS`, so here is
3
+ -- an alternative way to add it without error.
4
+ --
5
+ -- Add columns in `iredadmin.deleted_mailboxes` for OpenLDAP backend:
6
+ --
7
+ -- - bytes
8
+ -- - messages
9
+
10
+ drop procedure if exists irm173_schema_change;
11
+
12
+ delimiter ';;'
13
+ create procedure irm173_schema_change() begin
14
+ if not exists (select * from information_schema.columns where table_schema = 'iredadmin' and table_name = 'deleted_mailboxes' and column_name = 'bytes') then
15
+ ALTER TABLE deleted_mailboxes ADD COLUMN `bytes` BIGINT NOT NULL DEFAULT 0;
16
+ end if;
17
+
18
+ if not exists (select * from information_schema.columns where table_schema = 'iredadmin' and table_name = 'deleted_mailboxes' and column_name = 'messages') then
19
+ ALTER TABLE deleted_mailboxes ADD COLUMN `messages` BIGINT NOT NULL DEFAULT 0;
20
+ end if;
21
+ end;;
22
+
23
+ delimiter ';'
24
+ call irm173_schema_change();
25
+
26
+ drop procedure if exists irm173_schema_change;
@@ -0,0 +1,79 @@
1
+ --
2
+ -- MariaDB 5.5 on CentOS 7 does not support `ADD COLUMN IF EXISTS`, so here is
3
+ -- an alternative way to add it without error.
4
+ --
5
+ -- Add columns in `vmail.mailbox`:
6
+ --
7
+ -- - first_name
8
+ -- - last_name
9
+ -- - mobile
10
+ -- - telephone
11
+ -- - birthday
12
+ -- - recovery_email
13
+ --
14
+ -- Add columns in `vmail.deleted_mailboxes`:
15
+ --
16
+ -- - bytes
17
+ -- - messages
18
+ --
19
+ -- Old MariaDB may use `COMPAT` row format, it causes error like
20
+ --
21
+ -- "Row size too large. The maximum row size for the used table type, not counting BLOBs,
22
+ -- is 8126. This includes storage overhead, check the manual. You have to change some
23
+ -- columns to TEXT or BLOBs"
24
+ --
25
+ -- DYNAMIC is default innodb row format in MariaDB for years, it is safe to
26
+ -- switch.
27
+
28
+ SET @row_format = (SELECT ROW_FORMAT FROM INFORMATION_SCHEMA.TABLES
29
+ WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'mailbox');
30
+
31
+ SET @sql = IF(@row_format != 'Dynamic',
32
+ CONCAT('ALTER TABLE mailbox ROW_FORMAT=DYNAMIC;'),
33
+ 'SELECT "Row format is already Dynamic" AS Message;');
34
+
35
+ PREPARE stmt FROM @sql;
36
+ EXECUTE stmt;
37
+ DEALLOCATE PREPARE stmt;
38
+
39
+ drop procedure if exists irm173_schema_change;
40
+
41
+ delimiter ';;'
42
+ create procedure irm173_schema_change() begin
43
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'first_name') then
44
+ ALTER TABLE mailbox ADD COLUMN `first_name` VARCHAR(255) NOT NULL DEFAULT '';
45
+ end if;
46
+
47
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'last_name') then
48
+ ALTER TABLE mailbox ADD COLUMN `last_name` VARCHAR(255) NOT NULL DEFAULT '';
49
+ end if;
50
+
51
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'mobile') then
52
+ ALTER TABLE mailbox ADD COLUMN `mobile` VARCHAR(255) NOT NULL DEFAULT '';
53
+ end if;
54
+
55
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'telephone') then
56
+ ALTER TABLE mailbox ADD COLUMN `telephone` VARCHAR(255) NOT NULL DEFAULT '';
57
+ end if;
58
+
59
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'birthday') then
60
+ ALTER TABLE mailbox ADD COLUMN `birthday` DATE NOT NULL DEFAULT '0001-01-01';
61
+ end if;
62
+
63
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'mailbox' and column_name = 'recovery_email') then
64
+ ALTER TABLE mailbox ADD COLUMN `recovery_email` VARCHAR(255) NOT NULL DEFAULT '';
65
+ end if;
66
+
67
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'deleted_mailboxes' and column_name = 'bytes') then
68
+ ALTER TABLE deleted_mailboxes ADD COLUMN `bytes` BIGINT NOT NULL DEFAULT 0;
69
+ end if;
70
+
71
+ if not exists (select * from information_schema.columns where table_schema = 'vmail' and table_name = 'deleted_mailboxes' and column_name = 'messages') then
72
+ ALTER TABLE deleted_mailboxes ADD COLUMN `messages` BIGINT NOT NULL DEFAULT 0;
73
+ end if;
74
+ end;;
75
+
76
+ delimiter ';'
77
+ call irm173_schema_change();
78
+
79
+ drop procedure if exists irm173_schema_change;
@@ -0,0 +1,9 @@
1
+ ALTER TABLE mailbox ADD COLUMN IF NOT EXISTS "first_name" VARCHAR(255) NOT NULL DEFAULT '';
2
+ ALTER TABLE mailbox ADD COLUMN IF NOT EXISTS "last_name" VARCHAR(255) NOT NULL DEFAULT '';
3
+ ALTER TABLE mailbox ADD COLUMN IF NOT EXISTS "mobile" VARCHAR(255) NOT NULL DEFAULT '';
4
+ ALTER TABLE mailbox ADD COLUMN IF NOT EXISTS "telephone" VARCHAR(255) NOT NULL DEFAULT '';
5
+ ALTER TABLE mailbox ADD COLUMN IF NOT EXISTS "birthday" DATE NOT NULL DEFAULT '0001-01-01';
6
+ ALTER TABLE mailbox ADD COLUMN IF NOT EXISTS "recovery_email" VARCHAR(255) NOT NULL DEFAULT '';
7
+
8
+ ALTER TABLE deleted_mailboxes ADD COLUMN IF NOT EXISTS "bytes" INT8 NOT NULL DEFAULT 0;
9
+ ALTER TABLE deleted_mailboxes ADD COLUMN IF NOT EXISTS "messages" INT8 NOT NULL DEFAULT 0;
@@ -0,0 +1 @@
1
+ Please follow [iRedMail upgrade tutorials](https://docs.iredmail.org/iredmail.releases.html) to use SQL/Shell/Python scripts in this directory, do not run any of them blindly.
@@ -0,0 +1,40 @@
1
+ # Update LDAP data
2
+
3
+ [TOC]
4
+
5
+ ## Summary
6
+
7
+ If you're restoring from an old iRedMail release, you need to add missing LDAP
8
+ attribute/values, which are introduced in new iRedMail releases, by running
9
+ Python scripts below: <https://github.com/iredmail/iRedMail/tree/1.3.1/update/ldap/>.
10
+
11
+ For example:
12
+
13
+ * If you're restoring iRedMail from `0.9.1` to `0.9.5`, you must run all update
14
+ scripts for iRedMail-0.9.1 and newer releases. In this case, only file
15
+ `updateLDAPValues_094_to_095.py` listed in above link is required.
16
+
17
+ * If you're restoring iRedMail from `0.8.6` to `0.9.5`, you need 3 files:
18
+
19
+ * `updateLDAPValues_086_to_087.py`
20
+ * `updateLDAPValues_087_to_090.py`
21
+ * `updateLDAPValues_094_to_095.py`
22
+
23
+ ## How to use those upgrade scripts
24
+
25
+ Please open the file you need to run, for example, `updateLDAPValues_094_to_095.py`,
26
+ find parameters like below:
27
+
28
+ ```
29
+ uri = 'ldap://127.0.0.1:389'
30
+ basedn = 'o=domains,dc=example,dc=com'
31
+ bind_dn = 'cn=Manager,dc=example,dc=com'
32
+ bind_pw = 'passwd'
33
+ ```
34
+
35
+ Please update them with the correct LDAP prefix (`dc=xx,dc=xx`) and bind
36
+ password, then run it with `python` command:
37
+
38
+ ```
39
+ python2 updateLDAPValues_094_to_095.py
40
+ ```