Skip to content

NoMongo: Replace Base64 Storage with MinIO Client in AgendaItemsUpdateModal.tsx #3719

Open
@NishantSinghhhhh

Description

@NishantSinghhhhh

Problem
AgendaItemsUpdateModal.tsx currently uses Base64 encoding for storing images, resulting in large payload sizes and inefficient storage.

Solution
Use MinIO client to upload images, storing only the file URL instead of Base64 strings. This will improve performance and reduce bandwidth usage.

Alternatives Considered

  • Local storage (not scalable).
  • AWS S3 (MinIO provides a self-hosted option).

Approach

  1. Remove Base64 encoding and implement MinIO uploads.
  2. Save only MinIO file URLs in the database.
  3. Implement error handling and security measures.

Additional Context
This update will optimize image handling, improving efficiency and scalability.


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 direclty.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions