Skip to content

NoMongo: Replace Base64 Storage with MinIO Client in CreateGroupChat.tsx #3724

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

Closed
NishantSinghhhhh opened this issue Feb 22, 2025 · 7 comments

Comments

@NishantSinghhhhh
Copy link
Contributor

NishantSinghhhhh commented Feb 22, 2025

Problem
CreateGroupChat.tsx currently stores images and media using Base64 encoding, increasing memory usage and slowing down performance.

Solution
Integrate MinIO client for direct file uploads, storing only file URLs instead of Base64 strings.

Alternatives Considered

  • Keeping Base64 (inefficient for large files).
  • Using third-party cloud storage (MinIO provides a self-hosted alternative).

Approach

  1. Remove Base64 encoding logic.
  2. Implement MinIO file upload for group chat media.
  3. Store and retrieve file URLs efficiently.

Additional Context
This change will improve performance, reduce payload size, and optimize storage.


NOTE

  1. We recently discovered a flaw in the code base where there are some XSS and CORS vulnerabilities. This occurs when the API and Admin servers run on different machines.

  2. You will notice this if you configure your Admin app on your local machine to use the API running on https://test.talawa.io/graphql.

  3. The errors in your browser will look like this:

    Image

  4. As part of this issue you will need to ensure that the browser only interacts with the API through the Admin server and never with the API directly.

@palisadoes palisadoes changed the title Feature Request : Replace Base64 Storage with MinIO Client in CreateGroupChat.tsx NoMongo: Replace Base64 Storage with MinIO Client in CreateGroupChat.tsx Feb 24, 2025
@1709RPS
Copy link

1709RPS commented Feb 24, 2025

@palisadoes Can i be assinged?

@palisadoes
Copy link
Contributor

PTAL at the XSS and CORS vulnerabilities mentioned above that you will need to address as part of this.

@iamanishx
Copy link

@palisadoes
Copy link
Contributor

Unassigning. 2 weeks of inactivity

@palisadoes palisadoes added the good first issue Good for newcomers label Mar 9, 2025
@adithyanotfound
Copy link
Contributor

Please assign

@adithyanotfound
Copy link
Contributor

PTAL https://docs.google.com/document/d/18nFPcaui_jEdYUq_mJ06mcJos7rglwFpG_irggeTj6Y/edit?tab=t.0

Is anyone currently working on this, or should I create a new issue for setting up a centralized MinIO configuration?

@iamanishx
Copy link

PTAL https://docs.google.com/document/d/18nFPcaui_jEdYUq_mJ06mcJos7rglwFpG_irggeTj6Y/edit?tab=t.0

Is anyone currently working on this, or should I create a new issue for setting up a centralized MinIO configuration?

Thanks but All configurations are almost implemented am doing it all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

5 participants