Change Log

ESB3024 Router change log history

esb3024-1.22.1

  • NEW: Performance optimizations and improvements
  • NEW: Show number of selection input entries in Grafana [ESB3024-1582]
  • NEW: Monitor Lua memory usage [ESB3024-1591]
  • NEW: Monitor memory and CPU usage [ESB3024-1592]
  • NEW: Improved expiration handling of messages read from Kafka [ESB3024-1594]
  • FIXED: Selection input item limit does not work [ESB3024-1472]
  • FIXED: The Director does not reconnect when a Kafka topic is recreated [ESB3024-1491]
  • FIXED: Segmentation fault when connection to Kafka is lost [ESB3024-1523]
  • FIXED: SELinux being set to enforced without consent [ESB3024-1586]
  • FIXED: Migraton script missing for integration.gui config [ESB3024-1621]
  • FIXED: Installation fails if firewalld is disabled [ESB3024-1623]

esb3024-1.22.0

  • NEW: Add support for UTF-8 to configuration [ESB3024-489]
  • NEW: Add classifier type for HTTP headers [ESB3024-1177]
  • NEW: Make Lua hmac_sha256 function return a binary string [ESB3024-1245]
  • NEW: Limit which headers are forwarded to a host [ESB3024-1387]
  • NEW: Reload GeoIP databases without restarting the router service [ESB3024-1429]
  • NEW: [ANSSI-BP-028] System Settings - Network Configuration and Firewalls [ESB3024-1450]
  • NEW: [ANSSI-BP-028] System Settings - SELinux [ESB3024-1452]
  • NEW: [ANSSI-BP-028] Services - SSH Server [ESB3024-1456]
  • NEW: Improved classifiers [ESB3024-1492]
  • NEW: Improved Selection Input Rest API [ESB3024-1511]
  • FIXED: trustedProxies does not support CIDR [ESB3024-1136]
  • FIXED: Some valid configurations are rejected [ESB3024-1191]
  • FIXED: Lua print() does not behave according to the documentation [ESB3024-1248]
  • FIXED: Session translation function only applies to initial sessions [ESB3024-1379]
  • FIXED: It is not possible to change the configuration port [ESB3024-1381]
  • FIXED: Invalid metrics endpoint response [ESB3024-1388]
  • FIXED: Slow CDN response can prevent manifest from being downloaded [ESB3024-1424]
  • FIXED: CORS error in select input handler response [ESB3024-1426]
  • FIXED: Expired selection input entries are not always deleted [ESB3024-1485]
  • FIXED: The Director blocks when loading messages from Kafka [ESB3024-1490]

esb3024-1.20.1

  • NEW: Support any 3xx response from redirecting CDNs [ESB3024-1271]
  • NEW: Support blocking of previously used tokens [ESB3024-1277]
  • NEW: Set and get selection input over Kafka. The new configuration field dataStreams introduces support to interface with Kafka. [ESB3024-1278]
  • NEW: Support TTL in selection input over Kafka [ESB3024-1286]
  • NEW: Add option to disable URL encoding on outgoing requests from Lua [ESB3024-1306]
  • NEW: Add Lua function for populating metrics [ESB3024-1334]
  • FIXED: Improve selection input performance [ESB3024-1290]
  • FIXED: Wildcard certificates wrongly documented as being unsupported [ESB3024-1324]
  • FIXED: Selection input items with empty keys are not rejected [ESB3024-1328]
  • FIXED: IP addresses wrongly classified as anonymous [ESB3024-1331]
  • FIXED: Some selection input payloads are erroneously rejected [ESB3024-1344]

esb3024-1.18.0

  • NEW: Support configuration feedback. concli provides very basic feedback [ESB3024-1165]
  • NEW: Send HTTP requests from Lua code [ESB3024-1172]
  • NEW: Add acd-metrics-aggregator service [ESB3024-1221]
  • NEW: Add acd-telegraf-metrics-database service [ESB3024-1224]
  • NEW: Make all Lua functions snake_case. timeToEpoch and epochToTime have been deprecated. [ESB3024-1246]
  • FIXED: Content popularity parameters can’t be configured [ESB3024-1187]
  • FIXED: acd-edns-proxy returns CNAME records in brackets. Hostnames were erroneously interpreted as IPv6 addresses. [ESB3024-1276]

