Commit Graph

105 Commits

Author SHA1 Message Date
6ee1d6e917 feat(ops-dashboard): implement OpsServer and dashboard component with initial rendering 2025-06-01 19:46:10 +00:00
fe817dde00 feat(logging): add professional startup logging to DcRouter
- Add logStartupSummary() method with clean ASCII art header
- Display service status for SmartProxy, Email, DNS, and Storage
- Show detailed configuration info for each service
- Replace verbose console logs with structured startup summary
2025-05-31 15:58:56 +00:00
272973702e feat(dns): implement DKIM record serving and proactive key generation
- Add loadDkimRecords() method to read DKIM records from JSON files
- Integrate DKIM records into DNS server during startup
- Add initializeDkimForEmailDomains() for proactive DKIM key generation
- Ensure DKIM records are available immediately after server startup
- Update documentation with DKIM implementation status

DKIM records are now automatically loaded from .nogit/data/dns/*.dkimrecord.json
and served via DNS. Keys are generated for all configured email domains at startup.
2025-05-31 12:53:29 +00:00
c776dab2c0 fix(nameservers): fix ip records 2025-05-30 20:11:44 +00:00
74692c4aa5 fix(dns): Fixed Soa records 2025-05-30 19:54:48 +00:00
71183b35c0 fix(dns): register separate handlers for each DNS record to serve multiple records
The previous implementation grouped records by domain and only returned the first
matching record. This prevented serving multiple NS records for a domain, which
caused GoDaddy to reject the nameservers.

Changes:
- Modified registerDnsRecords to register a separate handler for each record
- This works around smartdns limitation where it breaks after first handler match
- Now all NS records are properly served in DNS responses
- Added readme.smartdns.md documenting the underlying issue in smartdns module

The root cause is in smartdns DnsServer which breaks after finding the first
matching handler, preventing multiple records of the same type from being served.
2025-05-30 16:44:10 +00:00
ae73de19b2 fix(dns): update DnsManager to use new DNS configuration properties
The DnsManager was still checking for the old dnsDomain property that was
replaced by dnsNsDomains and dnsScopes in the DNS Architecture Improvements.

Changes:
- Replace dnsDomain checks with dnsNsDomains and dnsScopes validation
- Add check to ensure email domain is included in dnsScopes array
- Update NS delegation check to work with multiple nameservers
- Update error messages to guide users to the new configuration format
2025-05-30 16:26:31 +00:00
739eeb63aa update 2025-05-30 15:04:12 +00:00
eb26a62a87 fix(config): Update dns config interface within DcRouter 2025-05-30 10:34:50 +00:00
37e1ecefd2 refactor(dns): extend DnsValidator to DnsManager with DNS record creation
- Rename DnsValidator to DnsManager to better reflect its expanded responsibilities
- Move DNS record creation logic from UnifiedEmailServer to DnsManager
- Add ensureDnsRecords() method that handles both validation and creation
- Consolidate internal DNS record creation (MX, SPF, DMARC) in one place
- Keep DKIM key generation in UnifiedEmailServer but move DNS registration to DnsManager
- Update all imports and tests to use DnsManager instead of DnsValidator
- Improve code organization and discoverability of DNS functionality
2025-05-30 08:52:07 +00:00
53b64025f3 feat(storage): implement StorageManager with filesystem support and component integration
- Add StorageManager with filesystem, custom, and memory backends
- Update DKIMCreator and BounceManager to use StorageManager
- Remove component-level storage warnings (handled by StorageManager)
- Fix list() method for filesystem backend
- Add comprehensive storage and integration tests
- Implement DNS mode switching tests
- Complete Phase 4 testing tasks from plan
2025-05-30 07:00:59 +00:00
40db395591 feat(integration): components now play nicer with each other 2025-05-30 05:30:06 +00:00
b11fea7334 feat(socket-handler): implement direct socket passing for DNS and email services
- Add socket-handler mode eliminating internal port binding for improved performance
- Add `dnsDomain` config option for automatic DNS-over-HTTPS (DoH) setup
- Add `useSocketHandler` flag to email config for direct socket processing
- Update SmartProxy route generation to support socket-handler actions
- Integrate smartdns with manual HTTPS mode for DoH without port binding
- Add automatic route creation for DNS paths when dnsDomain is configured
- Update documentation with socket-handler configuration and benefits
- Improve resource efficiency by eliminating internal port forwarding
2025-05-29 16:26:19 +00:00
6c8458f63c update 2025-05-28 18:07:07 +00:00
e1a7b3e8f7 Complete email router implementation and documentation
- Cleaned up interface definitions to only include implemented features
- Updated readme.md with comprehensive route-based configuration examples
- Added common email routing patterns and troubleshooting guide
- Removed legacy DomainRouter and IDomainRule interfaces
- Updated all imports and exports to use new EmailRouter system
- Verified build and core functionality tests pass

The match/action pattern implementation is now complete and production-ready.
2025-05-28 14:12:50 +00:00
2e75961d1c feat: implement comprehensive route-based email routing system
Replace legacy domain-rule based routing with flexible route-based system that supports:
- Multi-criteria matching (recipients, senders, IPs, authentication)
- Four action types (forward, process, deliver, reject)
- Moved DKIM signing to delivery phase for signature validity
- Connection pooling for efficient email forwarding
- Pattern caching for improved performance

This provides more granular control over email routing with priority-based matching and comprehensive test coverage.
2025-05-28 13:23:45 +00:00
88099e120a feat: implement route-based email routing system
- Add core interfaces (IEmailRoute, IEmailMatch, IEmailAction, IEmailContext)
- Create EmailRouter class with comprehensive matching capabilities
- Support for recipient/sender patterns, IP/CIDR matching, auth checks
- Add content matching (headers, size, subject, attachments)
- Implement pattern caching for performance
- Update plan with completed steps
2025-05-28 12:07:37 +00:00
77ff948404 update 2025-05-28 11:39:54 +00:00
0e610cba16 update 2025-05-28 11:39:46 +00:00
8d59d617f1 fix(interfaces): Remove legacy interfaces 2025-05-27 21:03:17 +00:00
6aa54d974e fix(mail options): simplify mail options 2025-05-27 19:28:12 +00:00
2aeb52bf13 fix(structure): Unify structure even further 2025-05-27 18:00:14 +00:00
243a45d24c feat(structure): Use unified Email class 2025-05-27 15:38:34 +00:00
cfea44742a update 2025-05-27 15:06:44 +00:00
073c8378c7 update 2025-05-27 14:06:22 +00:00
af408d38c9 feat(plan): simplify structure 2025-05-27 12:56:12 +00:00
c3b14c0f58 update 2025-05-27 10:39:29 +00:00
5a45d6cd45 update 2025-05-26 04:09:29 +00:00
5b33623c2d update 2025-05-25 11:18:12 +00:00
f2e9ff0a51 update 2025-05-24 01:00:30 +00:00
1b141ec8f3 update 2025-05-23 19:03:44 +00:00
7d28d23bbd update 2025-05-23 08:52:02 +00:00
53f5e30b23 update 2025-05-23 08:17:34 +00:00
7344bf0f70 update 2025-05-23 01:00:37 +00:00
4905595cbb update 2025-05-23 00:06:07 +00:00
f058b2d1e7 update 2025-05-22 23:09:41 +00:00
6fcc3feb73 update 2025-05-22 23:02:51 +00:00
50350bd78d update 2025-05-22 23:02:37 +00:00
f065a9c952 update 2025-05-22 18:38:04 +00:00
ca53816b41 BREAKING_CHANGE(structure): rebrand as dcrouter 2025-05-22 13:03:09 +00:00
ac419e7b79 update 2025-05-22 10:18:02 +00:00
7c0f9b4e44 update 2025-05-22 09:39:31 +00:00
d584f3584c update 2025-05-22 09:22:55 +00:00
a4353b10bb update 2025-05-22 00:38:04 +00:00
b2f25c49b6 update 2025-05-22 00:11:33 +00:00
d3255a7e14 update 2025-05-21 23:37:29 +00:00
2564d0874b update 2025-05-21 21:29:04 +00:00
ca111f4783 update 2025-05-21 19:08:50 +00:00
b6dd281a54 update 2025-05-21 18:52:04 +00:00
645790d0c2 update 2025-05-21 17:33:16 +00:00