Giter Club home page Giter Club logo

m1st3rnutso / adr-gateway Goto Github PK

View Code? Open in Web Editor NEW

This project forked from regional-australia-bank/adr-gateway

0.0 0.0 0.0 1.34 MB

A proven Data Recipient Gateway (affectionately known as Dr G) that helps you get up and running and interacting with the Australian Consumer Data Right ecosystem today. Dr G enables Data Recipients to quickly deploy their software products and participate in the CDR without needing to develop the complexities of boiler-plate data recipient interactions.

License: MIT License

TypeScript 98.96% JavaScript 0.42% Handlebars 0.62%

adr-gateway's Introduction

Build Status Testing Status Coverage Status MIT License

Introduction

Dr G is being used within the Australian CDR ecosystem today and includes a set of microservices that enable a Data Recipient to interact with the Australian Consumer Data Right ecosystem without needing to develop the complexities of boiler-plate data recipient interactions. Including a mock Register, mock Data Holder and CTS, Dr G has been built with the Twelve-Factor App philosophy in mind, and is expected to be used in a containerised or serverless environment. It can easily be used in a single or multi-application scenario.

Quick starts

Docker (recommended)

npm run build:docker
npm run start:docker

PM2

You must have Node 14. This is historically not considered as robust as the Docker example, which is much closer to a production deployment.

npm i 
npm run start

Exploring with postman

Import the Postman collection into Postman.

Here you can see how the OAuth consent flow works. You can also make calls to all data holder endpoints with mock responses (requests for Accounts and Transactions are provided)

Components

  1. Frontend - provides standards-compliant endpoints for ecosystem interactions, namely JSON Web Key Set End Point and Revocation End Point.
  2. Backend - provides a REST interface for the data sharing consent lifecycle (create, retrieve data, revoke).
  3. Housekeeper - manages registrations with Data Holders, metadata cache, refresh token maintenance (still to be developed), and retrying failed revocation propagation.

A collection of mock/test components are also provided

  1. Mock Register
  2. Mock Data Holder
  3. Compliance test suite - tests a Data Holder and Register against the standard. Coverage is over interactions with the Data Recipeint (e.g. Security Profile and API interactions).

What it does not do

  1. Identity management
  2. Tracking consent for data usage (as opposed to data sharing)
  3. Storage or deletion of data
  4. UI

Testing

Automated testing

Note that it is not needed to start a server before testing (tests create their own execution context).

npm run test

Working in VS Code

Recommended extensions

User/workspace settings

Include the following settings for Mocha Test Explorer. These are already configured in the workspace.

"mochaExplorer.files":"**/*.spec.js",
"mochaExplorer.require": ["source-map-support/register"],

Conformance testing

See Conformance Test Suite.

Licence

Copyright (c) 2020 Regional Australia Bank

MIT License

adr-gateway's People

Contributors

pcurtisrab avatar dependabot[bot] avatar edwardsteven avatar narramadan avatar mathewdbutton avatar michael-rab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.