*CDR will give consumers greater access to and control over their data and will improve consumers' ability to compare and switch between products and services. It will encourage competition between service providers, leading not only to better prices for customers but also more innovative products and services. CDR will first apply to the banking sector, followed by the *[*energy sector*](https://www.accc.gov.au/focus-areas/consumer-data-right-cdr/energy-cdr)*energy sector**. The telecommunications sector is currently proposed to follow.*
**Data Recipient **is a configured application that is presented in the register metadata. This acknowledges that a single accredited entity may register multiple independent services (or apps) that can obtain authorizations from consumers independently of each other.
**A Session **is defined as the lifespan of a unique Access Token. Multiple API requests made with a single valid Access Token would be considered part of a single Session.
**Customer Present **are authenticated API requests made in direct response to interactions by the end customer using the digital services of the data recipient. Technically, a data holder will define an API request as "Customer Present" if the "x-fapi-customer-ip-address" header is populated with a valid IP address of the end customer's device.
**Customer Not Present **is authenticated API requests that are not deemed to be "Customer Present."
**Unattended **is a synonym of "Customer Not Present."
### Kong Implementation: Kong CDS Traffic Thresholds Plugin
- **Check for the existence of a Customer ID**. If this does not exist, then apply Maximum Public TPS because it's Public Traffic.
- **If a Customer ID exists, check for both Session ID and Data Recipient**. If none exists, then reject the request.
- **Check the request is classified as "Attended."** Distinguishing between the customer (including unattended) vs. public traffic is done by looking for the presence of a "x-fapi-customer-ip-address" header. If present, apply the Maximum Attended Customer TSP limit.
- **If the request is "Unattended,"** check if the request was received during a defined high traffic period, and if not, apply the maximum Unattended Low Session Low TPS limit.
- **For all of the above**, keep track of the number of "Sessions" for Customers and Data Recipients and apply limits.
The following table displays the available plugin schema properties applicable to the CDS Session and rate limits described above:
**Parameter****Description**config.high_traffic_time.finishEnd of high traffic time periodconfig.high_traffic_time.startStart of high traffic time periodconfig.max_attended_customer_tpsIf attended, that is, if http_x_fapi_customer_ip_address and Customer_Id exists in HTTP headers, define max TPSconfig.max_data_recipient_tpsMax TPS for the data recipient, as defined by the Data Recipient HTTP Headerconfig.max_private_tpsMax TPS for private secure traffic, that is, if Customer Id HTTP Header exists or unattended trafficconfig.max_unattended_per_session_lowNumber of sessions allowed per session, per customer id, per data recipientconfig.max_unattended_session_tps_lowIf unattended, that is if http_x_fapi_customer_ip_address does not exist in HTTP headers, set max new sessions outside of high traffic timeconfig.max_unattended_sessions_lowIf unattended, that is if http_x_fapi_customer_ip_address does not exist in HTTP headers, set max new sessions outside of high traffic timeconfig.max_public_tpsIf no Customer Id exists in the request, then apply the Public TPS limit
CDS Traffic Thresholds defines the following limits:
- **Number of sessions per day**-the number of individual sessions initiated on a calendar day.
- **Transactions per second (TPS)**-the number of concurrent transactions each second.
- **Number of calls**-the number of endpoint calls initiated for a specified duration.
Customer present and authorization traffic thresholds:
- Unlimited sessions per day
- 10 TPS per customer
- 50 TPS per data recipient
Unattended traffic thresholds will apply for low traffic periods:
- 20 sessions per day, per customer, per data recipient
- 100 total calls per session
- 5 TPS per session
- 50 TPS per data recipient
For Unattended traffic during high-traffic periods, only best-effort support is required.
Secure traffic (both Customer Present and Unattended) thresholds:
- 300 TPS total across all consumers
Public traffic (i.e., traffic to unauthenticated endpoints) thresholds:
- 300 TPS total across all consumers (additive to secure traffic)
Here's how easy it is to apply the above limits to the plugin:
The CDS has adopted a two-level [versioning](https://consumerdatastandardsaustralia.github.io/standards/#versioning)versioning strategy. The high-level standards, including principles, Uniform Resource Identifier (URI) structure, endpoint versioning, payload naming conventions, etc., can be versioned. Each API endpoint will have an additional version specific to that endpoint. For endpoint versioning, each endpoint will have multiple versions independent of other endpoints. A consumer will request a specific endpoint using an HTTP header:
**x-v (Mandatory)**
- A version of the API endpoint requested by the consumer. Must be set to a positive integer. The holder should respond with the highest supported version between x-min-v and x-v. If the value of x-min-v is equal to or higher than the value of x-v, then the x-min-v header should be treated as absent.
- If all versions requested are not supported, then the holder must respond with a 406 Not Acceptable.
**x-min-v (Optional)**
- Minimum version of the API endpoint requested by the client. Must be set to a positive integer if provided. The holder should respond with the highest supported version between x-min-v and x-v. If the value of x-min-v is equal to or higher than the value of x-v, then the x-min-v header should be treated as absent.
- If all versions requested are not supported, then the holder must respond with a 406 Not Acceptable
### Kong Implementation: Kong CDS Versioning Plugin
The CDS requirement is to support multiple major and minor versions. In facilitate request routing, major (x-v) and minor (x-min-v) version header values will determine the exact application route based on a logic, such as, if x-min-v > x-v is an error case, while invalid x-v and valid x-min-v responds with resource supporting x-min-v. This logic is built into the CDS versioning plugin.
The following table displays the available plugin schema properties applicable to the CDS Versioning requirements described above:
**Parameter****Description**config.versionsAccepts an array of JSON to match version with an upstream name, for example, {“versions”:[{“major”: 1, “minor”: 3, “upstream_name”: “myapi”}
This curl command shows how straightforward it is to configure the plugin:
The specific requirements for Traffic Thresholds and Versioning are complex. Traffic Thresholds, in particular, require two types of limits for request rate limiting, tracking daily sessions and logic for the various request classifications. Using the Kong CDS plugins hides this complexity, and together with Kong Gateway Enterprise's features, provides a real-world solution to the Australian Consumer Data Standards.
Traditional APIs are, in a word, predictable. You know what you're getting: Compute costs that don't surprise you Traffic patterns that behave themselves Clean, well-defined request and response cycles AI APIs, especially anything that runs on LLMs
Unify the API and Eventing Developer Experience with the Kong Event Gateway and API Platform Introduction: The EDA and API worlds are converging . . . finally For the past several years, there have been murmurs of an incoming convergence between API
As of May 2024, Kong Gateway Enterprise 3.3.x.x will enter its End Of Life (EOL) phase and will no longer be a part of the full support cycle. Following this, Kong Gateway Enterprise 3.3.x.x will enter a 12-month sunset support period, exclusively f
We're thrilled to announce the general availability of Kong Gateway Enterprise 3.6. This version brings security, efficiency, and standards conformance to enterprise applications. Plus, Kong AI Gateway , which you can learn more about here . Let’s
As of February 2024, Kong Gateway Enterprise 3.2.x.x will enter its End Of Life (EOL) phase and out of the full support cycle. Following this, Kong Gateway Enterprise 3.2.x.x will enter a 12-month sunset support period, exclusively focused on helpin
Power up application modernization and migration using Kong Gateway Enterprise and Amazon EKS Anywhere Bare Metal One of the most critical requirements for an Application Modernization project is to support workloads running on multiple platforms. I
In this episode of Kongcast , I spoke with Grant McKeen and Jonathan White from IntegrationWorks about how open banking and BIAN (Banking Industry Architecture Network) work with Kong Gateway to create simplicity from complexity in the ba