tekdi / beckn-protocol-server

0 stars 0 forks source link

[DMP 2024]: Multi-tenant (multi NP) support #1

Open suraj-tekdi opened 2 months ago

suraj-tekdi commented 2 months ago

Ticket Contents

Right now the protocol server can be configured with the credentials of a single NP.

We are using the Protocol Server in a SaaS service, and today we have to run separate pairs (one client mode + one network mode) of the protocol server for each NP that we host. We want to be able to run only one pair for all the NPs we host.

Goals & Mid-Point Milestone

[ ] Each NP is served via a different DNS domain / subdomain [ ] There should be a configuration that maps the DNS domains/subdomains to the network configuration (keys, subscriber id, webhook etc) of the NPs [ ] The protocol server should be refactored such that depending on the domain/subdomain the request is coming from, the appropriate configuration should be injected for that request lifecycle

Setup/Installation

https://github.com/beckn/protocol-server/blob/master/Prod-Setup.md

git clone https://github.com/beckn/protocol-server.git cd protocol-server git checkout master cd protocol-server npm i npm run build

Refer the above documentation link to setup bap & bpp

Expected Outcome

Peers should be able to run multiple domain (i.e. learning-experience, financial-support, work-opportunities) from a protocol server setup

Acceptance Criteria

Beckn protocol should support multi tenency. BAP & BPP should work with all the domain of network protocol. config should support multiple BPP's & BAp's configuration at a time

Implementation Details

Modify the coonfig file implementation that can support multiple domain support & can be more configuration bap & bpp network.

Mockups/Wireframes

No response

Product Name

Multi-tenant (multi NP) support inside Beckn Protocol

Organisation Name

Tekdi

Domain

Open Source Library

Tech Skills Needed

DevOps, Docker, Node.js

Mentor(s)

@coolbung @parthlawate @suraj-tekdi

Category

API, Backend, Delpoyment, Performance Improvement, Refactoring

Teak-Rosewood commented 2 months ago

Hello, I am interested in contributing to this issue! Could you help me understand if i have to link my pr to this repository or the repository linked above?

rohitkori commented 2 months ago

Hi @suraj-tekdi , I am interested in this project. I have experience working on various projects and have worked with Node.js, as well as DevOps tools such as Docker and Kubernetes. Additionally, I am one of the coordinators of the open-source community at my college and have worked on open-source projects. Could you please provide me with more details about the project description and approach? I would appreciate your help in gaining further insights.

yuvrajrathva commented 2 months ago

Hi @coolbung, @parthlawate, and @suraj-tekdi, I'm Yuvraj Rathva, a Computer Science and Engineering student from IIT Jodhpur. The Multi-tenant support inside Beckn Protocol project by Tekdi has piqued my interest, and I'm eager to contribute. With expertise in DevOps, Docker, and JavaScript, I believe I can effectively contribute to achieving the project goals.

This project interests me because I have an interest in DevOps and have experience in using AWS, Docker, JS, etc. to develop and deploy the projects and this will definitely help me in working on this project. To know more about my experiences and projects, you can check my Github or Portfolio.

Here's how I can contribute:

I'm excited about the opportunity to contribute to this innovative project and help enable multi-tenant support inside the Beckn Protocol. Looking forward to collaborating with you all!

suraj-tekdi commented 2 months ago

Hey @Teak-Rosewood @rohitkori @yuvrajrathva , Please go through the documentation & setup the project on your machine or any server. There is an api documentation you need to follow & you will get to know about bap & bpp of particular domain. you need to register your network on https://registry.becknprotocol.io/dashboard & you need to add the configuration on bap & bpp config file as well. All these setup works only for single domain. But here we are trying it for the support of multi domain in bap & bpp. Please follow all the documentation & get the understanding of the beckn protocol server.

Cappybara12 commented 2 months ago

Hi @suraj-tekdi , I hope you all are doing well.

