All notable changes to urBackend will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.9.0 - 2026-04-09
- Webhook system with BullMQ retry logic for reliable event delivery
- Bring Your Own Key (BYOK) support for transactional mail via Resend
- Follow-up issues from Social Auth PR #81 (social auth edge cases)
v0.8.0 - 2026-04-06
- GitHub and Google OAuth 2.0 social login support
- Secure one-time
rtCodetoken exchange mechanism - Automatic account linking when provider email matches an existing user
- Auto-generated, read-only provider callback URLs in the dashboard
- Encrypted storage for OAuth client secrets
/api/userAuth/social/exchangeendpoint for frontend callback handling- Aria labels for improved accessibility in
CollectionsTable.jsxandDatabaseSidebar.jsx - Working example added at
examples/social-demo/
- Email collision protection — rejects social login if email exists but provider email is unverified
- OAuth error forwarding — provider errors now redirect to frontend with
?error=...
- Site URL must be configured before enabling social auth providers
- API key verification enforced on the
/social/exchangeendpoint
v0.7.0 - 2026-04-04
- Row-Level Security (RLS) read modes:
public-readandprivate - Unique field constraints on collections enforced at the database level
- Backward compatibility for existing
owner-write-onlyRLS rules
- JWT refresh flow now uses rotating sessions
- Documentation updated for new RLS security patterns
- Synchronized monorepo versioning across all core apps
- Duplicate key issues in package manifests
v0.6.0 - 2026-03-31
- AWS S3 storage integration with full region support
- Cloudflare R2 storage integration (S3-compatible)
- Storage Adapter Pattern — consistent
.upload(),.remove(),.list(),.getPublicUrl()API across all providers publicUrlHostfield for mapping custom CDN/CloudFront domains to storage assets- Dynamic Project Settings form that adapts based on the selected storage provider
package-lock.jsonintegrity mismatch causing CI/CD failures- S3 root directory listing bug (trailing slash appended incorrectly)
- UI label typos in Storage Configuration panel
- All external storage credentials encrypted at rest using AES-256-GCM
v0.5.0 - 2026-03-29
POST /api/userAuth/refresh-tokenendpointPOST /api/userAuth/logoutendpoint- Redis-backed refresh session store with fields:
tokenId,projectId,userId,tokenHash,rotatedFrom,rotatedTo,isUsed,revokedAt,expiresAt,lastUsedAt - Refresh token rotation on each successful refresh
- Replay detection and full session-chain revocation on token reuse
- Rate checks for refresh attempts (per IP, token, and user)
- Mobile/non-browser support via
x-refresh-tokenheader - New environment variables:
PUBLIC_AUTH_ACCESS_TOKEN_TTL(default:15m),PUBLIC_AUTH_REFRESH_TOKEN_TTL_SECONDS(default:604800)
tokenretained as backward-compatible alias;accessTokenis now the canonical field- Docs updated:
docs/authentication.md,docs/api-reference.md
v0.4.0 - 2026-03-29
- Row-Level Security (RLS) for collection writes (
owner-write-onlymode) - Publishable key write guardrails —
pk_livewrites now require RLS + user JWT - Automatic owner field injection on document create when owner field is absent
- Protection on
/api/data/users*routes — user management now strictly via/api/userAuth/* - Auth schema validation hardening:
emailandpasswordrequired as string fields
- Owner mismatch blocking for write operations
- Schema key normalization hardening (handles hidden/BOM character edge cases)
- Safer
usersschema sanitation for Mongoose subdocuments
v0.3.0 - 2026-03-22
- NPM Workspaces monorepo structure with
apps/*andpackages/*directories @urbackend/commonshared package — Mongoose models, Express middlewares, Redis queues, DB configsdashboard-api(Control Plane) — dedicated backend for admin dashboard (project creation, API key management, developer auth)public-api(Data Plane) — scalable backend for project data routing, schema validation, and storage- Concurrent dev mode —
npm run devat root starts frontend,dashboard-api, andpublic-apisimultaneously with colored logging - Full Docker Compose setup —
docker-compose upspins up MongoDB, Redis, and both API services - Isolated rate limiting and error handlers for public and admin routes
- Multistage Dockerfiles with proper layer caching
- Legacy monolithic
legacy-backenddeprecated and removed
v0.2.0 - 2026-03-08
- Bring Your Own Database (BYOD) — connect an external MongoDB URI to any project
- Dual API key system:
pk_live_(publishable, frontend-safe) andsk_live_(secret, server-side) - CORS Allowed Domains —
pk_liverequests rejected from un-whitelisted origins - Dynamic Auth setup — Auth activation blocked until a valid
userscollection is defined - Brute-force protection via dedicated
authLimiter; JWT expiry explicitly set to 7 days; OTP attempts capped - Deep schema nesting:
Object,Array, andRef(relational) types supported - Advanced query engine: filter operators (
_gt,_lt,_gte,_lte),sort=field:order, and pagination (page/limit) - Dynamic user forms on Auth page — auto-generates inputs from custom
usersschema - Secure admin controls: send OTPs, reset passwords, manage profiles from the dashboard
docker-compose.ymlfor full local self-hosting
- Double OTP issue during developer signups
- Redis caching bug where raw Mongoose documents corrupted application state
- Analytics visit counter now persists across server restarts via database
- Safe project deletion — external databases and Supabase storage buckets safely ignored during teardown
- Docker containers now run as non-root users
- Internal database and cache ports fully isolated
- IDOR patches — developers can only modify resources they own
v0.1.0 - 2026-01-09
- Instant NoSQL database — create collections and manage JSON data through a visual dashboard, powered by dynamic Mongoose models
- Built-in authentication — signup, login (JWT), and profile management with zero boilerplate
- Integrated cloud storage — file and image uploads via Supabase with public CDN links
- Project dashboard — unified interface to manage multiple projects, define schemas, and monitor data
- Developer analytics — real-time API traffic and usage monitoring via interactive charts
- API key-based access control