Skip to content

Commit

Permalink
Feature/dae 2288/add documentation regarding single transfers (#10)
Browse files Browse the repository at this point in the history
* doc: update prowallet reference architecture diagram

* doc: update treasury management reference architecture

* doc: update treasury management reference architecture

* doc: remove GGMT's references from images on authentication and sdk settings procedures

* doc: update docker support diagram to C4 model

---------

Co-authored-by: juandiego <[email protected]>
  • Loading branch information
juan-crisanto-qenta and jd-crisanto authored Jul 8, 2024
1 parent 76aa71e commit 22c214f
Show file tree
Hide file tree
Showing 12 changed files with 117 additions and 161 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions Writerside/topics/Authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,21 @@ To generate an `access token`, you need to log into the [ProWallet](%prowallet_u
<step>
Once your logged into the console. Go to the <code>TOKENS</code> option in <code>Manage</code> menu.

<img src="ProWallet_Manage_Token_Contextual.png" alt="Alt Text"/>
<img src="prowallet_manage_contextual_menu.png" alt="Alt Text"/>

</step>

<step>
In the access token management screen click on <code>GENERATE NEW TOKEN</code> button.

<img src="ProWallet_Manage_AccessToken_Screen.png" alt="Alt Text"/>
<img src="prowallet_access_token_management_screen.png" alt="Alt Text"/>

</step>

<step>
In the form, enter a <strong>token name</strong> and <strong>expiration time</strong>.

<img src="ProWallet_NewAccessToken_Screen.png" alt="Alt Text"/>
<img src="prowallet_new_access_token_screen.png" alt="Alt Text"/>

<warning>
<p>If the expiration time is not set, then the token will expire in 360 days</p>
Expand All @@ -42,7 +42,7 @@ In the form, enter a <strong>token name</strong> and <strong>expiration time</st
<step>
Once the toke is generated, you could copy it and use it for the API calls

<img src="ProWallet_AccessToken_SuccessCreated.png" alt="Alt Text"/>
<img src="prowallet_access_token_success_created.png" alt="Alt Text"/>

</step>

Expand Down
36 changes: 18 additions & 18 deletions Writerside/topics/Docker-Support.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,33 @@ a RESTful API with JSON payloads to use SDK methods using a standard HTTP connec

```plantuml
@startuml
!include <C4/C4_Container>
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
scale max 800 width
title Qenta docker support
footer Qenta ProWallet
package "External System"{
node "VPC" {
node "Non-Java based" {
OutPort -left- [Backend]
}
node "Docker-based environment" {
RestAPI -down- [ProxyServer]
component ProxyServer {
[SDK] #orange
}
skinparam linetype ortho
Boundary(customerSystems, "Customer Systems") {
System_Ext(customerApplication, "Customer Application", "A customer-facing application")
System_Boundary(dockerBased, "Docker-based Runtime") {
Container(qentaSDKServer, "Qenta SDK Server") {
Component(qentaSDK, "Qenta SDK for Java", "Java SDK for Qenta")
}
OutPort .down.> RestAPI : POST \n http://localhost:8080
}
}
package "Qenta" {
HTTP - [Qenta Rest APIs]
[API Gateway] .right.> HTTP
Boundary(qentaSystems, "Qenta Systems") {
Container(apiGateway, "API Gateway", "API Gateway for Qenta")
System(qentaServices, "Qenta Services", "Qenta microservices ecosystem")
}
SDK .right.> [API Gateway]
Rel(customerApplication, qentaSDKServer, "Consumes as HTTP REST API")
Rel(qentaSDK, apiGateway, "Consumes as HTTP REST API")
Rel(apiGateway, qentaServices, "Forwards to")
@enduml
```

## Running the docker image
Expand Down
132 changes: 52 additions & 80 deletions Writerside/topics/Mass-Transfers.md
Original file line number Diff line number Diff line change
@@ -1,117 +1,89 @@
# Mass Transfers


## Reference architecture

```plantuml
@startuml
!include <C4/C4_Container>
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Component.puml
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Container.puml
scale max 870 width
skinparam actorStyle awesome
LAYOUT_WITH_LEGEND()
rectangle "B2C" <<Person>> {
actor "Recipient" as Recipient
}
scale max 850 width
skinparam linetype ortho
title Prowallet container diagram
footer Qenta ProWallet
rectangle "Organization" <<Company>> {
component "System" {
[SDK] #orange
Boundary(customer, "Customer") {
Person(user, "Customer user")
System_Boundary(customerSystem, "Customer System"){
Container(qentaSDK, "Qenta SDK", "Java based SDK")
}
actor "Organization User" as OU
}
rectangle "Qenta ecosystem" {
[Qenta App]
rectangle "ProWallet ecosystem" {
interface "HTTP" as HTTP
HTTP -down- [API Gateway]
rectangle "User interface" {
[ProWallet Console]
}
System_Boundary(qentaEcosystem, "Qenta Ecosystem") {
Container_Boundary(proWalletConsole, "ProWallet user interface") {
Container(proWalletWeb, "ProWallet Web", "Web application")
}
component "Mass transfer engine" as engine {
[Recipients service] #orange
[Batch service] #orange
}
Container(apiGateway, "API Gateway")
Container_Boundary(massiveTransactions, "Massive Transactions API") {
Component(transactionBatches, "Transactions Batchs", "Java")
Component(recipientsManagement, "Recipients", "Java")
}
Container_Boundary(coreService, "Core Microservices"){
Component(jwt, "JWT", "Microservice")
Component(pricing, "Pricing", "Microservice")
Component(registration, "Registration", "Microservice")
Component(payment, "Payment", "Microservice")
Component(comm, "Comm", "Microservice")
Component(pyWallet, "PyWallet", "Microservice")
}
rectangle "Qenta Payments" {
[EMConnect]
[Qenta CEE]
Container_Boundary(qos, "QoS"){
Component(wallets, "Wallets", "Solidity")
Component(contracts, "Contracts", "Solidity")
}
component "Core services" as core {
[Pricing service] #orange
[Notification service]
[Payment service] #orange
[Orders service]
[Transfer service]
}
component "QoS" as BC <<Blockchain>> {
[Wallets]
[Contracts]
Container_Boundary(qentaPayments, "Qenta Payments"){
Component(qentaCEE, "Qenta CEE", "Microservice")
Component(emConnect, "EM Connect", "Microservice")
}
}
rectangle "Global payment paywalls & Banks" {
[PayPal]
[Payoneer]
[Local & Regional Banks]
Boundary(thirdPartyPayWalls, "Global payment paywalls & Banks") {
System_Ext(banks, "Local & Regional Banks")
System_Ext(paypal, "Paypal")
System_Ext(payoneer, "Payoneer")
}
Rel(user, proWalletWeb, "Uses")
Rel(proWalletWeb, apiGateway, "Calls")
Rel(qentaSDK, apiGateway, "Calls")
OU .down.> [ProWallet Console] : Manage recipients \n & batches
Recipient .down.> [Qenta App] : Uses
Rel(apiGateway, massiveTransactions, "Exposes")
[ProWallet Console] .left.> [HTTP] : Use
[SDK] .down.> [HTTP] : Create batch
[API Gateway] .down.> [Batch service] : forward
[API Gateway] .down.> [Recipients service] : forward
[Batch service] .down.> [Pricing service] : Use
[Recipients service] .down.> [Notification service] : Use
Rel(apiGateway, coreService, "Exposes")
[Transfer service] .down.> [Wallets] : Use
Rel(transactionBatches, pricing, "Uses")
Rel(transactionBatches, pyWallet, "Uses")
Rel(recipientsManagement, comm, "Uses")
[Qenta App] .down.> [Payment service] : Pay
Rel(pyWallet, wallets, "Uses")
[Payment service] <.down.> [EMConnect] : Use
Rel(payment, qentaCEE, "Integrates")
[EMConnect] .down.> [Local & Regional Banks] : Integrates
Rel(emConnect, banks, "Integrates")
Rel(emConnect, paypal, "Integrates")
Rel(emConnect, payoneer, "Integrates")
@enduml
```

## Managing Recipients

Before to include a recipient into a payment batch you need to onboard him. The recipient is the person that will receive the payment.

### Onboarding

```plantuml
@startuml
!theme _none_
|Organization|
start
:Onboard recipient;
|Recipient|
if (Already user?) then (yes)
:Notify subscription;
else (no)
:Send invitation;
endif
stop
@enduml
```

6 changes: 3 additions & 3 deletions Writerside/topics/SDK-and-tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ To use the SDK or the Proxy Server you will need to configure them. The configur
<procedure title="Getting SDK configuration">
<step>
Once you logged into the console. Go to the <code>SDK SETTINGS</code> option in the <code>Manage</code> menu.
<img src="ProWallet_ManageMenu_SDKSettings.png" alt="SDK Settings"/>
<img src="prowallet_sdk_settings_contextual_menu.png" alt="SDK Settings"/>
</step>
<step>
In the <code>SDK Settings</code> home screen you wil be able to see the following information:
Expand All @@ -30,14 +30,14 @@ In the <code>SDK Settings</code> home screen you wil be able to see the followin
</li>
</list>

<img src="ProWallet_SDK_Settings.png" alt="SDK Settings home"/>
<img src="prowallet_sdk_settings_screen.png" alt="SDK Settings home"/>

<note>The variable values can be used as environment variables or generate a JSON file by clicking on 'DOWNLOAD JSON' button</note>

</step>
<step>
ProWallet will require you user secret before to allow see or copy the <code>Private key</code> value.
<img src="ProWallet_SDK_Settings_GetPrivateKey.png" alt="Get private key"/>
<img src="prowallet_sdk_settings_get_private_key.png" alt="Get private key"/>
<warning>Private key is used to sign each transaction, avoid to share it</warning>
</step>
</procedure>
Loading

0 comments on commit 22c214f

Please sign in to comment.