Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Requirements for Building Beckn Gateway #221

Open
16 tasks
viraj89 opened this issue Sep 12, 2024 · 0 comments
Open
16 tasks

Requirements for Building Beckn Gateway #221

viraj89 opened this issue Sep 12, 2024 · 0 comments
Labels
beckn onix beckn onix project enhancement New feature or request

Comments

@viraj89
Copy link

viraj89 commented Sep 12, 2024

Description

Common Requirements:

Authentication - Key Verification:
In addition to the Authentication-Key-Pair general requirement for all modes, an on_subscribe endpoint must be made available for the registry to verify the public-key set there.

Authentication - Signing:
When the software in Gateway mode receives messages from the BAP to forward to the BPP, it must add its own signature and fill the X-Gateway-Authorization header. The process of hashing, signing, and the format of the header is documented.

Listening to Search Requests (Transaction API):
The software in Gateway mode must expose the search endpoint at its Subscriber URL. The format of the message it receives is described.

Forwarding Search (Transaction API):
When the Gateway receives a search request from the BAP, it must:

  • Use the lookup API of the Registry to fetch the BPPs that cater to the context of the received message.
  • Forward the search request (after signing) to the list of BPPs returned by the Registry.

Caching (Transaction API):
The software in Gateway mode should implement short-term caching to reduce the load on the Registry lookup.

UI & Backend Requirements:
The UI for the Gateway Mode should utilize the existing Gateway available at:
https://gateway.becknprotocol.io/login
For the backend, Strapi should be used. The Gateway itself should be developed as a Strapi Plugin that supports CRUD operations.

Goals

  • Apply all common requirements from “Requirements for all modes” to Gateway mode.
  • Implement the on_subscribe endpoint for key verification with the registry.
  • Implement signing of messages forwarded from the BAP to the BPP with the X-Gateway-Authorization header.
  • Expose the search endpoint at the Subscriber URL in Gateway mode.
  • Implement logic to forward search requests using the Registry lookup API and sign the request.
  • Implement short-term caching for Registry lookup.
  • Utilize the existing UI from the Beckn Gateway (https://gateway.becknprotocol.io/login).
  • Use Strapi for the backend and develop the Gateway as a Strapi Plugin supporting CRUD operations.

Expected Outcome

  • A fully functional Gateway mode that handles authentication, signing, message forwarding, and caching.
  • Compliance with the Beckn Protocol for key verification, signing, and API forwarding.
  • Efficient use of Registry lookups through caching.
  • Frontend integrates with the existing UI from the Beckn Gateway.
  • Backend is developed using Strapi and the Gateway functions as a Strapi Plugin with full CRUD support.

Acceptance Criteria

  • All common requirements are applied to Gateway mode.
  • The on_subscribe endpoint for key verification with the registry is functional.
  • Messages forwarded from the BAP to the BPP are signed correctly with the X-Gateway-Authorization header.
  • The search endpoint is exposed at the Subscriber URL.
  • Search requests are forwarded using the Registry lookup API and signed appropriately.
  • Short-term caching for Registry lookup is implemented.
  • UI is integrated with the existing Beckn Gateway (https://gateway.becknprotocol.io/login).
  • Strapi is used for the backend, and the Gateway is built as a Strapi Plugin supporting CRUD operations.

Mockups / Wireframes

NA

Product Name

Beckn

Domain

Beckn ONIX

Tech Skills Needed

  • JavaScript/TypeScript/Node JS
  • Beckn Protocol
  • API Development
  • Strapi (backend development)
  • Authentication & Key Management
  • Message Signing and Forwarding
  • Caching Techniques

Complexity

Medium

Category

API Development

Sub Category

Gateway Mode

@viraj89 viraj89 transferred this issue from beckn/missions Sep 12, 2024
@viraj89 viraj89 added beckn onix beckn onix project enhancement New feature or request labels Sep 12, 2024
@viraj89 viraj89 changed the title Building Beckn Gateway Requirements for Building Beckn Gateway Sep 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beckn onix beckn onix project enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant