Small Grant Proposal: renterd alerts bot - EDIT: Python sdk

Introduction

Project Name:
renterd alerts bot and renterd Python sdk

Name of the organization or individual submitting the proposal:

Patrick Gerard

Describe your project.
This project aims to provide a Python sdk to the community to interact with the renterd API in Python to simplify development in the future. Python is one of the most used programming languages and therefor a Python sdk is a must for such project to enable developers.

Furthermore, the Telegram API has great Python sdks which will then be used to build the modular renterd alerts bot. In the future I can imagine building a platform to monitor alerts and other metrics generated by the bot. The project will be delivered as docker-compose environment so it’s simple to use. A documentation on how to use the sdk and the bot will be provided and deployed via

Who benefits from your project?
Renterd user benefit with the alerts bot, which will be introduced with telegram in the first step. With the Python sdk, developers will have an efficient and standarized way to interact with the renterd API. This will onboard and enable other developers especially in the DevOps and SRE space where Python is a well-known language.

How does the project serve the Foundation’s mission of user-owned data?
By providing a self hosted solution with docker-compose.

Grant Specifics
Amount Requested: I am looking for $9000 for the product development and completion of the renterd alerts bot within 3 months.
The funds will enable me to focus on this project and build it in full-time without the need of freelancing somewhere else.
The amount will cover the following:

  • Development: $7,000
    • Python SDK - $4,500
    • Telegram Bot with several modular functions to use - $2,500
  • Operational Expenses: $2,000
    • Documentation and examples - $1,000
    • Testing and examples - $1000

Total = $9,000

  • ** Milestone 1: $3000 - 15 January to 15 February**
  • Development of the Python SDK with rough documentation
  • Testing and bugfixes
  • ** Milestone 1: $3,000 - 15 February to 15 March**
  • Development of the Telegram Bot with rough documentation
  • Testing and bugfixes
  • ** Milestone 1: $3,000 - 15 March to 15 April**
  • Intensive Testing and Bugfixes based on this will probably take 20 days
  • The finalization of the documentation will take 10 days

I agree to accept grant funds in $USD via ACH or Wire, we agree to monthly grant payments starting with Development budget upon approval.

Timeline:
3 months from January 15, 2024, to April 15, 2024.

Potential Risks:

  • The potential risk is an underestimation of the workload and a delay of delivery of the final product

Development Information
Will all of your project’s code be open-source?
Everything will be available on GitHub, fully open-source. If wanted including the progress-reports in a text form highlighting the issues I am facing.

Leave a link where code will be accessible for review.

Links(TBD.)

Do you agree to submit monthly progress reports?

Yes I do. I agree to report the progress here in the forum and if wanted on GitHub.

Contact Info

Other Preferred Contact Methods:

  • Telegram: @gerrelintheberrel

I am happy to discuss and get feedback of you and enable other people to work with renterd! I can already think of further development’s after this project is done, so the development would be very modular in the best case so that a SMS-bot and other solutions could be added easily.

EDIT:

I just saw this:

Anyway, my proposal for the Python sdk stays as this would be the foundation of anything else in the future.

I could think of any other alerting solutions or even building another component to it and extend the current docker version to setup different types of alerts (telegram, SMS, email, Discord).

Thinking long-term, a modular alerting suite would be ideal. To get back to my point, the sdk would be the first step for this.

TBH, I would appreciate someone creating this for Discord.

I will launch a community service by the end of 2024, and I use Discord more than Telegram.

It would be nice for someone to tackle this so I don’t have to try it myself.

I also think you could write a framework with a plugin/driver system for this and work with @mert on that so that it’s an abstract system. I think that would be ideal in the long term, so new means of alerts could work via this.

His bot then could get re-factored to use this framework, either as part of this grant, on his own, or he could ask for a new one.

That’s my 2C.

1 Like

Thanks for your ideas @pcfreak30, open to any improvements over my bot.

