Skip to content

The BYOS Update (Bring Your Own Storage)

Choose a tag to compare

@yash-pouranik yash-pouranik released this 31 Mar 16:16
· 1045 commits to main since this release
34cb901

🚀 The BYOS Update (Bring Your Own Storage)

We are thrilled to announce urBackend v0.6.0! This release marks a significant milestone in our journey to give developers complete control over their infrastructure. Say hello to Bring Your Own Storage (BYOS).

✨ New Features

📦 External Storage Integration (S3 & R2)

You are no longer tied to default storage. You can now connect your own enterprise-grade storage providers directly to your projects.

  • AWS S3 Support: Connect any AWS S3 bucket with full region support.
  • Cloudflare R2 Support: Full compatibility with Cloudflare's S3-compatible R2 storage.
  • Provider-Specific Validation: A new dynamic configuration system that ensures your keys, buckets, and endpoints are correctly set up.

🔌 Storage Adapter Architecture

We've re-engineered our internal storage engine using the Adapter Pattern. This means:

  • Seamlessly switch between Supabase, S3, and R2 without changing a single line of your application logic.
  • Consistent API experience across all providers (.upload(), .remove(), .list(), .getPublicUrl()).

🛠️ Improvements & Refinements

  • Encrypted-at-Rest Configs: All external credentials (Access Keys, Secret Keys) are now fully encrypted using AES-256-GCM before being stored in our database.
  • Smart Cache Invalidation: Updated the storageRegistry to automatically flush and re-initialize storage clients whenever project settings are updated. No more stale connections!
  • CDN Domain Support: Added publicUrlHost field allowing you to map your own Custom Domains or CDNs (CloudFront/Cloudflare) to your storage assets.
  • Enhanced UI Experience:
    • The Project Settings dashboard now features a dynamic form that swaps fields based on the selected provider.
    • Added "Required vs Optional" indicators specifically tailored for S3 vs R2 requirements.
  • S3 Protocol Compatibility: Implemented forcePathStyle: true ensuring 100% compatibility with R2 endpoints and self-hosted S3 solutions like MinIO.

🐛 Bug Fixes

  • Fixed a critical "wanted vs got" integrity mismatch in package-lock.json causing CI/CD failures.
  • Fixed an S3 prefix bug where listing the root directory would incorrectly append a trailing slash.
  • Corrected UI typos in the Storage Configuration labels.

💡 What's next?

With Storage and Databases already customizable, we are looking into expanding our SDK ecosystem. Stay tuned!

Full Changelog: View on GitHub