CHANGELOG
Unreleased
v3.5.0 (2025-05-19)
- Enhance entryid-to-json admin tool
- Fix typo in dac-query usage
- Update midb sync cron job behavior
- Fix midb client busy loop after unexpected connection loss
- Add midb-cli admin tool
- Fix test script executable permission
v3.4.2 (2025-03-27)
- Update clear-unregistered-named-properties admin tool further
v3.4.1 (2025-03-18)
- Update clear-unregistered-named-properties admin tool
v3.4.0 (2025-03-17)
- Add clear-unregistered-named-properties admin tool
v3.3.1 (2025-03-17)
- Add noop EWS AddEntityFeedbackResponse function
v3.3.0 (2024-12-19)
- Support multiple socket listeners for sasl, milter and memcache services
v3.2.0 (2024-12-03)
- Add entryid-to-json admin tool
- Add user-settings admin tool to dump and clear user setttings
- Add scopes for Outlook Modern Auth
- Add additional e4a scopes which can be used in tokens
- Always add email and upn claims to id token claims
v3.1.1 (2024-10-30)
- Use REMOTE_USER for EWS default store loading
v3.1.0 (2024-10-07)
- Add dump-sessions admin tool
- Allow '.bin' admin tools
- Install dac-query admin tool
v3.0.0 (2024-10-02)
- Move reauth client implementation to interan module
- Move system entitlement check after auth for sasl
- Add reauth url to service config ini
- Update e4a-entitlement library
- Update e4a-go-e4a library
- Switch lgidpbk auth and session from zcore to reauth
- Improve variable naming for session
- Add dac-query admin tool
- Align HTTP resonse headers to system headers
- Fix function name typo when logging error
- Make EWS return 403 when without remote user
- Implement empty stubs for a bunch of EWS functions
- Update license report endpoint URL to api.e4a-report.de
v2.2.1 (2024-08-29)
- Ignore folders in cid subfolders when cleaning up
v2.2.0 (2024-07-10)
- Add selector white list to slugs which process all users
- Add midb-sync admin tool
- Add a force parameter in the msync function to implement midb force sync
- Improve user-add admin tool
v2.1.0 (2024-06-18)
- Add support for mlist within mlists in the memcached
- Add support for mlist within mlists in the milter
- Set unused params to _ to avoid warnings
- Add license ensuring to sasl
- Fix typos
- Missing eml files couldn't be rewritten because the parameters passed to the rewrite function are wrong. Fix by removing the wrong path parameter.
v2.0.3 (2024-04-29)
- Generate 3rd-party licenses on dist
- Fix typos and naming
v2.0.2 (2024-04-10)
- Include alias domains in domain_list
- Start known service daemons without absolute path
- Fix go mod vendor order in CI
- Fix count of active webapp users only
- Count active users which have webapp only in license report
- Add tester script for o364 global autodetect
- Improve Go vendoring in build script
- Use service RPC to gather total number for license report
- Pass along context for service RPC client
- All multiple custom license report targets
- Store generated license report to data file
- Add license report trigger for new
report
claim
v1.6.3 (2024-04-10)
- Include alias domains in domain_list
v2.0.1 (2024-03-14)
- Start known service daemons without absolute path
v2.0.0 (2024-03-12)
- Fix go mod vendor order in CI
- Fix count of active webapp users only
- Count active users which have webapp only in license report
- Add tester script for o364 global autodetect
- Improve Go vendoring in build script
- Use service RPC to gather total number for license report
- Pass along context for service RPC client
- All multiple custom license report targets
- Store generated license report to data file
- Add license report trigger for new
report
claim
v1.6.2 (2024-02-14)
- Avoid failure to start domain verification if there is no state
v1.6.1 (2023-12-19)
- Include reset-store-user in installed files
v1.6.0 (2023-11-30)
- Add support for retrying indexer failures to reindex
- Fix indexer fcgi rpc error logging
- Write fts indexer failures to per index dedicated table
v1.5.1 (2023-11-24)
- Ensure DAC auth user errors are logged properly for sasl
- Avoid logging of SASL challenge when debug log level is used
v1.5.0 (2023-11-17)
- Add reset-store-user admin script
v1.4.1 (2023-10-17)
- Fix fail to failed wording treewide
v1.4.0 (2023-09-15)
- Update CI to Ubuntu 22.04
v1.3.0 (2023-09-05)
- Unfold header before performing checks
- Don't re-create logger during memcached init
- Remove obsolete autodiscover implementation
- Calculate logo width and height for HTML theme
- Fix typos and change error formating
- Add alias and mlist check to milter
v1.2.0 (2023-07-05)
- Treat indexer message content MAPI properties as unicode
- Fix indexer fields for recipient names and email
- Use WAL mode for indexer database
v1.1.3 (2023-07-03)
- Check cid folder's existence
- Ignore message is gone errors on indexer copy/move
v1.1.2 (2023-06-16)
- Treat indexer zcore login failures as message not found failures
v1.1.1 (2023-06-02)
- Avoid setting empty string slice config from emptu value
v1.1.0 (2023-05-24)
- Add simple HTTP API to adsredir for manual renew
- Ensure to build adsredir certificate chain on renew as well
- Fix adsredir renew
- Use gRPC in memcached handlers
- Move grpc and config.ini to internal package
v1.0.0 (2023-05-11)
- Fix spelling of organization
- Fix context and logging of extra license report sender
- Properly close gRPC clients when done with them
- Remove obsolete mysql configuration section
- Port Go services to use gRPC instead of MySQL to fetch data
- Port PHP services to use gRPC instead of MySQL to fetch data
- Run embedded slugs so that the vendor autoload works
- Add client for system gRPC services
- Make PHP Deprection warnings non-fatal
- Dont run phpcs in parallel
v0.21.0 (2023-04-25)
- Add commandline parameter for proxy protocol white list policy for adsredir service
v0.20.3 (2023-04-03)
- Fix missing success variable definition in php message content rpc script
v0.20.2 (2023-03-09)
- Implement adsredir cleanup to archive stale domain certificates
- Implement certificate renew for adsredir service
- Use atomic write to service data list files
- Ensure that only configured domains are usable with adsredir service
v0.20.1 (2023-03-01)
- Add Base64 encoding to SASL challenge responses
v0.20.0 (2023-02-28)
- Update license report comments and bump its version to 1
- Add authorization to license-report requests
- Include license-report version in request header
- Omit CPU core details in license report
- Include active users and active domains in license report
- Periodically dump number of active users and active domains to disk
- Update service_register slug so it actually works
- Implement monthly license report
- Add adsredird to binscript
- Implement autodiscover redirect service
- Build with Go 1.20
- Only stop retrying after endDay has passed
v0.19.1 (2023-02-07)
- Add missing include for PHP timer submit script
v0.19.0 (2023-01-17)
- Add subject setting for OOF
- Fix clean_dvs slug log output when there was no error
- Add cron job to remove dvs pending entries
v0.18.0 (2022-12-22)
- Check shared user access in autodiscover discover service
- Improve timeout and logging in PHP admin rpc client
- Add yet another EWS dummy function called by Outlook
- Add more EWS function dummies called by Outlook
- Fix EWS php exception when loading availability without email type
v0.17.0 (2022-12-07)
- Add settings for freebusy command execution and fix error handling
- Add test script for GetUserAvailabilityRequest simulation
- Fix ServerFault generator and add erorr logging for it
- Add error handle for calling of freebusy tool
- Bump github.com/libregraph/lico to 0.59.3
v0.16.3 (2022-11-30)
- Add more EWS function dummies for functions called by Outlook
- Add timeout parameter in php_admin_do_rpc function
- Revert "Validata mail address"
v0.16.2 (2022-10-26)
- Add support to send with a domain alias
- Add support to receive from domain aliases
- Update e4a-go-e4a library
- Run eml-ext clean slug daily instead of hourly
- Use faster CI workers
v0.16.1 (2022-10-18)
- Fix getsharingfolder EWS simulation XML
v0.16.0 (2022-08-23)
- Update e4a-go-e4a library
- Fix code quality
- Add mlist checks in memcached
- Update e4a-go-e4a api version
- Fix golang test
- Fix EWS function doesn't exist error
- Add GetSharingFolder Function
- Add tid claim to OIDC ID token claim set
v0.15.0 (2022-07-14)
- Update lico direct Go dependency to v0.56.0
- Handle mailgen success result properly, previously always logged error even on success
- Always set expired timestamp when generating license expired mail as its required
- Increase progress logging to info level
- Fix bug where some final errors were still retried
- Log what failed during DNS validation
- Do not overwrite the current privilege bits
- Move http client to server struct
- Use insert or replace when adding data to fts index
- Use dedicated manage.url configuration for manage-url generation
- Only use hostname from config when not empty
- Avoid panic in redeemer when registered client has no key set
- Add dvs configuration options to cmd line and env
- Add record validation to dvs
- Increase minimum wait time between tries
- Update domains end point url ID
- Fix indexer recovery
- Implement domain validation service
- Sort sync database results, to make them consistent
- Drop unused processing of archive and subsystem domain bits
- Use decomposed message ID as parameter for deferred submit
- Update e4a-go library to latest version
v0.14.1 (2022-04-20)
- Further improve indexer deletion logic and logging
- Improve indexer logging and error handling
v0.14.0 (2022-04-14)
- Update go-e4a-go to latest
- Update Go version to Go 1.18
v0.13.0 (2022-03-31)
- Update description of runtime dependencies
- Adjust http return code for successful mailgen invocation
- Build with Go 1.17
- Add no license template
- Implement embedded cron jobs
- Never install embedded slug files
- Add support for embedded slugs
- Add configuration for manage URL
- Add slug to send license notifications to local admin
- Add German translation
- Remove company name from signature
- Add translation documentation to README
- Add makefile to extract text and gen pot files
- Add internationalization support to mailgen emails
- Rename go file
- Reduce install script daemon folder scope to only install slugs
- Add license expired template
- Ensure indexer creates user store folder sub dir for index database
- Logout the zcore session when reindex is complete
v0.12.0 (2022-03-08)
- Remove obsolete custom-service config section
- Remove obsolete db backup config settings
- Remove obsolete webapp config section
- Remove obsolete jump config section
- Remove obsolete fts config section
- Remove missing items after reindexing
- Automatically use unix socket when MySQL addr is localhost
- Explicitly allow more MySQL password plugins when connecting from indexerd
- Add queue command for reindexing
- Implement reindexing MAPI session support
- Use unbounded channel for reindexing scan message IDs response
- Add sqlite3 db connection cache for fts indexer
- Add support for fts reindexing
- Add data scanner
- Add support for pprof and metrics listeners
v0.11.0 (2022-02-28)
- Add configuration for Sqlite3 based FTS indexing
- Remove intermediate PHP based reindexer slug
- Unify and complete daemon configuration
- Implement Redis based indexerd based on fifo LIST
- Fix CI PHP code quality step
- Enable clean_eml_ext vi cron
- Remove whitespace from end of line
- Remove obsolete FTS rpc helper script
- Fix second instance of EcpUrl-photo
- Add new fts index db sync slug
- Use msync command instead of menum
- Remove obsolete indexer related configuration
- Remove indexer slugs and service
- Validata mail address
- Validate mail address
- Check files existing before get content
- Update OOF functions in EWS
- Ensure the REMOTE_USER is set in ews and autodiscover service
- Check tables existing
- Update sync_from_mysql1
- Avoid deleting no domains in clean_domains slug
- Use lower caseing for the autodiscover url
- Move profile photo upload to manage ui
- Fix PHP code quality issues
- Ignore duplicate CID values when cleaning up
- Exclude some rules from phpcs
- Tell imagemagick to use no background when converting svg files
- Use only PNGs for mailgen assets
- Provide better EcpUrl in autodiscover for photo upload
v0.10.1 (2021-12-30)
- Load the redeemer private key even if there is only a single key
v0.10.0 (2021-12-20)
- Add more environment variables for serviced configuration
- Improve mailgen default configuration
- Improve template wording
- Improve mailgen logging
- Implement redeemer service
- Increase service error channel size to allow more services
- Add e4a default theme to mailgen
- Bootstrap mailgen service
- Add mailgen start code
- Store pointer to http server instead of listener
- Disable session check in lgidpbk fetch
- Use correct prepared statement order in clean_cid slug
- Update e4a-go-e4a library
- Update mysql code
- Update e4a-go-e4a to get fixed UUID RPC transmission
- Switch OIDC sign in to zcore and enable session support
- Don't start cronjobs immediately
- Disable clean_eml_ext slug
- Disable indexer slugs, they do not work
- Remove index file
- Remove incoming header debug logger
- Update service_register
- update scanner1_storage
- Update clean_tmp
- update clean_folder
- Update clean_eml_ext
- Update clean_cid
v0.9.0 (2021-11-12)
- Add support for OIDC scope expansion
- Retrieve user status from dac and map to accountEnabled field
- Use top level upb claim for privilege bits for OIDC
- Always return libregraph extensions
v0.8.1 (2021-10-29)
- Keep faststream folder
- Remove reject_sender_login_mismatch as this prevents delivering incoming mail
- Increase php memory_limit to 64M
- Send a reasonable error if domain is not found
- Include mapiutil in index_sqlite
v0.8.0 (2021-10-15)
- Implement OData extension to provide privilege_bits to acess token
- Implement libregraph IdP user backend
- Include php_mapi in sqlite_fts
- Remove redeclare functions
- Update e4a-go-e4a library
- Update e4a-go-e4a library
- Add logging to milter
- Parse address before comparing with envelope
- Fix and install useralias-add admin tool
- Improve default size of storages, domains and users
- Add postfix setup doc
- Add a milter server to the list of services
- Update e4a-go-e4a version
- Add script to add user alias
- Add allowed users memcached handler
- Register new domains without expiration by default
v0.7.0 (2021-09-15)
- Do not continue if we fail to create the listener
- Inform user of the start of a service
- Add flags to white/black list services
- Update e4a-go-e4a version
- Request adminRPC for validity of the domains
- Rename SASL socket to be consistent
- Start memcached server on startup
- Add memcached server
- Create generic server listener
- Update to the latest e4a-go-e4a
v0.6.0 (2021-09-09)
- We do no longer generate admin password, remove ignore for it
- Remove obsolete language.ini
- Remove obsolete Smarty
- Remove login check automatic email
- Remove obsolete rpc/edm services
- Remove Gridware vendor footer from email templates
- Remove unused language strings
- Remove expire domains mail sending
- Remove clean_password slug
- Remove obsolete intialization values
- Remove obsolete disabled slugs
- Remove obsolte admin password change tool
- Remove auto delete of RECORD_STATUS_DELETED marked domains
- Remove 'index.php' part from default root redirect
- Remove check_ssd slug
- Remove mysql_check slug
- Add private repo build instructions
- Add private repository support to CI
- Add proper user authentication
- Allow serviced startup even if SASL listener fails
- Line too long
- Fix comment typo
- Drop else when if ends with return
- Rename file to fix typo
- Don't use underscores in Go names
- Update readme to support the new go service
- Run go service instead of daemon.php
- Remove lefover daemon and listener php code
- handleSignal function should also handle SIGINT
- Add namespace to register function
- Run listener.php code from the go service
- Remove unsued cron code from daemon.php
- Remove init.php code
- Run init.php code from the go service
- Add generic function to run a slug
v0.5.1 (2021-08-24)
- Avoid creating empty dac database in clean_dac slug
v0.5.0 (2021-08-19)
- Add cronjob service to the go stack
- Add test script for GetUserOofSettings simulation
- Add ob_start function
- Cleanup ews service
- Add isset when access to array indexes
- Support install of Go based services correctly
- Add options for debugging
- Rename lint stage to lint and test since it also runs tests
- Implement Dovecot Authentication Protocol for Postfix SMTP SASL
- Use combined code quality report
- Add stub of Go based service daemon
- Put message_id in array
- Add LIBXML_NOERROR parameter in SimpleXMLElement
- Add check file exists function in ews
- Fix wrong import in clean_password slug
v0.4.1 (2021-08-04)
- Remove debug from changelog script
- Fix get_propids_from_strings when GUID is unavailable
- Use HTTP_HOST for auto discovery when not otherwise specified and it is available
v0.4.0 (2021-07-28)
- Add hint for e4a-mapi-dependency
- Import shared PHP code as needed from e4a-php-mapi
- Move shared PHP code to e4a-php-mapi project
- Add missing php-xml runtime dependency
- Resolve symbolic links for default BASEDIR
- Fix copy/paste error when installing www services
v0.3.0 (2021-07-26)
- Mention tools directory in setup instructions
- Use higher max-size values for domains and users
- Prevent scanner1_storage slug from exiting prematurely
- Bring back sync from mysql adaptor
- Improve daemon log, error and exit behavior
- Log slug exceptions in daemon
- Move logging to php standard error log
- Catch and log database error in clean_dac slug
- Remove shm webapp translation loading
- Disable config modifying adaptors
- Make MaxmindDB file optional
- Fix relative autoload import in login_check endpoint
- Add php-soap as runtime dependency for exchange EWS service
- Remove exchange EWS undefined variable at the end
- Add test script for auto discover simulation
- Include port in hostname when it is not 80 or 443 and derived from request
- Fix load location of language.ini treewide
- Remove TLS check, its up to the web server to check that
- Load default timezone from global section
- Load proxy_list from data dir
- Use absolute path in PHP config
- Fix install permissions so that PHP-FPM can access config and data
- Use consitent dir 'var/logs' for logging
v0.2.1 (2021-07-20)
- Publish dist artifact as generic package when its a tag
v0.2.0 (2021-07-20)
- Install tools into tools folder
- Cure PHP warning when receiving non-XML body
- Add user-add admin tool
- Add domain-register admin tool
- Add storage-register admin tool
- Cleanup output and error handling of timer/submit.php
- Improve e4a-service bin script and tool calling support
- Remove obsolete send_bulletin PHP tool
- Minor style fixes for commandline php script
- Move PSR12 cs to bottom to give it priority
- Move admin passwd tool to sub folder
- Fix up PHP www index service
- Let everyone access our PHP-FPM pool sockets
- Fix bogus PHP include path
- Run CI for main, merge requests and tags only
- Fix imports of vendor autoloader for slugs
- Check if webapp is available, before initializing shm translation data
- Make archive system config file optional
- Remove supervisor related configuration settings
- Disable service system stop on change
- Remove TLS certificate syncing
- Remove anti-spam related functions
- Install extra data files as required
- Add php-sqlite3 to runtime dependencies
- Load exmdb_list.txt from data folder
- Fix more missing/wrong paths
- Make missing webapp folder non-fatal
- Add development setup instructions
- Create addition data files on install as needed
- Fix remaining path locations in slugs
- Fix nested libs/php install location error
- Update PHP code sniffer rules to match new folder structure
- Add PHP-FPM pool configuration examples
- Move php libs to subfolder
- Remove obsolete system-v IPC calls
- Add dist script and run in CI
- Add php-mysql to runtime dependency requirement
- Update default configuration to e4a naming
- Remove obsolete adminrpc/billing RPC endpoint
- Remove obsolete qqwry login check
- Move more paths to e4a naming treewide
- Disable slug related to doc
- Disable slugs which use obsolte admin-ui
- Add compatibility for legacy mysql non-PDO functions
- Update active slugs
- Remove obsolete anti-spam keyword hook
- Remove obsolete slug related to old webmeetings
- Disable a bunch of slugs which might not be needed for now
- Move paths to e4a naming scheme treewide
- Document more runtime dependencies
- Fixup PHP includes treewide
- Minmal refactor of PHP daemon so it starts up
- Add README
- Add MaxMind DB Reader to composer