Thanks for submitting your proposal to the Sia Foundation Grants Committee. After review, the committee has conditionally approved your grant! The condition is as follows:

  • Removal of Python SDK development
    • Reason: we would prefer to build SDKs in house for better and continued maintenance

Should you agree to this term, please reply with a new message in this thread indicating your acceptance. Thanks!

1 Like

Hi,

Thank you very much for reviewing my proposal and for your feedback.

I agree to the terms you’ve outlined.

In light of this, I will shift my focus towards building a modular alert system. To achieve this, I intend to conduct thorough research to identify the most suitable solution. I’m considering leveraging existing solutions such as a combination of Apache Airflow, Grafana, and Prometheus. Additionally, I’m open to the idea of developing a completely custom solution, though this will depend on the feasibility and effectiveness compared to existing tools.

The final goal is to create a versatile “alerting studio” that can integrate multiple services, with an initial focus on Discord and the existing Telegram solution.

Regarding the budget and milestones, I propose the following revised structure:

Amount Requested: $10,000 for the development and completion of a modular MVP for the renterd alerts bot within a 3-month period. This budget will enable me to dedicate full-time efforts to this project without the need for freelancing.

The breakdown is as follows:

  • Research and Proof of Concepts (PoCs) for a suitable solution using existing Open-Source tools: $2,000
    • Exploring solutions like Grafana, Prometheus, and Airflow to find an optimal approach for the alert system.
  • Development of the MVP: $6,000
    • Creation of a fully functional MVP, with the potential for future enhancements and service integrations under subsequent grants.
  • Operational Expenses: $2,000
    • Documentation: $800
    • Testing and examples: $800
    • Infrastructure costs: $400

Total: $10,000

Milestones:

  • Milestone 1: $3,000 - January 31 to February 29
    • Research and evaluation of the best solution for the system. I plan to seek feedback from the committee and the community, possibly presenting findings in the forum or here.
  • Milestone 2: $6,000 - February 29 to March 29
    • Development of the solution, including documentation, examples, and testing.

I look forward to your thoughts on this revised proposal.

1 Like

Thanks for your updated proposal! The committee appreciates the expanded concept but has some questions they’d like clarified:

  • What specific functionality will be offered with these updates? The Telegram bot expenses from your original proposal totaled $2,500, and with a 4x increase they’d like to see a more detailed breakdown of what the final expected result will be.

  • There are other alert-related grants already approved by the committee. One alert-specific grant here and another dedicated to hostd here. Another isn’t specifically built around alerts, but does contain them as part of development here. What differentiates this grant? Breaking down the expectations of the “alerting studio” that you mention will likely help answer this and the previous question.

  • Finally, your milestones ($9,000 total) don’t add up to your budget request ($10,000 total).

One possible path forward would be turning your first milestone into its own Small Grant request. Please also remember that your original proposal was approved with the removal of the Python SDK, so if you’d like to move forward with that let us know.

Hi @steve,

I’m reaching out to clarify a few points regarding our recent discussions and your response to my proposal.

I’m inclined to accept the updated terms and proceed with my original proposal, minus the Python SDK development. This approach aligns with the feedback you’ve provided.

However, I have a question about the existing Telegram alert system. I’m aware that a similar system has already been developed by someone else. I want to ensure that my efforts are complementary and not redundant.

Once we clarify this aspect, and assuming the project still holds unique value, I plan to move forward as discussed. Additionally, I intend to submit a separate proposal for the modular alert system once this initial project is completed.

Please feel free to reach out to me via E-Mail or Telegram.

Best regards,
Patrick

Hi @steve,

I was in contact with Frances and we’re setting everything up for me to start working on my grant.

However, I would like to finalize the proposal with this posting.
After carefully reviewing everything I came up with the idea, that building a modular alert Bot would make the most sense in my point of view.

I would stick to my original plans as discussed but would extend it with further milestones. To make it clear to the committee, here’s a bit clearer budget allocation:

