Skip to content

Feat/byod core - #3

Merged
yash-pouranik merged 4 commits into
mainfrom
feat/byod-core
Jan 5, 2026
Merged

Feat/byod core#3
yash-pouranik merged 4 commits into
mainfrom
feat/byod-core

Conversation

@yash-pouranik

Copy link
Copy Markdown
Member

🚀 PR Description: Core BYOD Support & Smart Connection Management

Summary

Is PR mein BYOD (Bring Your Own Database) ka core logic implement kiya gaya hai. Ab users apne external MongoDB Atlas ya kisi bhi public URI ko connect kar sakte hain. Iske liye ek Smart Connection Manager aur Dynamic Model Injection system banaya gaya hai jo multiple database connections ko efficiently handle karta hai.

Key Changes

1. Smart Connection Manager (utils/connectionManager.js)

  • Connection Registry: Ek global registry banayi gayi hai jo active connections ko cache karti hai taaki har request par naya handshake na ho.
  • Hybrid Support: Agar user ne external DB config nahi di hai, toh yeh automatically default (internal) connection par fallback karta hai.
  • Activity Tracking: lastAccessed timestamp add kiya gaya hai taaki inactive connections ko clean up kiya ja sake.

2. Dynamic Model Injection (utils/injectModel.js)

  • Per-Connection Caching: WeakMap ka use karke connections ke basis par models ko cache kiya gaya hai, jisse different projects ke beech model names conflict nahi karenge.
  • Dynamic Schema Builder: User-defined collections ke liye on-the-fly Mongoose schemas generate karta hai.

3. Refactored Data Controller (controllers/data.controller.js)

  • CRUD Logic: Saare operations (insertData, getAllData, updateSingleData, deleteSingleDoc) ab dynamic models aur connections ka use karte hain.
  • Usage Syncing: Internal projects ke liye real-time databaseUsed calculate aur update hota hai.

4. Security & Fault Tolerance

  • SSRF Protection: updateExternalConfig mein validation lagaya gaya hai jo localhost aur private IP ranges ko block karta hai.
  • Global Error Handling: app.js mein JSON parsing errors aur invalid syntax ke liye specific 400 Bad Request handler add kiya gaya hai.

Technical Details

  • Encryption: External database URIs aur credentials ko AES-256-GCM ka use karke encrypt kiya gaya hai.
  • Performance: Connection reuse aur model caching se overhead minimum rakha gaya hai.

Verification / Testing

  • Internal DB CRUD working.
  • External MongoDB Atlas connection working.
  • Usage limit enforcement for internal projects.
  • Invalid JSON error handling check.

- Add encryption utilities.
- Create basic connection registry.
- Add API to update external config.
- Note: GC and Middleware pending.
Backend:
- Added registry.js for active database connection caching.
- Implemented GC.js to auto-close idle connections (>20m).
- Updated connectionManager to use registry for connection pooling.
- Initialized Garbage Collection in app.js.

Frontend:
- Added ExternalConfigForm in ProjectSettings for BYOD setup.
- Users can now configure/update their own MongoDB and Storage details.
Implemented Bring Your Own Database (BYOD) with dynamic MongoDB connections

Added external DB URI configuration and connection pooling with GC

Introduced backend utilities for connection management and lifecycle control

Refreshed UI with Supabase-inspired Core Black theme across all pages

Added ProjectNavbar and BYOD settings UI

Fixed critical layout and crash issues; standardized global card styles
@vercel

vercel Bot commented Jan 5, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
ur-backend Ready Ready Preview, Comment Jan 5, 2026 11:23am

@yash-pouranik
yash-pouranik merged commit 1b9ec04 into main Jan 5, 2026
2 of 3 checks passed
@yash-pouranik
yash-pouranik deleted the feat/byod-core branch January 7, 2026 18:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant