Error log level when MMDB CSV file is not configured has been lowered to Info.
Router
Fixed a bug in the Request Router where random was redirected to an unhealthy endpoint.
Headers set for health probes in the Routing Rules are now sent in the same casing as configured.
Include gRPC Health and Routing Health information in router debug and system debug information.
Endpoint added to health probe logging information.
VCLI
vcli file now has -label support.
UI
Fixed an error in Invalidations where you couldn’t add new headers to existing invalidation.
Fixed a bug when having multiple includes with same name when creating/editing VCLGroups.
Fixed a bug involving renaming files in editor.
Version 5.1.1 (2023-02-27)
UI
UI: Fixed a bug where Tokens wouldn’t show in the menu for org-users.
Version 5.1.0 (2023-02-23)
General
All components built with Go 1.20.1
getent used as fallback to get uid/gid for components running as a user/group (to support IDM).
Brainz
Fixes an issue with varnish_stat_id_seq max ID error in the database.
Bug fixes for monitoring of agents during invalidation.
Improvements to deployment of VCLGroups.
UTC used for the database to avoid time zone issues.
Validation added for two or more VCLGroups with same domain cannot use different RoutingRules.
Validation added to verify that healthcheck window-size and threshold must be larger than 0.
Router
Router now reports correct NS records for private routers.
Request logging (to stdout) in the router now logs failed requests as well.
DebugHeader for RoutingRules, to only show debug information if a configured header is present.
X-Routed-For header for routed requests in a shared Varnish instance.
Support for regexp routing decision.
Support for reject decision routes in the router.
Flatbuffer schema for gRPC plugin updated (still backward compatible):
Tags for endpoints (all tags visible for that VCLGroup on the endpoint(agent)).
Custom endpoint includes CNAME, status_code, body and headers.
Endpoints include CNAME.
EndpointRequest includes a reject boolean that tells if the request was for a reject or not.
External routes location template support (for custom location format).
Support for CNAME for external routes.
Support for custom headers in router health checks.
NS records now presents the correct TTL.
Agent
API-GW
Fixes a bug where login via API required content-type application/json.
VCLI
Configuration file for the VCLI now have a stricter permission policy.
Various updates to VCLI help outputs.
UI Server
Add support for Brotli and Gzip asset files to be returned.
Add caching to asset files.
Add support for insecure TLS certs towards the API-GW.
Return the http timeout as a cookie for the controller UI to use as the compile timeout.
UI
Updated Vue to 2.7.
In preparing for Vue 3 upgrade there is now a new chart library (BillboardJS) implemented.
There is now a way to send varnishadm command to varnish servers from the UI.
UI is now using Gzip or Brotli for compression.
UI can now handle larger objects in CIDR/ASN/Geolocation.
Fixed bug in editor related to comments and includes.
Fixed an issue with CSRF token in UI.
Fixed an issue where large VCLs could get a timeout during the compilation stage.
Updated table component features and adding a search feature.
Removed the ability to remove static tags from an agent.
Made improvements to a11y.
Version 5.0.2 (2022-11-08)
General
NATS updated to latest version, v2.9.6.
All components built with Go 1.19.3
Improved logging for NATS connection/disconnection for api-gw/brainz/agent/router.
Router
The router now strips port from requested domain, to allow the router to run on none default ports.
Agent
Improved logging for Varnish-admin interface, logging of connection/disconnection towards Varnish.
API-GW
Fixed a a bug where the /stats/cpu, /stats/mem and /stats/net returned a 500 error.
VCLI
Improved error logging for the VCLI.
Version 5.0.1 (2022-10-25)
General
Dependencies has been upgraded to newer versions.
Brainz
Fixes a bug where brainz could panic during a StatusUpdate from the router.
Fixes a bug where invalidations got stuck when a VCLGroup was removed that had running invalidations.
Fixes a bug where invalidations could get stuck in Retrying state.
Fixes a bug where invalidations in Retrying state could not be deleted.
UI
Fixes a bug where domains always was shown as required when creating/editing a VCLGroup.
Version 5.0.0 (2022-10-18)
General
All components have NATS names with the format <type>-<name if exists(router/agent)>-<hostname>-<pid>.
System debug now collects information from the database in terms of configuration to ease debugging.
Dependencies has been updated to latest versions.
All components built with Go 1.19.2.
Nats-server updated to 2.8.4.
Debug call for agents/routers are now only available for system admin or owner of a router/agent (private).
All timestamps in the database will be in UTC timezone.
All components has been statically built (in previous versions they where dynamically linked)
Brainz
VCLGroup now has a state called DeployState that can take 3 states and the previous Deploy has been removed.
(1) Deployed
(2) Deploying
(3) Undeployed
New UUID format for Trace IDs
Fix for a bug where updating multiple domains on a VCLGroup could make brainz panic.
Improved metrics (CPU/Memory/Network) fetching for agents.
Improved deployment of VCLGroups
Agent
Support for private-token for starting as a private agent.
Support for custom keys for vmod accounting.
Support for multiple IPv4/IPv6 configuration via comma separated strings.
Use VTC to test compile VCLs to find issues earlier than before.
HeaderPlus VMOD is used in the shared root VCL to handle router redirect requests so that
receiving VCL (via label) get the correct Host and URL for the redirected client requests.
Agent now uses its base-dir for temporary directory when testing and compiling VCL files.
Invalidation now supports TLS towards Varnish.
New varnish-invalidation-tls-verify flag for verification of TLS cert in validation.
The flag varnish-invalidation-tls now specifies if varnish is running with TLS or not.
Router
Support for private-token for starting as a private router.
Support for ASN/CIDR/Gelocation routing to tags.
Support for DNS routing with multiple A/AAAA records in responses.
Randomize selection of endpoints for external routes that has the same weight.
API-GW
The /api/v1/vcls endpoints have been removed and replaced with the existing /api/v1/files endpoints.
The /api/v1/agents/1/vclgroups endpoint has been removed, use /api/v1/vclgroups?agents.id=1&vg_states.deployed=true instead.
The /api/v1/tags/1/agents endpoint has been removed, use /api/v1/agents?tags.id=1 instead.
The /api/v1/vclgroups/1/agents endpoint has been removed, use /api/v1/agents?vcl_groups.id=1&vg_states.deployed=true instead.
The operator=and has been removed from the filters, instead of ?tags.id=1,2&operator=and use ?tags.id[all]=1,2.
UptimeSeconds has been added to Router and Agents data structures. Showing seconds since they
were last started.
Added support for an oAuth token request to retrieve access tokens for Prometheus & Grafana, more info here.