I'm Akshay , a CSE student and founder of GEEK ROOM, a dynamic community uniting over 7,000 coding enthusiasts. GEEK ROOM focuses on collaboration and learning, open source and empowering individuals in coding.

In terms of skills: Web Development: Proficient in MERN stack, JavaScript, HTML, CSS, Tailwind CSS, and Bootstrap. Cloud and DevOps: Skilled in AWS, Azure, Docker, Kubernetes, and Terraform, specializing in building scalable cloud solutions and streamlining deployment processes. Commitment to Quality Documentation: Recognizing the importance of thorough documentation, I aim to enhance developer productivity through clear and organized documentation practices. Having hosted multiple documentations under the DevOps realm, I prioritize providing comprehensive resources for efficient project development and management.

I'm eager to contribute to the project Excited about the opportunity to collaborate. I have taken note of your earlier comment and am just working on setting the project

Warm regards, Akshay Kumar Sharma LinkedIn - https://www.linkedin.com/in/akshay-kumar-sharma-37aa55256/ Github- https://github.com/Cappybara12

AbhimanyuSamagra commented 2 months ago

Do not ask process related questions about how to apply and who to contact in the above ticket. The only questions allowed are about technical aspects of the project itself. If you want help with the process, you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

Harine19 commented 2 months ago

Hello @suraj-tekdi, I am in the process of going through the documentation & setting up the project on my machine, I heard of beckn last year at google dev fest and I am very eager to contribute to this project and submit my proposal. In order to contribute do I have to get assigned this ticket? If so, please.

Regards, Harine

Nitish0777 commented 2 months ago

@coolbung @parthlawate @suraj-tekdi I am very eager to contribute in this project And learn new thing from this open-source project.

kartikaysaxena commented 1 month ago

Hey there @suraj-tekdi I am interested in this project and currently drafting a proposal for it, I have setup the protocol-server in the local environment and currently exploring it to know more about it and enhance my proposal.

suraj-tekdi commented 1 month ago

Hey there @suraj-tekdi I am interested in this project and currently drafting a proposal for it, I have setup the protocol-server in the local environment and currently exploring it to know more about it and enhance my proposal.

Hey @kartikaysaxena glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

suraj-tekdi commented 1 month ago

@coolbung @parthlawate @suraj-tekdi I am very eager to contribute in this project And learn new thing from this open-source project.

Hey @Nitish0777 glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

suraj-tekdi commented 1 month ago

Hello @suraj-tekdi, I am in the process of going through the documentation & setting up the project on my machine, I heard of beckn last year at google dev fest and I am very eager to contribute to this project and submit my proposal. In order to contribute do I have to get assigned this ticket? If so, please.

Regards, Harine

Hey @Harine19 glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

suraj-tekdi commented 1 month ago

Hi @suraj-tekdi , I hope you all are doing well.

I'm Akshay , a CSE student and founder of GEEK ROOM, a dynamic community uniting over 7,000 coding enthusiasts. GEEK ROOM focuses on collaboration and learning, open source and empowering individuals in coding.

In terms of skills: Web Development: Proficient in MERN stack, JavaScript, HTML, CSS, Tailwind CSS, and Bootstrap. Cloud and DevOps: Skilled in AWS, Azure, Docker, Kubernetes, and Terraform, specializing in building scalable cloud solutions and streamlining deployment processes. Commitment to Quality Documentation: Recognizing the importance of thorough documentation, I aim to enhance developer productivity through clear and organized documentation practices. Having hosted multiple documentations under the DevOps realm, I prioritize providing comprehensive resources for efficient project development and management.

I'm eager to contribute to the project Excited about the opportunity to collaborate. I have taken note of your earlier comment and am just working on setting the project

Warm regards, Akshay Kumar Sharma LinkedIn - https://www.linkedin.com/in/akshay-kumar-sharma-37aa55256/ Github- https://github.com/Cappybara12

Hey @Cappybara12 glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

suraj-tekdi commented 1 month ago