esb3024-1.16.0

  • NEW: Collect metrics per account [ESB3024-911]
  • NEW: Strip whitespace from beginning and end of names in configuration [ESB3024-954]
  • NEW: Improved reselection logging [ESB3024-1089]
  • NEW: Access log to file instead of journald. Access logs can now be found in /var/log/acd-router/access.log [ESB3024-1164]
  • NEW: Additional Lua checksum functions [ESB3024-1229]
  • NEW: Symlink logging directory /var/log/acd-router to /opt/edgeware/acd/router/log [ESB3024-1232]
  • FIXED: Convoy Bridge retries errors too fast [ESB3024-1120]
  • FIXED: Memory safety issue. Certain circumstances could cause the director to crash [ESB3024-1123]
  • FIXED: Too high severity on some log messages [ESB3024-1171]
  • FIXED: Session Proxy sends lowercase header names, which are not supported by Agile Cache [ESB3024-1183]
  • FIXED: Translation functions hostRequest and request fail when used together [ESB3024-1184]
  • FIXED: Lua hashing functions do not accept binary data [ESB3024-1196]
  • FIXED: Session Proxy has poor throughput [ESB3024-1197]
  • FIXED: Configuration doesn’t handle nested Lua tables as argument to conditions [ESB3024-1218]

esb3024-1.14.2

  • NEW: Define custom_capacity_var as a number in host_has_bw_custom(). Using a selection input variable for custom_capacity_var is no longer necessary. [ESB3024-1119]
  • FIXED: Predictive load balancing functions do not handle missing interface [ESB3024-1100]
  • FIXED: Client closing socket can cause proxy IP to resolve to “?” [ESB3024-1139]
  • FIXED: ACD crashes when attempting to read corrupt cached data. The cached data can become corrupt if the filesystem is manipulated by a user or the system runs out of storage. [ESB3024-1147]
  • FIXED: Subnets are not being persisted to disk [ESB3024-1149]
  • FIXED: ACD overwrites custom GeoIP MMDB files with the default shipped MMDB files when upgrading [ESB3024-1150]

esb3024-1.14.0

  • NEW: Remove grafana-loki and fluentbit containers [ESB3024-774]
  • NEW: Extend num_endpoint_requests metric with host ID [ESB3024-975]
  • NEW: Improved subnets endpoint. See API overview documentation for details. [ESB3024-1018]
  • NEW: Support RHEL-9 / OL9 [ESB3024-1022]
  • NEW: Support OpenSSL 3 [ESB3024-1025]
  • NEW: Changed the router base image to oracle linux 9. See breaking changes [ESB3024-1034]
  • NEW: Rename allowedProxies to trustedProxies [ESB3024-1085]
  • NEW: Deny proxy connections by default if trustedProxies is empty [ESB3024-1088]
  • FIXED: Too long classifier name crashes confd-transformer [ESB3024-949]
  • FIXED: Lua condition si() doesn’t handle boolean values [ESB3024-1017]
  • FIXED: Classifiers of type stringMatcher and regexMatcher can’t use content query params as source [ESB3024-1032]
  • FIXED: ConsistentHashing algorithm is not content aware [ESB3024-1053]
  • FIXED: Large configurations fail to apply. The REST API max body size is now configurable. [ESB3024-1056]
  • FIXED: Convoy-bridge DB connection failure spams logs [ESB3024-1080]
  • FIXED: Convoy-bridge does not send correctly formatted session-id [ESB3024-1081]
  • FIXED: Response translation removes message body [ESB3024-1082]

esb3024-1.12.1

  • NEW: Remove support for EL7 [ESB3024-1046]
  • FIXED: Large configuration causes crash [ESB3024-1043]

esb3024-1.12.0

  • NEW: Move managed session creation to Lua. Creating managed sessions is now handled by using the session translation function. [ESB3024-454]
  • NEW: Grafana dashboards to monitor Quality [ESB3024-511]
  • NEW: Measure and expose quality scores. A quality score per host and session group is now available when making routing decisions. [ESB3024-512]
  • NEW: Add default session classifiers. When resetting the list of classifiers in confd, it is now populated with commonly used classifers. [ESB3024-769]
  • NEW: Add configuration migration tool [ESB3024-824]
  • NEW: Add new Random classifier [ESB3024-899]
  • NEW: Add URL parsing code to Lua library. An URL parser based on https://github.com/golgote/neturl/ with extensions for path splitting and joining [ESB3024-936]
  • NEW: Standard library Lua functions now use the same log mechanism as the Director [ESB3024-966]
  • NEW: Extend ’num_sessions’ metric to include a label with the selected host [ESB3024-973]
  • NEW: Add quality level metrics [ESB3024-974]
  • NEW: Add host request translation function [ESB3024-996]
  • FIXED: ConsistentHashing Algorithm only supports MD5. MD5, SDBM and Murmur are now supported. [ESB3024-929]
  • FIXED: Confd IPv4 validation rejects IPs with /29 netmask [ESB3024-1010]
  • FIXED: Stale timestamped selection input not being pruned. Added configurable timestamped selection input timeout limit. [ESB3024-1016]

