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.
- package/README.md +2 -24
- package/dist/bare-2HYDXQEH.js +23 -0
- package/dist/{bowser-MFQA6OS4.js → bowser-O3AEA6AN.js} +5 -1
- package/dist/{chunk-KD7VO4LG.js → chunk-2ZLR7ULL.js} +255 -65
- package/dist/{chunk-YHXCHW7Q.js → chunk-3JQTL4R4.js} +236 -99
- package/dist/{chunk-E77LJWJK.js → chunk-4TJC4JZQ.js} +20 -9
- package/dist/{chunk-YL67EWYZ.js → chunk-4Z5QO7N6.js} +6 -2
- package/dist/{chunk-WJPCBU7Z.js → chunk-5FNIWBFI.js} +10 -6
- package/dist/{chunk-Y37KHU7L.js → chunk-5MZ624VX.js} +5 -0
- package/dist/{chunk-QKFRZNKN.js → chunk-6APIPIJY.js} +8 -4
- package/dist/{chunk-JZLNHGLW.js → chunk-6APULWSU.js} +153 -133
- package/dist/{chunk-F4DFVG6Q.js → chunk-6B5YCFFV.js} +8 -4
- package/dist/{chunk-XVSAUO2I.js → chunk-AVIB7CT7.js} +5 -1
- package/dist/{chunk-TEYJYSMT.js → chunk-C5OHTYEF.js} +12 -6
- package/dist/{chunk-7UOB5GGQ.js → chunk-DYPH4HCI.js} +5 -0
- package/dist/{chunk-XIFRMKYT.js → chunk-EI575GHN.js} +6 -2
- package/dist/{chunk-4CQWT2WL.js → chunk-FPRHYBY2.js} +5 -0
- package/dist/chunk-FQGJZ2HS.js +248 -0
- package/dist/{chunk-JR2OCMJA.js → chunk-FRNAR33O.js} +6 -2
- package/dist/{chunk-JUJBBF5U.js → chunk-FXTBHTWY.js} +362 -42
- package/dist/chunk-ILFETZOM.js +131 -0
- package/dist/{chunk-5ZCKQ2MI.js → chunk-IXCHURVK.js} +7 -3
- package/dist/{chunk-6ERIMTBC.js → chunk-JYGD5WSN.js} +5 -0
- package/dist/{chunk-4VNS5WPM.js → chunk-KI2EY3WB.js} +4 -0
- package/dist/{chunk-3U4SPZD5.js → chunk-L2VOGB2X.js} +7 -104
- package/dist/{chunk-NB2VEIWG.js → chunk-MZ2WEHHY.js} +7 -3
- package/dist/{chunk-BUBSSKO6.js → chunk-O6ZZF52V.js} +5 -1
- package/dist/{chunk-LBFH7THC.js → chunk-OWED2GRM.js} +5 -1
- package/dist/{chunk-4MG3BVHE.js → chunk-OXWDY22G.js} +6 -2
- package/dist/{chunk-4FABQGQP.js → chunk-Q2CIRAOK.js} +5 -0
- package/dist/{chunk-4LEL3H2Z.js → chunk-RPHRPFEH.js} +5 -0
- package/dist/{chunk-46YJFP4S.js → chunk-SQ77DZOI.js} +1728 -1484
- package/dist/{chunk-S6DSRLNE.js → chunk-TGIINPVM.js} +15 -2
- package/dist/{chunk-U2DPZSXA.js → chunk-TYVME3XD.js} +9 -1
- package/dist/{chunk-HFYDYK4D.js → chunk-V6AN6XLZ.js} +18 -6
- package/dist/{chunk-ZKJOFWBJ.js → chunk-VDMQJHPI.js} +38 -15
- package/dist/{chunk-E6W2JMMU.js → chunk-VFINNTUL.js} +22 -1
- package/dist/{chunk-OJE6YWPQ.js → chunk-VWPEKOH6.js} +6 -2
- package/dist/{chunk-5N7VUGL6.js → chunk-W73X43R7.js} +6 -2
- package/dist/cloud-7QYOGF7F.js +11 -0
- package/dist/cloud-ZSKOS4GY.js +30 -0
- package/dist/detect-SH4FHFBI.js +36 -0
- package/dist/{dist-L3MPOWCA.js → dist-IQJ6H6UZ.js} +6 -2
- package/dist/{dist-es-KE56MWYO.js → dist-es-5DY7K32L.js} +9 -5
- package/dist/dist-es-JSTDUS7Q.js +26 -0
- package/dist/{dist-es-GTAMF674.js → dist-es-OSNJBLXB.js} +8 -4
- package/dist/{dist-es-NRZIQY5B.js → dist-es-RYHIPOTN.js} +17 -13
- package/dist/{dist-es-XQCOTGC7.js → dist-es-VNKHQVIB.js} +7 -3
- package/dist/{dist-es-WZCR7DHQ.js → dist-es-WV4AMOII.js} +11 -7
- package/dist/{dist-es-ZW3HFQUM.js → dist-es-X3B5QYKB.js} +9 -5
- package/dist/docker-U7AF5PTA.js +16 -0
- package/dist/docker-edge-executor-VHW3JPJS.js +13 -0
- package/dist/edge-import-V5CBA47C.js +45 -0
- package/dist/ensure-container-edge-CMYROUSI.js +33 -0
- package/dist/{event-streams-7LGDL56D.js → event-streams-EHRAKL75.js} +7 -3
- package/dist/executor-YPT6RH6O.js +30 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +258 -245
- package/dist/{loadSso-N273C5I7.js → loadSso-46FQRIZS.js} +13 -9
- package/dist/local-executor-V7U5VOZW.js +12 -0
- package/dist/nginx-2GTRUIDE.js +24 -0
- package/dist/noop-FMMFG2EZ.js +11 -0
- package/dist/{openresty-lua-HAO4EUDY.js → openresty-lua-4WLGDSER.js} +13 -3
- package/dist/server/engine/ChangeLog +2289 -0
- package/dist/server/engine/Documentations +5 -0
- package/dist/server/engine/LICENSE +674 -0
- package/dist/server/engine/README.md +34 -0
- package/dist/server/engine/conf/amavisd +150 -0
- package/dist/server/engine/conf/clamav +71 -0
- package/dist/server/engine/conf/core +632 -0
- package/dist/server/engine/conf/dovecot +151 -0
- package/dist/server/engine/conf/fail2ban +72 -0
- package/dist/server/engine/conf/global +698 -0
- package/dist/server/engine/conf/iredapd +52 -0
- package/dist/server/engine/conf/logwatch +28 -0
- package/dist/server/engine/conf/postfix +97 -0
- package/dist/server/engine/conf/postgresql +93 -0
- package/dist/server/engine/conf/spamassassin +39 -0
- package/dist/server/engine/dialog/config_via_dialog.sh +258 -0
- package/dist/server/engine/dialog/optional_components.sh +122 -0
- package/dist/server/engine/dialog/pgsql_config.sh +52 -0
- package/dist/server/engine/dialog/virtual_domain_config.sh +94 -0
- package/dist/server/engine/functions/amavisd.sh +267 -0
- package/dist/server/engine/functions/backend.sh +85 -0
- package/dist/server/engine/functions/clamav.sh +100 -0
- package/dist/server/engine/functions/cleanup.sh +393 -0
- package/dist/server/engine/functions/dovecot.sh +583 -0
- package/dist/server/engine/functions/fail2ban.sh +209 -0
- package/dist/server/engine/functions/iredapd.sh +356 -0
- package/dist/server/engine/functions/optional_components.sh +24 -0
- package/dist/server/engine/functions/packages.sh +522 -0
- package/dist/server/engine/functions/packages_freebsd.sh +179 -0
- package/dist/server/engine/functions/postfix.sh +457 -0
- package/dist/server/engine/functions/postgresql.sh +239 -0
- package/dist/server/engine/functions/spamassassin.sh +49 -0
- package/dist/server/engine/functions/system_accounts.sh +128 -0
- package/dist/server/engine/iRedMail.sh +144 -0
- package/dist/server/engine/pkgs/get_all.sh +338 -0
- package/dist/server/engine/pkgs/pkgs.freebsd.sha256 +3 -0
- package/dist/server/engine/pkgs/pkgs.openbsd.sha256 +6 -0
- package/dist/server/engine/pkgs/pkgs.sha256 +1 -0
- package/dist/server/engine/samples/amavisd/amavisd.conf +677 -0
- package/dist/server/engine/samples/amavisd/amavisd.mysql +278 -0
- package/dist/server/engine/samples/amavisd/amavisd.pgsql +253 -0
- package/dist/server/engine/samples/amavisd/amavisd.schema +942 -0
- package/dist/server/engine/samples/amavisd/default_spam_policy.sql +46 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-mariadb.conf +758 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-openldap.conf +767 -0
- package/dist/server/engine/samples/dovecot/dovecot-2.4-pgsql.conf +762 -0
- package/dist/server/engine/samples/dovecot/dovecot-last-login.conf +50 -0
- package/dist/server/engine/samples/dovecot/dovecot-ldap.conf +21 -0
- package/dist/server/engine/samples/dovecot/dovecot-share-folder.conf +22 -0
- package/dist/server/engine/samples/dovecot/dovecot-sql.conf +28 -0
- package/dist/server/engine/samples/dovecot/dovecot-used-quota.conf +13 -0
- package/dist/server/engine/samples/dovecot/dovecot.conf +484 -0
- package/dist/server/engine/samples/dovecot/dovecot.sieve +7 -0
- package/dist/server/engine/samples/dovecot/dovecot2-quota-warning.sh +38 -0
- package/dist/server/engine/samples/dovecot/sql/imap_share_folder.mysql +16 -0
- package/dist/server/engine/samples/dovecot/sql/last_login.mysql +12 -0
- package/dist/server/engine/samples/dovecot/sql/used_quota.mysql +26 -0
- package/dist/server/engine/samples/dovecot/systemd/override.conf +3 -0
- package/dist/server/engine/samples/fail2ban/action.d/banned_db.conf +9 -0
- package/dist/server/engine/samples/fail2ban/bin/fail2ban_banned_db +268 -0
- package/dist/server/engine/samples/fail2ban/fail2ban.local +17 -0
- package/dist/server/engine/samples/fail2ban/filter.d/dovecot.iredmail.conf +5 -0
- package/dist/server/engine/samples/fail2ban/filter.d/postfix-pregreet.iredmail.conf +16 -0
- package/dist/server/engine/samples/fail2ban/filter.d/postfix.iredmail.conf +18 -0
- package/dist/server/engine/samples/fail2ban/filter.d/roundcube.iredmail.conf +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/dovecot.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/nginx-http-auth.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/postfix-pregreet.local +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/postfix.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/roundcube.local +9 -0
- package/dist/server/engine/samples/fail2ban/jail.d/sogo.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.d/sshd.local +8 -0
- package/dist/server/engine/samples/fail2ban/jail.local +6 -0
- package/dist/server/engine/samples/fail2ban/openbsd/rc +27 -0
- package/dist/server/engine/samples/fail2ban/sql/fail2ban.mysql +49 -0
- package/dist/server/engine/samples/fail2ban/sql/fail2ban.pgsql +48 -0
- package/dist/server/engine/samples/firewall/firewalld/services/ssh.xml +6 -0
- package/dist/server/engine/samples/firewall/firewalld/zones/iredmail.xml +15 -0
- package/dist/server/engine/samples/firewall/iptables/ip6tables.init.debian +362 -0
- package/dist/server/engine/samples/firewall/iptables/ip6tables.rules +53 -0
- package/dist/server/engine/samples/firewall/iptables/iptables.init.debian +363 -0
- package/dist/server/engine/samples/firewall/iptables/iptables.rules +54 -0
- package/dist/server/engine/samples/firewall/nftables.conf +58 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/dovecot.conf +3 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/iredapd.conf +1 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/mlmmjadmin.conf +1 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/php-fpm.conf +2 -0
- package/dist/server/engine/samples/freebsd/newsyslog.conf.d/slapd.conf +1 -0
- package/dist/server/engine/samples/freebsd/syslog.d/dovecot.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/fail2ban.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/iredapd.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/mlmmjadmin.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/php-fpm.conf +2 -0
- package/dist/server/engine/samples/freebsd/syslog.d/slapd.conf +2 -0
- package/dist/server/engine/samples/iredmail/iredmail.mysql +491 -0
- package/dist/server/engine/samples/iredmail/iredmail.pgsql +465 -0
- package/dist/server/engine/samples/iredmail/iredmail.schema +456 -0
- package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.3.pgsql +40 -0
- package/dist/server/engine/samples/iredmail/used_quota_triggers_dovecot_2.4.pgsql +18 -0
- package/dist/server/engine/samples/logrotate/dovecot +13 -0
- package/dist/server/engine/samples/logrotate/iredapd +13 -0
- package/dist/server/engine/samples/logrotate/mlmmjadmin +13 -0
- package/dist/server/engine/samples/logrotate/openldap +19 -0
- package/dist/server/engine/samples/logrotate/php-fpm +13 -0
- package/dist/server/engine/samples/openbsd/ldapd.conf +58 -0
- package/dist/server/engine/samples/openbsd/pf.conf +28 -0
- package/dist/server/engine/samples/postfix/command_filter.pcre +3 -0
- package/dist/server/engine/samples/postfix/freebsd/mailer.conf +9 -0
- package/dist/server/engine/samples/postfix/helo_access.pcre +180 -0
- package/dist/server/engine/samples/postfix/ldap/catchall_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/recipient_bcc_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/relay_domains.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_bcc_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_dependent_relayhost_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/sender_login_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/transport_maps_domain.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/transport_maps_user.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_alias_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_group_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_group_members_maps.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_domains.cf +11 -0
- package/dist/server/engine/samples/postfix/ldap/virtual_mailbox_maps.cf +12 -0
- package/dist/server/engine/samples/postfix/main.cf +282 -0
- package/dist/server/engine/samples/postfix/main.cf.amavisd +7 -0
- package/dist/server/engine/samples/postfix/main.cf.dovecot +8 -0
- package/dist/server/engine/samples/postfix/main.cf.ldap +39 -0
- package/dist/server/engine/samples/postfix/main.cf.mlmmj +5 -0
- package/dist/server/engine/samples/postfix/main.cf.mysql +39 -0
- package/dist/server/engine/samples/postfix/main.cf.pgsql +39 -0
- package/dist/server/engine/samples/postfix/main.cf.postscreen +30 -0
- package/dist/server/engine/samples/postfix/master.cf +87 -0
- package/dist/server/engine/samples/postfix/mysql/catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/domain_alias_catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/domain_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/recipient_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/relay_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/sender_dependent_relayhost_maps.cf +6 -0
- package/dist/server/engine/samples/postfix/mysql/sender_login_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_maillist.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/transport_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/mysql/virtual_mailbox_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/domain_alias_catchall_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/domain_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/recipient_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/relay_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_bcc_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_dependent_relayhost_maps.cf +6 -0
- package/dist/server/engine/samples/postfix/pgsql/sender_login_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_domain.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_maillist.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/transport_maps_user.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_alias_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_domains.cf +5 -0
- package/dist/server/engine/samples/postfix/pgsql/virtual_mailbox_maps.cf +5 -0
- package/dist/server/engine/samples/postfix/postscreen_access.cidr +6 -0
- package/dist/server/engine/samples/postgresql/sql/add_first_domain_and_user.sql +34 -0
- package/dist/server/engine/samples/postgresql/sql/grant_permissions.sql +14 -0
- package/dist/server/engine/samples/postgresql/sql/init_vmail_db.sql +15 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-dovecot.conf +23 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-fail2ban.conf +2 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-iredapd.conf +12 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-mlmmjadmin.conf +12 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-openldap.conf +2 -0
- package/dist/server/engine/samples/rsyslog.d/1-iredmail-phpfpm.conf +3 -0
- package/dist/server/engine/samples/spamassassin/local.cf +186 -0
- package/dist/server/engine/samples/spamassassin/razor.conf +1 -0
- package/dist/server/engine/samples/systemd/clamd.service.d/override.conf +2 -0
- package/dist/server/engine/samples/systemd/mariadb.service.d/override.conf +3 -0
- package/dist/server/engine/samples/systemd/slapd.service.d/override.conf +6 -0
- package/dist/server/engine/samples/yum/CentOS-Linux-AppStream.repo +6 -0
- package/dist/server/engine/samples/yum/CentOS-Linux-PowerTools.repo +6 -0
- package/dist/server/engine/samples/yum/CentOS-Stream-AppStream.repo +7 -0
- package/dist/server/engine/samples/yum/CentOS-Stream-PowerTools.repo +7 -0
- package/dist/server/engine/samples/yum/symas-openldap.repo +6 -0
- package/dist/server/engine/tools/add_enabled_service.py +60 -0
- package/dist/server/engine/tools/backup_mysql.sh +238 -0
- package/dist/server/engine/tools/backup_openldap.sh +230 -0
- package/dist/server/engine/tools/backup_pgsql.sh +217 -0
- package/dist/server/engine/tools/backup_sogo.sh +156 -0
- package/dist/server/engine/tools/create_mail_user_OpenLDAP.py +335 -0
- package/dist/server/engine/tools/create_mail_user_OpenLDAP.sh +287 -0
- package/dist/server/engine/tools/create_mail_user_SQL.sh +127 -0
- package/dist/server/engine/tools/enable_postscreen.sh +144 -0
- package/dist/server/engine/tools/fail2ban_unban_ip.sh +39 -0
- package/dist/server/engine/tools/find_sasl_login_ip.sh +20 -0
- package/dist/server/engine/tools/find_top_sasl_usernames.sh +28 -0
- package/dist/server/engine/tools/generate_ssl_keys.sh +85 -0
- package/dist/server/engine/tools/kill_high_cpu_sogo_process.sh +32 -0
- package/dist/server/engine/tools/ldap_assign_user_to_groups.py +151 -0
- package/dist/server/engine/tools/ldap_move_members_to_another_group.py +129 -0
- package/dist/server/engine/tools/migrate_sql_alias_table.py +177 -0
- package/dist/server/engine/update/0.9.8/amavisd.mysql +29 -0
- package/dist/server/engine/update/0.9.8/amavisd.pgsql +39 -0
- package/dist/server/engine/update/0.9.8/iredmail.mysql +53 -0
- package/dist/server/engine/update/0.9.8/iredmail.pgsql +61 -0
- package/dist/server/engine/update/0.9.9/iredmail.mysql +2 -0
- package/dist/server/engine/update/0.9.9/iredmail.pgsql +2 -0
- package/dist/server/engine/update/1.0/iredmail.mysql +2 -0
- package/dist/server/engine/update/1.0/iredmail.pgsql +2 -0
- package/dist/server/engine/update/1.2/last_login.mysql +16 -0
- package/dist/server/engine/update/1.4.0/iredmail.mysql +22 -0
- package/dist/server/engine/update/1.4.0/iredmail.pgsql +20 -0
- package/dist/server/engine/update/1.4.1/iredmail.mysql +3 -0
- package/dist/server/engine/update/1.4.1/iredmail.pgsql +3 -0
- package/dist/server/engine/update/1.4.1/sogo.mysql +11 -0
- package/dist/server/engine/update/1.4.1/sogo.pgsql +30 -0
- package/dist/server/engine/update/1.4.1/update-ldap.py +66 -0
- package/dist/server/engine/update/1.4.2/iredmail.mysql +9 -0
- package/dist/server/engine/update/1.4.2/iredmail.pgsql +9 -0
- package/dist/server/engine/update/1.4.2/sogo.pgsql +30 -0
- package/dist/server/engine/update/1.6.0/sogo_view.pgsql +27 -0
- package/dist/server/engine/update/1.6.3/iredmail.mysql +1 -0
- package/dist/server/engine/update/1.7.0/fail2ban.mysql +11 -0
- package/dist/server/engine/update/1.7.0/fail2ban.pgsql +12 -0
- package/dist/server/engine/update/1.7.1/amavisd.mysql +1 -0
- package/dist/server/engine/update/1.7.2/vmail.mysql +30 -0
- package/dist/server/engine/update/1.7.3/deleted_mailboxes.mysql +43 -0
- package/dist/server/engine/update/1.7.3/iredadmin.mysql +26 -0
- package/dist/server/engine/update/1.7.3/vmail.mysql +79 -0
- package/dist/server/engine/update/1.7.3/vmail.pgsql +9 -0
- package/dist/server/engine/update/README.md +1 -0
- package/dist/server/engine/update/ldap/README.md +40 -0
- package/dist/server/engine/update/ldap/update-ldap-dovecot-2.3.py +69 -0
- package/dist/server/index.js +55574 -53675
- package/dist/server/migrations/0071_gh_device_token.sql +3 -0
- package/dist/server/migrations/0072_gh_device_token_method.sql +1 -0
- package/dist/server/migrations/meta/_journal.json +14 -0
- package/dist/setup-HQIZLUOJ.js +20 -0
- package/dist/{signin-DR462ERO.js → signin-ITOPKKUB.js} +13 -9
- package/dist/{sso-oidc-VBZLJUK5.js → sso-oidc-NON2PD7Y.js} +13 -9
- package/dist/{sts-EJLZ4Z77.js → sts-HHFFSAY2.js} +12 -8
- package/package.json +1 -1
- package/dist/bare-ITM45QBX.js +0 -18
- package/dist/cloud-JMPHO3CW.js +0 -7
- package/dist/cloud-W5G6YXAY.js +0 -24
- package/dist/dist-es-4C322O5D.js +0 -22
- package/dist/docker-3FVJMFC3.js +0 -12
- package/dist/docker-edge-executor-ZIWAZWPL.js +0 -9
- package/dist/edge-import-Y34YL6JK.js +0 -39
- package/dist/executor-J7BHW5HF.js +0 -26
- package/dist/nginx-YZWKYKQU.js +0 -16
- package/dist/noop-RRNCIUI5.js +0 -7
- 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
|