Hi @coolbung, @parthlawate, and @suraj-tekdi, I'm Yuvraj Rathva, a Computer Science and Engineering student from IIT Jodhpur. The Multi-tenant support inside Beckn Protocol project by Tekdi has piqued my interest, and I'm eager to contribute. With expertise in DevOps, Docker, and JavaScript, I believe I can effectively contribute to achieving the project goals.

This project interests me because I have an interest in DevOps and have experience in using AWS, Docker, JS, etc. to develop and deploy the projects and this will definitely help me in working on this project. To know more about my experiences and projects, you can check my Github or Portfolio.

Here's how I can contribute:

  • By utilizing Node.js, I will use environment variables or a separate configuration file to enable dynamic loading of configurations based on the domain/subdomain, ensuring flexibility and ease of maintenance.
  • I will use Docker to create lightweight containers for each NP domain, which will allow for efficient management and isolation of configurations, ensuring scalability and resource optimization.
  • Utilizing Node.js middleware, I will implement request interceptors to dynamically select and inject the appropriate configuration based on the incoming domain/subdomain, ensuring seamless handling of requests across different NP domains.
  • By thoroughly testing and validating, I will make sure that the Beckn protocol can efficiently handle multi-tenancy. This will enable peers to operate multiple domains from a single Protocol Server setup without any issues.
  • I am dedicated to working closely with the team, adhering to best practices, and improving documentation to guarantee the project's success and longevity.

I'm excited about the opportunity to contribute to this innovative project and help enable multi-tenant support inside the Beckn Protocol. Looking forward to collaborating with you all!

Hey @yuvrajrathva glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

suraj-tekdi commented 1 month ago

Hi @suraj-tekdi , I am interested in this project. I have experience working on various projects and have worked with Node.js, as well as DevOps tools such as Docker and Kubernetes. Additionally, I am one of the coordinators of the open-source community at my college and have worked on open-source projects. Could you please provide me with more details about the project description and approach? I would appreciate your help in gaining further insights.

Hey @rohitkori glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

suraj-tekdi commented 1 month ago

Hello, I am interested in contributing to this issue! Could you help me understand if i have to link my pr to this repository or the repository linked above?

Hey @Teak-Rosewood glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

kartikaysaxena commented 1 month ago

Hey there @suraj-tekdi I am interested in this project and currently drafting a proposal for it, I have setup the protocol-server in the local environment and currently exploring it to know more about it and enhance my proposal.

Hey @kartikaysaxena glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

Just submitted the proposal including the infrastructure in the proposal to get this project done. Would love to work on this if selected!

suraj-tekdi commented 1 month ago

Hey there @suraj-tekdi I am interested in this project and currently drafting a proposal for it, I have setup the protocol-server in the local environment and currently exploring it to know more about it and enhance my proposal.

Hey @kartikaysaxena glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

Just submitted the proposal including the infrastructure in the proposal to get this project done. Would love to work on this if selected!

Hey @kartikaysaxena you need the submit the proposal on unstop. Today is the last date of submission.

suraj-tekdi commented 1 month ago

you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

suraj-tekdi commented 1 month ago

Hey there @suraj-tekdi I am interested in this project and currently drafting a proposal for it, I have setup the protocol-server in the local environment and currently exploring it to know more about it and enhance my proposal.

Hey @kartikaysaxena glad to hear that you are interested in this project. Please submit your proposal on unstop as 15th may is the last date to submit the proposal.

Just submitted the proposal including the infrastructure in the proposal to get this project done. Would love to work on this if selected!

Hey @kartikaysaxena you need the submit the proposal on unstop. Today is the last date of submission.

you can refer instructions listed on Unstop and any further queries can be taken up on our Discord channel titled DMP queries. Here's a Video Tutorial on how to submit a proposal for a project.

kartikaysaxena commented 1 month ago

Yeah, just submitted the proposal on Unstop, looking forward to build it and learn from mentors! @suraj-tekdi