- Updated license
- Updated easylogging++ to 9.96.7
- Updated easylogging++ 9.96.5 to fix enabled bug
- Updated easylogging++ to 9.96.3 for changelog item 2
- More logs on connect failure
- Fix for cross-mac issue
- Fix invalid resolution for
RESIDUE_HOME
when not available
RESIDUE_HOME
env variable resolves to nothing if not set instead of leaving it in-place- Updated internal networking library to 1.12.0
- Added
reset
inDispatchErrorExtension
which is called when previously failed is no longer failing
- Added
stats dyn
andstats queue
- Backup keys only visible with
--with-key
parameter - Max bulk items can be set to 5-500
- Dynamic buffer recovery check fix
- Crash when rotating an invalid file
- Abstract server and I/O service
- Use shared pointer to keep reference for the session in the handler
- Added
LogExtension::Level
enum for readability ofLogExtension::Data::level
- Added new extension
DispatchErrorExtension
- Made
Extension::type
typesafe with enum class - Added
successfullyWritten
inLogExtension
- Added
JsonDoc::getObj
andJsonDoc::getArr
for simple access
- Log message when execution of extension finished
- Updated invalid ports message
- User must have READ permission in
file_mode
- Configure residue using
--setup
flag
- Unknown clients have been renamed to unmanaged clients
- Known clients have been renamed to managed clients
- Unknown loggers have been renamed to unmanaged loggers
- Known loggers have been renamed to known loggers
- Standard response code has quotes around the key
- Reopen files after
rconfig --logger-id
- Dynamic buffer to prevent loss of any message in case of failures
- Added option
--residue-home
to override environment variableRESIDUE_HOME
- Prevent duplicate default loggers when logger is specified for one of the clients (admin)
- Extension API and shared+static library for extensions
- Added
PRE_ARCHIVE
andPOST_ARCHIVE
extensions - Change default logging port to 8778
- Removed ability to dynamically add/remove client #107
- Reloading configuration starts processors for newly added clients
- Disable previously removed client
- Remove token server (this change may break existing client libs - please update) #108
- Removed
_close
support
- Fixed duplicate files when listing files being used (admin)
- Fix crash with invalid bulk requests
- New format specifier
%session_id
- Client integrity tasks are paused for specific clients being processed instead of all clients
- Unknown client trying to use known logger using valid access code is no longer allowed
- Separate log dispatchers and logging queue by clients #96
- Some configurations now support
RESIDUE_HOME
environment variable - Known loggers configured at start up
- Client ID now supports
.
character - Introduced
_close
for closing connection immediately after response
- Fix rotation locks
--force-without-root
message fix at startup- Fix standard responses if initial check on log request failed
- Upgraded Easylogging++ to 9.96.1
- Implemented file locks for updated logging library
ALLOW_PLAIN_LOG_REQUEST
removed #97- Changed
ALLOW_PLAIN_CONNECTION
toALLOW_INSECURE_CONNECTION
to be more clear
- Configuration saving is not pretty-printed
- Server requires timestamp by default
- Fix output help from
--verbose
to--v
- Bulk items do not have correct translations for unsigned long #88
- Performance improvement using standard response
- Changed
access_codes_blacklist
toaccess_code_blacklist
- Changed
ACCEPT_INPUT
renamed toENABLE_CLI
- Crash detected when writing to session #79
- Fixed undefined behaviour with destroyed sessions
- Client integrity task can remove pending dead client #73
- Deadlock detected while dispatching log #76
- Race condition causing deadlock when creating log file #77
- Long pending requests fail after dead client's key is reset #75
- Upgraded underlying logging library Easylogging++ from 9.95.0 to 9.96.0
- Moved some of the unnecessary logs from production-debug to dev-debug
- Output for
sess --stats
fixed for multiple sessions - Fix race condition on sessions when resetting
- Session now has unique IDs
- Merged
sess
andstats
in to single CLI command - Changed
sess --stats
tostats list
- Ability to filter sessions by client IDs
- New option
--with-key
withclients list
- Changed
--logger
tologger-id
inrconfig
for consistency
- Based on standalone ASIO instead of boost
- Fix crash when failed to process zlib operations
- Upgraded ripe library to 4.1.1
- User agent for HTTP client changed from
Residue/x.x
toabumq/residue/x.x.x
- Fix incorrect message for checking client age
- Changed
reload
torconfig
- Added ability to reconfigure logger using
--logger
withrconfig
- New clients CLI option
clean
- Log rotator task - daily, weekly, monthly and yearly schedule (issue #49)
- Improved the command line handler to support arrow keys and history using up key
- Log rotators that take longer to archive now correctly resolve subsequent format specifiers
- Log rotator did not resolve correct
%level
for destination directory - Key is reset if client connected after client is dead before removal
- Debug printed in server version in connection response if build has debug logs enabled
- Quarter format specifier now has
Q
prefix
- Extra logging for debugging
- LogArchiver thread name starts with log rotator name for different frequencies
- Removed licensing
- Minor tweaks for performance
- Extension support via python (disabled in official releases - see EXTENSIONS.md under
docs/
)
- Residue crash handler installed by default - all crashes will be logged via
residue
logger
- Context switching improved by extracting it seperately and only one lock at the time of switching
- Updated Ripe to 4.1.0
client_id
added to log files admin response
- Reset license keys to final new keys
- Moved server and license info to
server_info
object in response - Added
license_expiry
in connection response - Removed
v
fromserver_info.version
- Loggers and clients endpoints only called when available in configuration
- Log rotator rounds up to nearest hour
- Issue with loading license with signature fixed
- Logging files now lists default logger for client
LIST_LOGGING_FILES
admin request now returns logger - files map instead of flat list of files- Mine is disabled for future releases until fully stable
- Admin request to list files runs correct command
LIST_LOGGING_FILES
shows files for all levels if not specified otherwise
- License issuing authority in connection response
- Linking of some libraries for portability
- Admin requests now calls commands using command handler
- License authority technical updates
- Concept of extensions
- A lot of refactoring and wrapper for cryptography
- Attach crash handler opt
- Fixed up licensing authorities
- Fixed issue with license with signature not loading properly
- Fix issue with crashing on non-bulk requests
- Re-structured the source code for scalability
- Critical fix to incorrect dereferencing making server even faster and more logging
- Fix to client checking after client integrity task execution
- Updated logging levels for some logs
- More logging for debugging
CHECK_TOKENS
changed toREQUIRES_TOKEN
- Bypass checks for same bulk if first check passed
- Log rotation for global level is not seperated with each levels rather it will use
GLOBAL
- Changes file mode for logger files
- Ability to set custom default logger under
known_clients
for unknown logger configurations - New command to remove client manually
- Run log rotator using CLI and admin requests
- Added licenseee in connection response
- Fixed log rotator to fix permissions for archived file
- Fixed user owner issue with known client (with user) and unknown logger
- Context switching for the queue has now threshold of 500 items
- Fixed issue with check client when processing to use date received instead of current date
- Critical bug with not being able to write verbose log is fixed
- Log rotation file naming issue fixed
- Issue with log rotation for loggers are not supposed to be rotated
- Fix log rotation for
residue
logger
- License manager functionality
- First demo server
- Separated library code from the server
- Removed
allow_pinging_dead_client
config - New configs
timestamp_validity
andrequires_timestamp
- Changed
authorize_loggers_with_no_access_code
toallow_default_access_code
- Healing the connection will respond with flags and other connection response items
- Fixed release build
- Ability to specify key size for each client
- Added
max_token_age
configuration
- Performance update for I/O operation on public key
- Default token age for known loggers is now value of global
token_age
configuration server_rsa_secret
should be hex-encoded value now
- Fixed issue with plain connection
- New configuration
known_clients_endpoint
andknown_loggers_endpoint
- Issue with clean start and reloading configuration fixed
- Loggers map for
known_clients
- Changed
CHECK_LOGGING_FILE
to support searching by multiple logging levels and byclient_id
- Removed references for
max_file_size
as we do not need it because of log rotation.
- New admin request
CHECK_LOGGING_FILE
to get known logger file for specified level
- Issue with timestamp validation check when timestamp is newer than date received
- Changed licence to Apache 2.0
- Fix logging failure issue from some client libraries
- Build with
g++-5
- Prevent replay attack using
_t
request item - Some inaccessible variables issue fixes
accept_input
configuration
- Fixed admin request handler and decryption
- Ability to save configuration
- Ability to add and remove known clients using admin requests
- Ability to reset the server using CLI
- Ability to reset the server using admin request
- Fixed typo in documentation
- Ignore interrupt signal with message to use
quit
command - Quarter and year units for log rotation
- Added
default_key_size
configuration
- Log successful with dead client #24
- Resetting connection deadlock #25
- [api] Obtain token and pinging fails #26
- [api] Fixed issue with
disconnect()
andconnect()
again - Dead lock on client integrity task
- Added mutex for session join/leave to prevent race-condition and crash
- Removed
DISCONNECT
andSAFE_DISCONNECT
connection types - Moved node client to separate repo
- Known client ID can only be alpha-numeric with few exceptional symbols
- Send server flags with final connection #14
- Support sending plain log requests in lib #13
- Code refactor #4
- Support compression #19
- Compression for archived log files should be async process #2
- New helper
enableAutoBulkParams
to support auto setting bulk parameters - Implement archived log compression #1
- Ignore archiving empty log files #20
- Issue with dead client and resetting connection caused issue with dispatcher thread in client lib #22
- Initial alpha release