All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
chi
field and the resolver address is in the rhi
field.(DELETE)
(POST)
(GET, POST)
POST
DELETE
POST
GET
GET
GET
GET
(DELETE)
(GET, POST)
POST
(GET)
PUT
totalBytes
property of responses to GET requests to /deliveryservice_stats
to the more appropriate totalKiloBytes
in API 2.xPOST /api/x/serverchecks
Traffic Ops API endpoint in order to reduce audit log spamGET /api/x/jobs
and GET /api/x/jobs/:id
Traffic Ops API routes to allow falling back to Perl via the routing blacklist/jobs
APIs to bring them back to the same level of information provided by TO-PerlmaxRevalDurationDays
validation for POST /api/1.x/user/current/jobs
and added that validation to the /api/x/jobs
endpoints__RANGE_DIRECTIVE__
directive to allow inserting the Range Directive after the Raw Remap text. This allows Raw Remaps which manipulate the Range.db/admin.pl
script has now been removed. Please use the db/admin
binary instead.Traffic Router: TR now generates a self-signed certificate at startup and uses it as the default TLS cert. The default certificate is used whenever a client attempts an SSL handshake for an SNI host which does not match any of the other certificates.
Client Steering Forced Diversity: force Traffic Router to return more unique edge caches in CLIENT_STEERING results instead of the default behavior which can sometimes return a result of multiple targets using the same edge cache. In the case of edge cache failures, this feature will give clients a chance to retry a different edge cache. This can be enabled with the new “client.steering.forced.diversity” Traffic Router profile parameter.
Traffic Ops Golang Endpoints
(GET,POST,PUT)
(GET,POST,PUT)
GET
GET
POST
GET
(GET,POST,DELETE)
GET
GET
GET
GET
GET
POST
GET
POST
GET
GET
GET
PUT
GET
POST
GET
GET
GET
PUT
(GET, POST)
Traffic Router: Added a tunable bounded queue to support DNS request processing.
Traffic Ops API Routing Blacklist: via the routing_blacklist
field in cdn.conf
, enable certain whitelisted Go routes to be handled by Perl instead (via the perl_routes
list) in case a regression is found in the Go handler, and explicitly disable any routes via the disabled_routes
list. Requests to disabled routes are immediately given a 503 response. Both fields are lists of Route IDs, and route information (ID, version, method, path, and whether or not it can bypass to Perl) can be found by running ./traffic_ops_golang --api-routes
. To disable a route or have it bypassed to Perl, find its Route ID using the previous command and put it in the disabled_routes
or perl_routes
list, respectively.
To support reusing a single riak cluster connection, an optional parameter is added to riak.conf: “HealthCheckInterval”. This options takes a ‘Duration’ value (ie: 10s, 5m) which affects how often the riak cluster is health checked. Default is currently set to: “HealthCheckInterval”: “5s”.
Added a new Go db/admin binary to replace the Perl db/admin.pl script which is now deprecated and will be removed in a future release. The new db/admin binary is essentially a drop-in replacement for db/admin.pl since it supports all of the same commands and options; therefore, it should be used in place of db/admin.pl for all the same tasks.
Added an API 1.4 endpoint, /api/1.4/cdns/dnsseckeys/refresh, to perform necessary behavior previously served outside the API under /internal
.
Added the DS Record text to the cdn dnsseckeys endpoint in 1.4.
Added monitoring.json snapshotting. This stores the monitoring json in the same table as the crconfig snapshot. Snapshotting is now required in order to push out monitoring changes.
To traffic_ops_ort.pl added the ability to handle ##OVERRIDE## delivery service ANY_MAP raw remap text to replace and comment out a base delivery service remap rules. THIS IS A TEMPORARY HACK until versioned delivery services are implemented.
Snapshotting the CRConfig now deletes HTTPS certificates in Riak for delivery services which have been deleted in Traffic Ops.
Added a context menu in place of the “Actions” column from the following tables in Traffic Portal: cache group tables, CDN tables, delivery service tables, parameter tables, profile tables, server tables.
Traffic Portal standalone Dockerfile
In Traffic Portal, removes the need to specify line breaks using __RETURN__
in delivery service edge/mid header rewrite rules, regex remap expressions, raw remap text and traffic router additional request/response headers.
In Traffic Portal, provides the ability to clone delivery service assignments from one cache to another cache of the same type. Issue #2963.
Added an API 1.4 endpoint, /api/1.4/server_capabilities, to create, read, and delete server capabilities.
Traffic Ops now allows each delivery service to have a set of query parameter keys to be retained for consistent hash generation by Traffic Router.
In Traffic Portal, delivery service table columns can now be rearranged and their visibility toggled on/off as desired by the user. Hidden table columns are excluded from the table search. These settings are persisted in the browser.
Added an API 1.4 endpoint, /api/1.4/user/login/oauth to handle SSO login using OAuth.
Added /#!/sso page to Traffic Portal to catch redirects back from OAuth provider and POST token into the API.
In Traffic Portal, server table columns can now be rearranged and their visibility toggled on/off as desired by the user. Hidden table columns are excluded from the table search. These settings are persisted in the browser.
Added pagination support to some Traffic Ops endpoints via three new query parameters, limit and offset/page
Traffic Ops now supports a “sortOrder” query parameter on some endpoints to return API responses in descending order
Traffic Ops now uses a consistent format for audit logs across all Go endpoints
Added cache-side config generator, atstccfg, installed with ORT. Includes all configs. Includes a plugin system.
Fixed ATS config generation to omit regex remap, header rewrite, URL Sig, and URI Signing files for delivery services not assigned to that server.
In Traffic Portal, all tables now include a ‘CSV’ link to enable the export of table data in CSV format.
Pylint configuration now enforced (present in a file in the Python client directory)
Added an optional SMTP server configuration to the TO configuration file, api now has unused abilitiy to send emails
Traffic Monitor now has “gbps” calculated stat, allowing operators to monitor bandwidth in Gbps.
Added an API 1.4 endpoint, /api/1.4/deliveryservices_required_capabilities, to create, read, and delete associations between a delivery service and a required capability.
Added ATS config generation omitting parents without Delivery Service Required Capabilities.
In Traffic Portal, added the ability to create, view and delete server capabilities and associate those server capabilities with servers and delivery services. See blueprint
Added validation to prevent assigning servers to delivery services without required capabilities.
Added deep coverage zone routing percentage to the Traffic Portal dashboard.
Added a traffic_ops/app/bin/osversions-convert.pl
script to convert the osversions.cfg
file from Perl to JSON as part of the /osversions
endpoint rewrite.
Added [Experimental] - Emulated Vault suppling a HTTP server mimicking RIAK behavior for usage as traffic-control vault.
Added Traffic Ops Client function that returns a Delivery Service Nullable Response when requesting for a Delivery Service by XMLID
Expires
cookie header was not being set properly in responses. Also, added the Max-Age
cookie header in responses.null
value for that fieldREFUSED
DNS answers if the zone priming execution did not complete within the configured zonemanager.init.timeout
period.rhi
. This defaults to ‘-’ and is only used when EDNS0 client subnet extensions are enabled and a client subnet is present in the request. When enabled and a subnet is present, the subnet appears in the chi
field and the resolver address is in the rhi
field.POST
(GET,POST,PUT)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
GET
GET
POST
GET
org_server_fqdn
column in the deliveryservice
table has been removed. The org_server_fqdn
data is now computed from the Delivery Service's primary origin (note: the name of the primary origin is the xml_id
of its delivery service).latitude
and longitude
columns in the cachegroup
table have been replaced with coordinate
(a foreign key to Coordinate). Coordinates created from Cachegroups are given the name from_cachegroup_\<cachegroup name\>
.CLIENT_STEERING
delivery services: STEERING_GEO_ORDER
and STEERING_GEO_WEIGHT
. When targets of these types have an Origin with a Coordinate, Traffic Router will order and prioritize them based upon the shortest total distance from client -> edge -> origin. Co-located targets are grouped together and can be weighted or ordered within the same location using STEERING_GEO_WEIGHT
or STEERING_GEO_ORDER
, respectively.use_tenancy
global parameter and will allow for code to be simplified as a result. If all user and delivery services reference the root tenant, then there will be no difference from having use_tenancy
set to 0.localizationMethods
field which specifies the localization methods allowed for that cachegroup (currently ‘DEEP_CZ’, ‘CZ’, and ‘GEO’). By default if this field is null/empty, all localization methods are enabled. After Traffic Router has localized a client, it will only route that client to cachegroups that have enabled the localization method used. For example, this can be used to prevent GEO-localized traffic (i.e. most likely from off-net/internet clients) to cachegroups that aren't optimal for internet traffic.traffic_monitor_java
infrastructure/cdn-in-a-box
for Apachecon 2018 demonstration(GET)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
(GET)
(GET)
(GET)
(GET)
(GET)
(GET)
(GET)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
(GET)
(POST)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
(GET)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
(GET,POST,PUT,DELETE)
(GET)
(GET)
(GET)
(GET)
(GET,POST,PUT,DELETE)
(GET)
(GET,POST,PUT,DELETE)