The 4x comes is created by the fact that the Alerting Suite MVP and other integrations than only Telegram will be built.

  • Research and Proof of Concepts (PoCs) for a suitable solution using existing Open-Source tools: $2,000
    • Exploring solutions like Grafana, Prometheus, and Airflow to find an optimal approach for the alert system.
  • Development: $6,000
    • Alerting suite - $3,500
    • Discord, Telegram, Slack Integration $2,500
  • Operational Expenses: $2,000
    • Documentation: $800
    • Testing and examples: $800
    • Infrastructure costs: $400

Total: $10,000

Milestones:

  • Milestone 1: $3,500 - January 31 to February 29
    • Research and evaluation of the best solution for the system. I plan to seek feedback from the committee and the community, possibly presenting findings in the forum or here.
  • Milestone 2: $6,500 - February 29 to April 29
    • Development of the solution, including documentation, examples, and testing.

What differentiates this grant:

So you can think of some kind of platform which will then make it easy for users to monitor renterd and send alerts to different plugged in services (Discord, Telegram, Slack). Currently I am thinking of using Django for that as it brings a lot of stuff out of the box and can be extended easily. The database will be PostgreSQL as it works pretty good with Django. Everything can be setup via Docker-Compose. Due to the PoCs I am going to do, it might end with an even better solution and everything can be managed with Airflow for example.
As of now tho, this answer can’t be given as I’d need to dive deeper into everything and evaluate then what makes sense to use.

I changed the budget of the milestones from my initial proposal a tiny bit as I see more workload in diving into the other milestones than extending the already telegram integration.

As always, feel free to ask questions here or via E-Mail.
Thanks,
Patrick

Thanks for the info! I want to lay out our timeline briefly here just to avoid any confusion, as we’ve conversed here, Discord, and via email and the committee will need some of that info. This is mostly just to summarize the current situation in the forum for record-keeping, but also to get everyone on the same page.

  • On Jan 12, we conditionally approved this proposal. The condition was removal of the Python SDK, which made it a $4,500 grant as per the budget request at that time
  • On Jan 13, you stated you agreed in a forum response, but then updated the proposal. This required a re-review by the committee because the proposal had been updated.
  • On Jan 25, we posted the committee’s comments on this updated proposal. They did not approve it and had some questions.
  • On Jan 26, we chatted in Discord. You accepted the original proposal, the $4,500 grant for a renterd alert bot and the removal of the Python SDK. Screenshot for reference.

  • We then reached out and began onboarding.
  • After onboarding was started, you have posted the above updated proposal which is very similar to the original one the committee had questions about. I see you’ve added a section about Differentiation and a note addressing the budget increase.
  • The committee must review these updates to your proposal.

Alright, there’s our summary! Just to be clear, any updates made to a proposal must be reviewed by the committee before approval. Despite the fact that we’ve begun onboarding, this grant is paused unless you want to proceed with the initial $4,500 budget approval from Jan 12. Thanks!

1 Like

Thanks for your patience while the committee discussed this proposal.

They’ve decided to only accept their original conditional approval for this grant, and will not be considering other updates to the proposal. Additional work can be submitted as a new grant request upon completion of this grant.

That means you can continue with your original conditional approval from Jan 12(Small Grant Proposal: renterd alerts bot - EDIT: Python sdk), for $4,500 and for which we have already begun onboarding.

This makes your itemized list of approvals the following:

  • Development: $7,000 $2,500
    • Python SDK - $4,500
    • Telegram Bot with several modular functions to use - $2,500
  • Operational Expenses: $2,000
    • Documentation and examples - $1,000
    • Testing and examples - $1000

Let us know if you’d like to proceed, and we’ll finish out the onboarding. Thanks!

Hi steve, alright. Sounds good to me, I was only considering this because it made sense to me.

I am happy to get onboarded!

Best,
Patrick