Журнал змін (Changelog)#
All notable changes to the EFA-NG (Email Filter Appliance - Next Generation) project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[6.0.7] - 2026-10-30#
Додано#
AND / OR Condition Logic & Match Mode Switcher:AND / OR) added to the Add Filter criteria row (filter-col-logic), remembering user selection across subsequent conditions.AND (slate badge) / OR (amber badge) toggle chips displayed directly between active filter criteria.Match: [ALL (AND)] [ANY (OR)]) enabling instant bulk switching between conjunctive (AND) and disjunctive (OR) filtering.AND ( cond1 OR cond2 ... ), eliminating operator precedence conflicts and guaranteeing full isolation for domain/user access restrictions ($_SESSION['global_filter']).To contains "help" OR To contains "abuse").logic column to saved_filters table in create.sql and upgrade.php with backward-compatible fallback for legacy databases.filemtime timestamp versioning (style.css?v=<filemtime>) in functions.php to ensure client browsers immediately load fresh CSS without manual cache clearing.sa-compile and phishing feed synchronization).tests/Integration/MWFilterLogicTest.php) verifying logic connectives, SQL grouping, toggle badges, switcher controls, and persistence across 11 test cases and 63 assertions.[6.0.6] - 2026-08-30#
Додано#
eFa-Migrate):eFa-Configure interactive console under option 12) Backup & Server Migration Wizard./var/eFa/backup/pre-migration-TIMESTAMP.tar.gz).eFa-Migrate-Audit.php):conf.php, MailScanner.conf, Postfix main.cf, and SpamAssassin local.cf.dash_fast_ptr_lookup) with strict 150ms timeout, eliminating 10-second freeze caused by unresponsive spammer reverse DNS.temp/dash_dns_cache.json).temp/dash_cache/) with instant bypass on manual or scheduled refresh (&force=1).systemctl is-active) reducing service polling latency from 100ms to 14ms.[6.0.5] - 2026-08-28#
Додано#
https://t.me/EFA_NG) and project portal (https://efa-ng.space.ua) across all documentation, GitHub repositories, RPM specs, CLI console, and Web UI.README.md for both EFA-NG and MailWatch-NG.eFa-Init).eFa-Configure):● OK / ○ OFF), and 4 categorized ANSI box-drawing cards.whiptail.M): Persistent mode configuration stored in /etc/eFa/eFa-Configure.conf.13) Update System & Packages):dnf --refresh check-update preview before prompting to apply updates.php-fpm, httpd, postfix) after transaction completion.Змінено#
Hostname and IP Addr supporting up to 58 printable characters.Load and Version) starting at column 48 with guaranteed 75-column terminal boundary.Виправлено#
printf by isolating color tokens inside fixed-width brackets.lib-eFa-Configure):func_ipsettings.func_mailsettings.func_apachesettings to [eFa-NG].pause() and read choice in eFa-Configure to prevent infinite loops in piped scripts or background automation.---
[6.0.4] - 2026-08-26#
Додано#
images/flags/.format_country_flag($countryCode, $countryName) helper function in functions.php.detail.php), Top Relay Countries & AS/ASN widget (dashboard.inc.php), and GeoIP reports (graphgenerator.inc.php).#1f6cb0).@EFA_NG Announcements topic (t.me/EFA_NG/3)..efa-telegram.env) preventing token leaks to Git.Змінено#
Виправлено#
login.php, password_reset.php, and auto-release.php to prevent 800px logo overflow.efa-test.ukrpack.net and efa-ng-test.ukrpack.net.---
[6.0.3] - 2026-08-26#
Додано#
dashboard.php, dashboard.inc.php):user_dashboards).strato-do/ip-geo Integration & Autonomous System (AS / ASN) Tracking:strato-do/ip-geo database providing countries, cities, and Autonomous System details.https://ipinfo.io/AS<number> across message details, reports, and top relay widgets.geoip_update.php and automated CLI cron update_geoip.php.Virus (ClamAV (Eicar-Test-Signature / Win32.Trojan.Gen-8912)) shortened to Virus (Eicar-Test-Signature)).used / total (pct%)) in System Health.● ACTIVE).Виправлено#
detail.php): Fixed session token validation so direct GET navigation from dashboards and reports does not trigger false timeout logouts.validateInput(..., 'msgid') in functions.php to accept modern MTA and Postfix long queue ID formats.rep_message_listing.php?relay=... drilldowns to match both clientip and message header IP records.---
[6.0.2] - 2026-08-24#
Додано#
quarantine.php):◀, Today, ▶).🔒 count ›) and categorized threat sub-tags (🦠, ⚡, 🛡️).ip.space.ua.js/lineConfig.js enabling simultaneous display of message counts (0..500) and traffic volume (0..100MB) without scale distortion.rep_*.php pages with category badges and animated chevron transitions.🗂️, 📈, 🌐, 👥, 🛡️, 📜, 🔍, 🕒).▲, ▼, ↕), removing legacy A/D letters.generatePager() and dbtable() to keep message tables cleanly inside the flex layout.Виправлено#
#trafficgraph in top header bar.---
[6.0.0] - 2026-08-21#
Додано#
f-prot-6-autoupdate, kse-autoupdate, freshclam).kit400/MailWatch-NG with native support for PHP 8.3, relay services (postfix_relay, milter_relay), greylisting management, and Perl integration modules.eFa10.te): Modernized security policy profile tailored for EL10 with strict confinement and dedicated capabilities for greylist_milter_t and httpd_sys_script_t.Змінено#
transport, virtual, helo_access, sender_access, recipient_access, sender_canonical, recipient_canonical, aliases) and TLS session caches from deprecated Berkeley DB (hash:, btree:) to high-performance LMDB (lmdb:).mtagroup), and refreshed systemd services (sqlgrey.service, msmilter.service).---
[5.0.0-12] - 2026-08-19#
Додано#
f-prot-6-autoupdate, kse-autoupdate).kit400/MailWatch-NG natively incorporating all eFa branding, relay services (postfix_relay, milter_relay), Greylisting navigation, and Perl integration modules (MailWatchConf.pm), replacing brittle spec-level sed patches.eFa10.te): Created EL10 SELinux module tailored for modern distributions (removed obsolete ntpd_t, granted proper runtime directory permissions for greylist_milter_t and httpd_sys_script_t).Змінено#
transport, virtual, helo_access, sender_access, recipient_access, sender_canonical, recipient_canonical, aliases) and TLS session caches from deprecated Berkeley DB (hash:, btree:) to high-performance lmdb:.SESSION_TIMEOUT in MailWatch and PHP session parameters (session.gc_maxlifetime, session.cookie_lifetime) to 3 days (259,200 seconds) and removed the legacy 99,999-second upper bound.postfix to mtagroup and set 0775 permissions on MailScanner queue spools (milterin, milterout, quarantine, incoming) to ensure reliable end-of-data milter transactions.sqlgrey.service: Configured User=sqlgrey, Group=sqlgrey, and RuntimeDirectory=sqlgrey so runtime PID files are managed and cleaned up without permission issues.msmilter.service: Updated startup dependencies and permissions.Виправлено#
255.255.255.224) alongside CIDR prefix lengths.sudo cat /etc/passwd process spawning with native PHP user lookups and system account collision guards.configuredo1): Made database creation, table migrations, and SQL user grants fully idempotent for MariaDB 10.11+.configuredo7): Added error handling and timeouts around razor-admin Cloudmark registration.configuredo12): Unified /etc/sasldb2 and /etc/sasl2/sasldb2 paths.---
[5.0.0-11] - 2024-07-27#
Виправлено#
MailWatchConf.pm configuration.[5.0.0-10] - 2024-07-26#
Додано#
checkqueues for automated queue permissions recovery.[5.0.0-9] - 2024-07-20#
Виправлено#
[5.0.0-8] - 2024-06-11#
Виправлено#
MailWatchConf.pm configuration updates during system upgrades.