From dc6b8c6b7bc578c16379b0ede20fced066a99e5c Mon Sep 17 00:00:00 2001 From: djmil Date: Mon, 27 May 2024 15:50:58 +0200 Subject: [PATCH] Update Home --- Home.md | 96 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/Home.md b/Home.md index cb47b37..8820504 100644 --- a/Home.md +++ b/Home.md @@ -1,49 +1,49 @@ -# High Level Overview - -This project is focused on exploring Corda Application that will be managing rules of the Checkers game. - -It was decided to keep out of scope all Corda Cluster management tasks. As result, SpringBoot server *(which acts as a intermediary gateway between the world and a CordApp)* will be using solely default `admin` access rights. - -```mermaid -flowchart TD - ReactJS <--> SpringBoot - subgraph midleware - direction LR - SpringBoot -.users.-U[(Hardcoded DB)] - end - SpringBoot -- admin ---> C[(Corda)] - C --- c1([Alice]) - C --- c2([Bob]) - C --- c3{Notary} - C --- c4([Kumar]) - C --- c5([Charlie]) -``` - -Although it is possible to add MDM instance to the game, and enforce `users`, `groups`, `roles` and `permissions`. At the moment, the setup will be using set of default users, provided by CSDE. - -On a front end side, before initiating any interactions, a login credentials has to be provided. The name and a password of a user has to match SpringBoot hardcoded users, which on itself is a representation of set of predefined Corda users, aka `VirtualNode` names from Corda Cluster. Such a scheme, ensures that SpringBoot server will always know on behalf of which identity a given operation shall be performed (despite the fact that in reality it will be executed under `admin` role). - -# Major development milestones - -## Entities - -- [[ReactJs and SpringBoot]] - Classic WebApp with ReactJS frontend and SpringBoot backend. - -- [[CSDE|Corda Standard Dev Environment]] - CSDE will be hosting and enforcing Checkers game logic. - -## Messaging - -- [[Secure REST Client]] - Communication channel between SpringBoot server and CordApp. - -- [[Holding Identity short Hash]] - A CordaCheckers end user shall be able to perform actions (to play the game) on behalf of his representation in Corda Cluster. This means, that SpringBoot middleware shall be able to authenticate REST requests from React app and translate them onto request aimed to concrete virtual node: Alice, Bob, Kumar, Charlie, etc. One way of doing this, is to have hardcoded set of users. But this is *boring*. Instead, SpringBoot middleware is going to dynamically obtain information about available virtual nodes (their `names` and `short hashes`) and dynamically register set of relevant front end users. - -- Sequence diagrams - A high level overview of an execution pass for major actions. - - -# TODOs +# High Level Overview + +This project is focused on exploring Corda Application that will be managing rules of the Checkers game. + +It was decided to keep out of scope all Corda Cluster management tasks. As result, SpringBoot server *(which acts as a intermediary gateway between the world and a CordApp)* will be using solely default `admin` access rights. + +```mermaid +flowchart TD + ReactJS <--> SpringBoot + subgraph midleware + direction LR + SpringBoot -.users.-U[(Hardcoded DB)] + end + SpringBoot -- admin ---> C[(Corda)] + C --- c1([Alice]) + C --- c2([Bob]) + C --- c3{Notary} + C --- c4([Kumar]) + C --- c5([Charlie]) +``` + +Although it is possible to add MDM instance to the game, and enforce `users`, `groups`, `roles` and `permissions`. At the moment, the setup will be using set of default users, provided by CSDE. + +On a front end side, before initiating any interactions, a login credentials has to be provided. The name and a password of a user has to match SpringBoot hardcoded users, which on itself is a representation of set of predefined Corda users, aka `VirtualNode` names from Corda Cluster. Such a scheme, ensures that SpringBoot server will always know on behalf of which identity a given operation shall be performed (despite the fact that in reality it will be executed under `admin` role). + +# Major development milestones + +## Entities + +- [[ReactJs and SpringBoot]] + Classic WebApp with ReactJS frontend and SpringBoot backend. + +- [[Corda Standard Dev Environment|CSDE]] + CSDE will be hosting and enforcing Checkers game logic. + +## Messaging + +- [[Secure REST Client]] + Communication channel between SpringBoot server and CordApp. + +- [[Holding Identity short Hash]] + A CordaCheckers end user shall be able to perform actions (to play the game) on behalf of his representation in Corda Cluster. This means, that SpringBoot middleware shall be able to authenticate REST requests from React app and translate them onto request aimed to concrete virtual node: Alice, Bob, Kumar, Charlie, etc. One way of doing this, is to have hardcoded set of users. But this is *boring*. Instead, SpringBoot middleware is going to dynamically obtain information about available virtual nodes (their `names` and `short hashes`) and dynamically register set of relevant front end users. + +- Sequence diagrams + A high level overview of an execution pass for major actions. + + +# TODOs - Use [jsonschema2pojo](https://github.com/joelittlejohn/jsonschema2pojo/tree/master/jsonschema2pojo-gradle-plugin) to generate POJO objects for SpringBoot server from REST API schemas provided by CSDE \ No newline at end of file