esb3024-1.10.2

  • FIXED: ConsistentHashing rule broken [ESB3024-969]
  • FIXED: Increase configuration size limit [ESB3024-983]

esb3024-1.10.1

  • NEW: Change predictive load balancing functions to use megabits/s [ESB3024-932]
  • FIXED: Logic classifier statements can consume all memory [ESB3024-937]

esb3024-1.10.0

  • NEW: Use metrics from streamers in routing decisions. Added standard library Lua support to use hardware metrics in routing decisions. Added host health checks in the configuration. [ESB3024-154]
  • NEW: Remove unused field “apiKey” from configuration [ESB3024-426]
  • NEW: Support integration with Convoy Analytics [ESB3024-694]
  • NEW: Support combining classifiers using AND/OR in session groups [ESB3024-776]
  • NEW: Enable access logging by default [ESB3024-816]
  • NEW: Improved Lua translation function error handling [ESB3024-874]
  • NEW: Updated predictive load balancing functions to support hardware metrics [ESB3024-887]
  • NEW: Remove apiKey from documentation [ESB3024-927]
  • FIXED: Condition with ‘or’ statement sometimes generate faulty Lua [ESB3024-863]

esb3024-1.8.0

  • NEW: Remove ESB3026 Account Monitor from installer. [ESB3024-354]
  • NEW: Improve selection input endpoint flexibility and security. See API overview documentation for details. [ESB3024-423]
  • NEW: Support anonymous geoip rules [ESB3024-699]
  • NEW: Add ASN IDs list classifiers to confd [ESB3024-778]
  • NEW: Enable content popularity tracking by default. Added option to enable/disable in confd/confcli. [ESB3024-781]
  • NEW: Remove dependency on session from security token verification [ESB3024-809]
  • FIXED: A lot of JSON output on failed routing. HTTP response no longer contains internal routing information. [ESB3024-523]
  • FIXED: Returning Lua table from Lua debug endpoint can crash router. Selection Input values now support floating point values in a Lua context [ESB3024-691]
  • FIXED: Floating point selection inputs are truncated to ints when passed to Lua context [ESB3024-710]
  • FIXED: Race condition between RestApi and Session [ESB3024-753]
  • FIXED: confd/concli doesn’t support “forward_host_header” on hostGroups [ESB3024-761]
  • FIXED: Support Lua vector keys in reverse order [ESB3024-780]

esb3024-1.6.0

  • NEW: Remove the lua_paths array from the config . Lua scripts are now added using a REST API on the /v1/lua/ endpoint. [ESB3024-204]
  • NEW: Separate “account-monitor” from installer [ESB3024-238]
  • NEW: Consistent hashing based routing . Added support for content distribution control for load balancing and cache partitioning [ESB3024-274]
  • NEW: Predictive load balancing . Account for in-transit traffic to prevent cache overload when there is a sudden burst of new sessions. [ESB3024-275]
  • NEW: Support Convoy security tokens [ESB3024-386]
  • NEW: Expose quality, host and session ID in the session object in Lua context [ESB3024-429]
  • NEW: Support upgrade of system python in installer [ESB3024-442]
  • NEW: Do not configure selinux and firewalld in installer [ESB3024-493]
  • NEW: Convoy Distribution/Account integration [ESB3024-503]
  • NEW: Make eDNS server port configurable . The router configuration hosts.proxy_address has been renamed to hosts.proxy_url and now accepts a port that is used when connecting to the proxy. The cdns.http_port and cdns.https_port configurations now configure the port that is used for connecting to the EDNS server, before they configured the port that was used for connecting to the proxy. [ESB3024-509]
  • NEW: Expand node table in Lua context . New fields are: node.id, node.visits, host.id, host.recent_selections [ESB3024-630]
  • FIXED: DNS lookup can fail . DNS lookup can fail when same content requested from both IPv4 and IPv6 clients [ESB3024-427]
  • FIXED: Failed DNS requests are not retried . Fixed bug where failed eDNS requests were not retried [ESB3024-504]
  • FIXED: Lua functions are not updated when uploaded [ESB3024-544]
  • FIXED: Undefined metatable fields evaluate to false rather than nil [ESB3024-642]
  • FIXED: Evaluator::evaluate() doesn’t support different types of its variadic arguments [ESB3024-687]
  • FIXED: Segfault when accessing REST api with empty path [ESB3024-752]
  • FIXED: Container UID/GID may change between versions [ESB3024-755]

