From c68bb703aab695461125bfcecd814406e06fb171 Mon Sep 17 00:00:00 2001 From: Venkatesh Babu Date: Thu, 2 May 2024 16:11:34 +0530 Subject: [PATCH] Fixes #62 Add BAP and BPP to documentation --- docs/images/request_flow.png | Bin 0 -> 42163 bytes docs/sample_nginx_configurations.md | 22 +++++----- docs/user_guide.md | 65 ++++++++++++++++++++++++++-- 3 files changed, 73 insertions(+), 14 deletions(-) create mode 100644 docs/images/request_flow.png diff --git a/docs/images/request_flow.png b/docs/images/request_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..08f4e7f247e110f03dd416cd5f847e37fe9647f8 GIT binary patch literal 42163 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

ON7GB|@^0+wZYoRey}Ni8FP@GjyeE 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 literal 0 HcmV?d00001 diff --git a/docs/sample_nginx_configurations.md b/docs/sample_nginx_configurations.md index e69301b..66fc99f 100644 --- a/docs/sample_nginx_configurations.md +++ b/docs/sample_nginx_configurations.md @@ -356,21 +356,21 @@ server { listen 80; listen [::]:80; # Put the server name as website name . - server_name onix-bap.becknprotocol.io; + server_name onix-bpp-client.becknprotocol.io; location / { # This for Host, Client and Forwarded For - #proxy_set_header Host $http_host; + proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # For Web Sockets. - proxy_http_version 1.1; + #proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # For Proxy. - proxy_pass "http://localhost:5002"; + proxy_pass "http://localhost:6001"; } } @@ -379,33 +379,33 @@ server { listen [::]:443 ssl http2; # Put the server name as website name . - server_name onix-bap.becknprotocol.io; + server_name onix-bpp-client.becknprotocol.io; # Point it to the port in which you want to run the server http://localhost:. location / { # This for Host, Client and Forwarded For - #proxy_set_header Host $http_host; + proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # For Web Sockets. - proxy_http_version 1.1; + #proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # For Proxy. - proxy_pass "http://localhost:5002"; + proxy_pass "http://localhost:6001"; } # This is the path to certificate. /etc/letsencrypt/live//fullchain.pem - ssl_certificate /etc/letsencrypt/live/onix-bap.becknprotocol.io/fullchain.pem; + ssl_certificate /etc/letsencrypt/live/onix-bpp-client.becknprotocol.io/fullchain.pem; # This is the path to certificate. /etc/letsencrypt/live//privkey.pem - ssl_certificate_key /etc/letsencrypt/live/onix-bap.becknprotocol.io/privkey.pem; + ssl_certificate_key /etc/letsencrypt/live/onix-bpp-client.becknprotocol.io/privkey.pem; - ssl_session_timeout 1d; + ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; # about 40000 sessions ssl_session_tickets off; diff --git a/docs/user_guide.md b/docs/user_guide.md index 7135c27..227bb05 100644 --- a/docs/user_guide.md +++ b/docs/user_guide.md @@ -12,6 +12,8 @@ - [Setting up a BPP Beckn Adapter](#setting-up-a-bpp-beckn-adapter) - [Downloading Layer 2 Configuration for a domain](#downloading-layer-2-configuration-for-a-domain) - [Testing transactions on the network](#testing-transactions-on-the-new-network) + - [Connecting BAP Beckn Adapter to BAP Software](#connecting-bap-beckn-adapter-to-bapbuyer-side-software) + - [Connecting BPP Beckn Adapter to BPP Software](#connecting-bpp-beckn-adapter-to-bppseller-side-software) - [Running Beckn-ONIX locally](#running-beckn-onix-locally) - [Appendix A - subdomain/domain name configuration](#appendix-a---registering-or-adding-domain-or-subdomains) - [Appendix B - Nginx reverse proxy configuration](#appendix-b---nginx-reverse-proxy-configuration) @@ -121,11 +123,11 @@ The BPP (Beckn Provider Platform) is the bridge between the seller side applicat - Address of the registry's subscription endpoint of the network the BPP will join (e.g. https://onix-registry.becknprotocol.io/subscribers) - A domain or subdomain where the client endpoint of BPP will be accessible (e.g https://onix-bpp-client.becknprotocol.io) -- A domain or subdomain where the network endpoint of BPP will be accessible (e.g. https://onix-bap.becknprtocol.io) +- A domain or subdomain where the network endpoint of BPP will be accessible (e.g. https://onix-bpp.becknprtocol.io) - A virtual server with both the above mentioned domains/subdomains pointing to it. Refer [Appendix A](#appendix-a---registering-or-adding-domain-or-subdomains) for details - SSL certificate for the two endpoints and configured in Nginx. Refer [Appendix B](#ssl-certificates-configured-in-reverse-proxy) -- Reverse proxy configured to route the traffic at the bap client url (e.g. https://onix-bap-client.becknprotocol.io) to port 5001. Refer [Appendix B](#configuring-nginx-reverse-proxy-using-proxy-pass) -- Reverse proxy configured to route the traffic at the bap network url (e.g. https://onix-bap.becknprotocol.io) to port 5002. Refer [Appendix B](#configuring-nginx-reverse-proxy-using-proxy-pass) +- Reverse proxy configured to route the traffic at the bap client url (e.g. https://onix-bpp-client.becknprotocol.io) to port 6001. Refer [Appendix B](#configuring-nginx-reverse-proxy-using-proxy-pass) +- Reverse proxy configured to route the traffic at the bap network url (e.g. https://onix-bpp.becknprotocol.io) to port 6002. Refer [Appendix B](#configuring-nginx-reverse-proxy-using-proxy-pass) **Installation Steps** @@ -172,6 +174,63 @@ Currently the layer-2 config are per domain, though this might change with futur - We can use postman collection for the specific domain to test end to end communication on the domain. Some sample postman collections for testing are [present here](https://github.com/beckn/beckn-sandbox/tree/main/artefacts) - When running postman collection from the buyer side, the base url to which the requests are sent should be the client side endpoint of the BAP Beckn Adapter instance. (e.g https://onix-bap-client.becknprotocol.io) +### Connecting BAP Beckn Adapter to BAP(buyer side) software + +Currently Beckn ONIX only installs the reference BAP Adapter on the BAP machine. It does not install any reference buyer side software. However in real-world, buyer side BAP software will interact with this BAP Adapter to perform Beckn transactions. This section provides guidance on how to integrate the two. The following diagram shows the message flow from BAP all the way through to the BPP and back. + +![Request and response flow with BAP and BPP illustrated](./images/request_flow.png) + +The BAP software will typically be a Backend server that provides buying side functionality to users. It takes care of functionalities such as user authentication, profile management, Order flow, Order history and other functionalities common in a commerce application. Many of these functionalities are outside of Beckn scope. The Order flow is primarily where the software will use the BAP Beckn Adapter to communicate to the Beckn network. Typically the order flow within Beckn has four stages (Discovery, Order, Fulfillment and Post Fulfillment). Please refer to this [document](https://developers.becknprotocol.io/docs/introduction/beckn-protocol-specification/) for details on how the individual Beckn requests (currently ten) map to these. + +Taking an example of a user searching for an item, the user will typically enter his search request (say Arabica Coffee Powder) into the UI which will be conveyed to the BAP Backend server. The BAP backend server will call the BAP-Client endpoint with a Search request. This endpoint in the running example will be https://onix-bap-client.becknprotocol.io/search This endpoint as mentioned in the [Setting up a BAP Beckn Adapter](#setting-up-a-bap-beckn-adapter) should be configured to point to the BAP Beckn Adapter Client softare running at a port (default 5001) through Nginx configuration. The format of the message to be sent is explained in the [core specification](https://github.com/beckn/protocol-specifications/blob/master/api/transaction/build/transaction.yaml). An example is below + +``` +{ + "context": { + "domain": "retail", + "location": { + "country": { + "code": "IND" + }, + "city": { + "code": "std:080" + } + }, + "action": "search", + "version": "1.1.0", + "bap_id": "onix-bap.becknprotocol.io", + "bap_uri": "https://onix-bap.becknprotocol.io", + "transaction_id": "{{$randomUUID}}", + "message_id": "{{$randomUUID}}", + "timestamp": "{{$timestamp}}" + }, + "message": { + "intent": { + "item": { + "descriptor": { + "name": "Arabica Coffee Powder" + } + } + } + } +} +``` + +The reference implentation of the BAP Beckn Adapter will forward this to the Beckn network and return back with matching search results from different providers for the retail domain in the network. By default this happens in a synchronous manner, though it can be configured in the BAP Beckn Adapter Client Configuration (Refer to the "Protocol Server BAP Client Setup section" of this [document](https://github.com/beckn/protocol-server/blob/master/setup.md#protocol-server-bap-client-setup)) Refer to the [core protocol specification](https://github.com/beckn/protocol-specifications/blob/master/api/transaction/build/transaction.yaml) for the various other request and response formats for the rest of the order flow requests. + +### Connecting BPP Beckn Adapter to BPP(Seller side) software + +Currently Beckn-ONIX only installs the BPP Beckn Adapter reference implementation on the BPP machine. It does not install a reference implemenation of a market-place or BPP. Typically in real-world there is a backend server that provides seller functionality that talks to the BPP Beckn Adapter. This section describes how the interaction between BPP Beckn Adapter and such a server should occur. Refer to the image in the previous [section](#connecting-bap-beckn-adapter-to-bapbuyer-side-software) for an illustration of BAP and BPP integration along with message flow. + +The BPP software or market-place typically provides functionalities such as Login for shop owners, ability to manage inventory, list products, add product details, take an order, mark fulfillment of orders and aggregate post fulfillment feedback etc. While many of these functionalities are outside of the Beckn protocol, the BPP software will interact with the BPP Beckn Adapter for the order flow. The order flow typically involves Discovery, Order, Fulfillment and Post fulfillment phases and is explained in the context of Beckn [here](https://developers.becknprotocol.io/docs/introduction/beckn-protocol-specification/). The [core protocol specification](https://github.com/beckn/protocol-specifications/blob/master/api/transaction/build/transaction.yaml) explains the format of the various (currently ten) messages that need to flow between the BAP and BPP during the transaction. + +The communication between the BPP Beckn Adapter and the BPP software is asynchronous by default. [This document](https://github.com/beckn/protocol-specifications/blob/master/docs/BECKN-003-Beckn-Protocol-Communication-Draft-01.md) explains how the communication happens. In order to connect any BPP software with the BPP Beckn Adapter, we need to do two things. + +1. Configure the webhook address on the BPP Beckn Adapter to a endpoint in the BPP software. This endpoint will receive all the Beckn messages. The BPP software should identify the message through the action attribute in the context field of the request. Refer to the [Protocol Server BPP Client Setup](https://github.com/beckn/protocol-server/blob/master/setup.md#protocol-server-bpp-client-setup) section - webhook configuration for details. +2. Once the BPP software is ready with a response (say the item results for the search query), it has to call the BPP Beckn Adapter Client endpoint. In the example, that would be https://onix-bpp-client.becknprotocol.io. + +Refer to the [core specification](https://github.com/beckn/protocol-specifications/blob/master/api/transaction/build/transaction.yaml) for details on the format of other responses (on_search, on_select, on_init etc) to complete the order flow. + ## Running Beckn-ONIX locally - In order for people new to Beckn who want to try out Beckn on their own machine, a simple one click installer has been written. Currently it can be installed by running the `start_beckn.sh` script present in the installfolder. In the next release, this will be integrated with the main script and the `start_beckn.sh` script deprecated. An all in one installation has preconfigured values for variables and so pretty much does not ask for any input.