The Data Standards Body (DSB) Engineering team has developed a library of open-source technical artefacts to assist the CDR Community with CDR software development and implementation. The Engineering Team routinely enhances existing tools to align with the latest version of the standards and adds new tools based on the needs of the community.
The following tools are available:
Key Languages/ Technologies
Product Comparator Demo
Product Comparator (demo)
The Product Comparator (demo) is a tool built by the Data Standards Body as a proof-of-concept to showcase the feasibility and value of CDR’s public APIs. It discovers public details of Data Holder Brands from the CDR Register and calls the product reference data (PRD) APIs for viewing and comparing Data Holder products. Scheduled outages and other Data Holder information can also be obtained by calling the Status and Outages APIs.
This tool caters to diverse user groups with varying interests and needs. For example, developers working on integrating CDR APIs into their applications can use this demo as a reference implementation, while Product Owners and Marketers can explore how product information is presented through PRD APIs.
Any requested enhancements, bugs or other issues can be raised on the Product Comparator Demo repository.
Discover the power of Java Artefacts, a tailored reference implementation designed to facilitate the Consumer Data Right (CDR) implementation journey. Its purpose is to aid CDR participants in developing both Data Holder server and client systems. Java Artefacts is a comprehensive toolkit that can be utilised to validate the proper structure of requests made to CDR APIs and to ensure that the responses align with the established Standards.
Components at a Glance:
- Mock Data Holder Server Implementation: Unveil the intricacies of Consumer Data Standards APIs through our meticulously crafted Data Holder server reference implementation. This mock environment allows developers to construct, experiment, and refine mock Data Holder systems while aligning seamlessly with the latest Standards. Explore insights in the Data Holder README.md.
- Mock Data Recipient Client Implementation: This Client library serves as a reference implementation of an Accredited Data Recipient (ADR) that facilitates interaction with Consumer Data Standards APIs implemented by the Mock Data Holder. It contains models, classes and utilities for making API requests, handling responses, authentication, error handling, and more. Comprehensive unit tests are included to validate the robustness of the client library. Learn more about the client library within the Client README.md.
- Client Command Line Interface (CLI): Our Client CLI tool empowers CDR participants to explore and test interactions with the Mock Data Holder systems. There is an array of user-friendly commands that the users can execute on a command prompt, which becomes available upon launching the docker image, to interact with the Mock Data Holder APIs - eliminating the need for coding. These commands can be easily accessed through the readme file or by utilising the help command. Furthermore, this module leverages the models from the Client library, promoting uniform data structures and design methodologies. Discover more about this tool in the Client CLI README.md.
- Validation through Integration Tests: The robustness of the Mock data holder systems is ensured through comprehensive integration that serves as a safeguard. The integration tests uses the client library to interact with the Mock Data Holder APIs. Gain insights into the validation process in the Integration tests README.md.
Any requested enhancements, bugs or other issues can be raised on the Java Artefacts repository.
JSON Schema Files
Discover a comprehensive collection of JSON schema files derived from the official published standards. These schema files hold remarkable utility across various contexts, serving as essential tools for JSON schema validation and providing clear, individual schema definitions whenever needed. Designed to empower diverse use cases, these JSON schema files are instrumental in ensuring the accuracy and integrity of data structures.
One notable application is the integration with the Ajv validator plugin, a crucial element utilised by the Data Standards Body (DSB) for API schema validation within Postman Collections.
Within this repository, users will discover an organised structure, with distinct folders categorised according to the Consumer Data Standards (CDS) release versions. Each directory contains a collection of JSON schema files meticulously extracted from the OpenAPI Swagger (OAS) definitions showcased within the esteemed CDS standards repository.
For example, to explore schema files related to to release version 1.17.0, navigate to the 1.17.0 folder on the repository's root directory.
Any requested enhancements, bugs or other issues can be raised on the DSB Schema Tools repository.
Type Definition Library
The CDS Type Definition Library is an essential open-source project aimed at facilitating seamless integration of Consumer Data standards into TypeScript applications. The project is a fork of the reputable DefinitelyTyped repository and provides an extensive collection of TypeScript declarations that align with the JSON schemas published by the Data Standards Body.
These TypeScript declarations enable TypeScript developers to align their code with the established standards and guidelines. They can be used in any Typescript applications, such as Angular, React TypeScript or NodeJS Typescript. Apart from ensuring the development of type safe code, this library provides the basis for IntelliSense in a number of development IDEs, such as VS Code.
The latest version of the type definition library is accessible through an NPM package on the NPM package registry.
npm install @types/consumer-data-standards
Any requested enhancements, bugs or other issues can be raised on the CDS DefinitelyTyped repository, maintained by the DSB.
JS Holder SDK
This innovative solution aims to streamline compliance with the Consumer Data Standards and empowers developers to maintain compliance effortlessly. Built to alleviate the complexities of adhering to technical requirements set by the Data Standards Body, this package offers a standardised and error-resistant approach. Seamlessly integrating into NodeJS and ExpressJS applications, the package serves as a ready-to-use boilerplate implementation for error handling across a multitude of API endpoints. By automating the generation of error payloads in the prescribed format, complete with designated error codes and specifications, it significantly reduces the risk of coding errors for repeatable actions.
The latest version of the Holder SDK is accessible through an NPM package on the NPM package registry.
npm install @cds-au/holder-sdk
Any requested enhancements, bugs or other issues can be raised on the JS Holder SDK repository.
Test Data Cli
CDR solutions are instrumental in realising the goals of the CDR framework, however the lack of readily available and diverse test datasets within the ecosystem has long been a hurdle for participants, causing a major roadblock to develop and deliver these applications and solutions.
Explore our Test Data Cli tool that addresses this issue head-on, offering a valuable resource to the community. Developed and consistently maintained by the Data Standards Body, this versatile tool showcases its ability to create synthetic datasets effortlessly. The datasets can be tailored to specific requirements using configurable option files. This enables developers to use these tailored datasets for testing, experimentation, or development purposes within their CDR projects.
The tool produces JSON files containing test datasets, making them universally compatible with any project and language. This powerful tool can be seamlessly integrated into any Node.js projects. The latest version of the Test Data Cli is accessible through an NPM package on the NPM package registry.
npm install @cds-au/testdata
Any requested enhancements, bugs or other issues can be raised on the Test Data Cli repository.
CDR Test Documentation
The CDR Test Documentation is a comprehensive resource dedicated to facilitating the testing of Consumer Data Standards APIs. It is specifically designed to assist developers, businesses, and organisations in ensuring compliance with data standards and fostering interoperability within the consumer data ecosystem. This documentation is an invaluable tool for those seeking to implement CDR APIs effectively.
The documentation serves as a foundation for the development of test suites specifically tailored to CDR APIs. It provides a structured framework that enables users to create comprehensive test suites matching their API integration requirements.
The API Test Documentation is logically structured into suites, scenarios, test cases, and assertions. This organisation simplifies navigation and ensures that users can easily locate the relevant information they need to test CDR APIs effectively.
The CDR API Test Documentation focuses on testing scenarios related to CDR APIs. These scenarios cover a wide range of aspects, ensuring that API implementations align with CDS standards and perform as expected in various contexts.
The CDR API Test Documentation, in both JSON and HTML formats, is accessible through the CDS standards-testing repository on GitHub. The individual JSON definitions for API test suites, assertions, and more can be found in the same repository's json-docs directory.
Additionally, the HTML implementation of the CDR API Test Documentation is hosted online and can be accessed here. Users can access it online, making it easy to view, search, and reference the API testing documentation from anywhere.
To further assist users in implementing CDR APIs effectively, the Data Standards Body (DSB) has provided examples and guidance on how to conduct API testing, with a focus on using the Postman tool. These resources complement the documentation and help users validate their CDR API implementations seamlessly.
Any requested enhancements, bugs or other issues can be raised on the Standards-testing repository.
Our Postman Collections are more than just a repository of saved API requests; they can be key to streamlining CDR API testing for the participants. These collections offers valuable documentation and examples, fosters collaboration among developers, aids in compliance, simplifies debugging, supports version control for evolving standards, builds a sense of community support, and ultimately enhances the efficiency of CDR implementation efforts.
Explore these collections in the public Postman workspace DSB-Schema-Tests, where these collections leverage the seamless Postman-to-GitHub integration feature. The relevant Github repository, CDS dsb-postman, is maintained by the Data Standards Body where these collections are available for reference and collaboration.
These collections are versatile tools that empower CDR Participants to validate their CDR API endpoints. To achieve this, they can configure various parameters in a Postman environment file. Data Standards Body has provided the existing environments DSB Banking and DSB Energy as comprehensive guides for configuring the necessary parameters. These environments leverage a cloud-hosted version of our mock data holder, published in the CDS java-artefacts repository.
Our Postman Collections are thoughtfully organised into folders, grouping related API requests together. Within our current workspace, we have organised Postman Collections into three distinct categories: Banking, common, and energy. These folders contain numerous test scenarios and assertions as outlined in the CDR Test Documentation. Each collection serves as a blueprint, demonstrating one possible way to structure a test suite for a data holder. Dive into individual test cases, for instance T.EAR.0002, to see real-world implementations and code examples under the Test tab in Postman. Each test case in the Postman Collection links to the associated CDR Test Documentation scenario.
⚡ If you have any feedback on these tools or questions about them, feel free to contact the team by dropping an email to email@example.com.