esb3024-1.4.0

  • NEW: 1-Page Status Report . Added command ew-sysinfo that can be used on any machine with an ESB3024 installation. The command outputs various information about the system and installed services which can be used for monitoring and diagnostics. [ESB3024-391]
  • NEW: Update routing rule property names . Routing rule property names updated for consistency and clarity [ESB3024-455]
  • FIXED: Deleting confd API array element inside oneOf object fails [ESB3024-355]
  • FIXED: Container logging not captured by systemd until services are restarted [ESB3024-359]
  • FIXED: Alertmanager restricts the configuration to a single file [ESB3024-381]
  • FIXED: Split rules in routing configuration should terminate on error [ESB3024-420]
  • FIXED: Improve alert configuration in Prometheus [ESB3024-422]
  • FIXED: Inconsistent storage paths of service configuration and data [ESB3024-425]
  • FIXED: confd-transformer is not working in el7 [ESB3024-430]

esb3024-1.2.3

  • NEW: Add more classifiers . New classifiers are hostName, contentUrlPath, userAgent, contentUrlQueryParameters [ESB3024-298]
  • NEW: Add allow- and denylist rule blocks [ESB3024-380]
  • NEW: Add enhanced validation of scriptable field in routing rules [ESB3024-393]
  • NEW: Add services to the config tree [ESB3024-410]
  • NEW: Prohibit unknown configuration properties [ESB3024-416]
  • FIXED: Duplicate session group IDs are allowed [ESB3024-49]
  • FIXED: Invalid URL returned for IPv4 requests when using a DNS backend [ESB3024-374]
  • FIXED: Not possible to set log level in eDNS proxy [ESB3024-378]
  • FIXED: Instream selection fails when DASH manifest has template paths using “../” [ESB3024-384]

esb3024-1.2.0

  • NEW: Add meta fields to the configuration . The API now allows the meta data fields “created_at”, “source” and “source_checksum” that can be used for the API consumer to track who did what change when.
  • NEW: Control routing behavior based on backend response code . This gives control over when to return backend response codes to the end user and when to trigger a failover to another CDN or host.
  • NEW: Manage Lua scripts via API
  • NEW: Support popularity-based routing . Content can be ordered in multiple groups with descending popularity. Popularity can also be tracked per session group.
  • NEW: Improved support for IPv6 routing . It is now possible to select backend depending on the IP protocol version.
  • NEW: Add DNS backend support . This allows delegating routing decisions to an EDNS0 server.
  • NEW: Support HMAC with SHA256 in Lua scripts
  • NEW: Add alarm support . The alarms are handled by Prometheus and Alertmanager.
  • NEW: Support saving Grafana Dashboards
  • NEW: Add simplified configuration API and CLI tool . A new configuration API with an easier to use model has been added. The “confcli” tool present in many other Edgeware products is now supported.
  • NEW: Add authentication to the REST API
  • FIXED: Host headers not forwarded to Request Router when ‘redirecting: true’ is enabled
  • FIXED: IP range classifier 0.0.0.0/0 does not work in session groups

esb3024-1.0.0

  • NEW: Flexible routing rule engine with support for Lua plugins. Support many use cases, including CDN Offload and CDN Selection.
  • NEW: Advanced client classification mechanisms for routing based on group memberships (device type, content type, etc).
  • NEW: Geobased routing including dedicated high-performing API for subnet matching, associating an incoming request with a region.
  • NEW: Integration API to feed the service with arbitrary variables to use for routing decisions. Can be used to get streaming bitrate in public CDNs, status from network probes, etc.
  • NEW: Flexible request/response translation manipulation on the client facing interface. Can be used for URL manipulation, encoding/decoding tokens or adapting the interface to e.g. the PowerDNS backend protocol.
  • NEW: Metrics API that can be monitored with standard monitoring software. Out-of-the-box integration with Prometheus and Grafana.
  • NEW: Robust deployment with each service instance running independently, and allowing the service to stay in operational state even when backends become temporarily unavailable.
  • NEW: RHEL 7/8 support.
  • NEW: Online documentation at https://docs.agilecontent.com/