1. Architecture Overview WiserReview is built on a microservices architecture where each service is independently deployed, scaled, and maintained within its own Docker container. Fault isolation ensures an issue in one service does not cascade to others.
Core Services Service Purpose Hosting Backend API Business logic, authentication, integrations Azure App Services Dashboard Merchant-facing web application (React SPA) Azure App Services Review Display & Notification Service Review rendering, display logic, async job processing, event tracking Azure App Services Widget Service (Pixel JS) Review widget rendering on merchant storefronts Cloudflare CDN Image Processing Media optimization, resizing, cloud storage Azure App Services
Production Domains Domain Service Protection api.wiserreview.com Backend API Cloudflare WAF + TLS rs.wiserreview.com Review Display & Notification Service Cloudflare WAF + TLS embed.wiserreview.com Widget CDN Cloudflare CDN + TLS
2. Network Security PUBLIC EDGE APPLICATION DATA ZONE 1: PUBLIC Internet: Shoppers & Merchants HTTPS requests via browser All traffic filtered before reaching application servers HTTPS / TLS 1.2+ ZONE 2: CLOUDFLARE EDGE ALL external traffic filtered here WAF OWASP Top 10 DDoS L3/L4/L7 Bot Detection + Turnstile TLS 1.2+ Termination CDN 300+ locations TLS 1.2+ ZONE 3: AZURE APP SERVICES Container isolation · Auto-scaling · No SSH access · GitHub Actions deploys only Backend API api.wiserreview.com Docker Display & Notification Svc rs.wiserreview.com Docker Dashboard & Other Services app.wiserreview.com Docker IP Whitelist Only ZONE 4: DATA ZONE No public endpoints, private network only Private MongoDB Atlas IP Whitelisted AES-256 at rest TLS connections only Replica sets with HA Redis Cache Password Auth Only No PII stored Workspace-scoped keys TTL-based expiration Azure Blob / AWS S3 Server-side AES-256 Signed URLs only No public bucket access Media files only All traffic passes through Cloudflare before reaching Azure-hosted services. The data zone has no public endpoints.
2.1 Cloudflare Protection All external traffic routes through Cloudflare before reaching Azure-hosted services:
Web Application Firewall (WAF) : Managed rulesets protecting against OWASP Top 10, SQL injection, XSS, and other common attack vectors DDoS Mitigation : Automatic L3/L4/L7 DDoS protection Bot Management : Intelligent bot detection and challenge mechanisms TLS Termination : TLS 1.2+ enforced on all endpoints; HTTP requests automatically redirected to HTTPS Edge Caching : Static assets cached at 300+ global edge locations 2.2 Network Isolation Database Access : MongoDB Atlas clusters are restricted via IP whitelisting; only Azure App Service IPs are allowed Redis Cache : Password-authenticated connections; no public endpoint exposure Azure Virtual Network : Services communicate over Azure's internal network Container Isolation : Each microservice runs in its own Docker container with process-level and resource-level isolation 2.3 Rate Limiting Endpoint Category Limit Window AI text generation endpoints 20 requests 10 minutes Review submission Rate limited Per IP General API Standard limits Per IP
3. Authentication & Authorization 3.1 API Authentication JWT tokens are required on every API request, signed with a server-side secret key Token signing uses a server-side secret stored in environment variables Tokens have defined expiration policies3.2 Platform Integration OAuth 2.0 authorization code flow for all supported e-commerce platform integrations We only request the minimum API scopes required from each platform Third-party platform passwords are never stored. We only keep OAuth access tokens3.3 Platform Integration Security Session tokens are verified against the app secret on every request All incoming platform event notifications are validated via HMAC signature Embedded app integrations use the platform's native session management3.4 Password Security Passwords are hashed using industry-standard one-way hashing Passwords are never stored in plaintext or any reversible format Sensitive data fields get an additional AES encryption layer before storage3.5 Access Control (RBAC) Three roles per workspace: Admin, Editor, and Viewer Each workspace is logically isolated. Users can only access data within their own workspace Cloudflare Turnstile protects registration and public forms from bot abuse4. Data Encryption 4.1 Encryption in Transit Connection Protocol Browser ↔ Cloudflare TLS 1.2+ (HTTPS enforced)Cloudflare ↔ Azure App Services TLS 1.2+App Services ↔ MongoDB Atlas TLS encrypted connectionsApp Services ↔ Redis Encrypted connections with password authApp Services ↔ Azure Service Bus TLS encryptedEmail delivery (AWS SES) TLS encrypted
4.2 Encryption at Rest Storage Encryption Method MongoDB Atlas AES-256Azure Blob Storage Server-side encryption (AES-256)AWS S3 Server-side encryption (AES-256)Sensitive database fields Application-level AES encryption before storage
5. Database Security 5.1 MongoDB Atlas • Replica sets with automatic failover• Scheduled backups (hourly/daily/weekly/monthly) with point-in-time recovery• Access restricted via IP whitelisting• All data encrypted at rest with AES-256• All app-to-database connections are TLS encrypted5.2 Redis Cache • All connections require password authentication• Used exclusively for transient caching, no PII stored• Cache keys are scoped per workspace• Cached data has TTL-based automatic expiration5.3 File Storage • Azure Blob Storage and AWS S3. All media stored with server-side encryption• File access is via time-limited signed URLs• No public bucket access• Uploaded images are resized and optimized before storage6. Application Security 6.1 Input Validation ObjectID validation using regex patterns for MongoDB document references Content-type validation on incoming webhook payloads File type validation on uploads (MIME type checking)6.2 Security Headers Helmet.js security headers in production environments Content Security Policy (CSP) headers on embedded app integrations Cloudflare adds additional security headers at the edge6.3 Dependency Management Docker multi-stage builds minimize attack surface by excluding dev dependencies Package dependencies pinned to specific versions7. CI/CD & Deployment Security Developer Git push to feature branch GitHub Pull Request Code review · Security checklist · Engineering Lead approval Review required GitHub Actions CI/CD triggered on merge to main Encrypted secrets vault, no credentials in logs Docker Build Multi-stage build · No dev deps · No source maps · No build tools Minimal attack surface Azure Container Registry Authenticated access only · No public pulls · Version history Private registry Staging Deploy Health checks · Smoke tests · Sentry baseline verification Verified before production Production Deploy Azure App Services · Auto-scaling · No SSH access · Health monitored Post-Deploy Monitoring Health endpoints · Sentry error rates · Latency monitoring All systems green Instant rollback to previous image All deployments go through GitHub Actions. Credentials are stored in encrypted secrets and never appear in source code.
GitHub Actions : Automated deployment pipeline with no manual access to production servers Encrypted Secrets : All credentials and API keys stored in GitHub's encrypted secrets vault; never in source code or build logs Container Registry : Docker images stored in Azure Container Registry with authenticated access only Docker Multi-Stage Builds : Production images contain only runtime dependencies; no build tools, source maps, or development packages No SSH Access : Production servers are managed via Azure App Services; no direct SSH access to containers 8. Monitoring & Incident Response 8.1 Monitoring Capability Implementation Error Tracking Real-time error monitoring and alerting via Sentry Application Logging All API requests logged with response time monitoring; abnormal latency (>5s) triggers alerts Error Audit Trail All errors captured with timestamps, context, and stack traces in dedicated log collections Real-Time Alerts Critical production errors trigger immediate Slack notifications Health Checks Dedicated health-check endpoints monitor database and cache connectivity Event Tracking 16+ event types tracked for usage analytics and anomaly detection
8.2 Incident Response Process 1 Detection : Automated monitoring detects anomalies (Sentry, health checks, latency alerts) 2 Triage : Real-time Slack notifications alert the engineering team; severity assessed 3 Containment : Affected service isolated if necessary; traffic can be rerouted via Cloudflare 4 Resolution : Root cause identified and fix deployed via CI/CD pipeline 5 Post-Mortem : Root cause analysis documented; preventive measures implemented 6 Notification : Affected customers notified as appropriate (within 72 hours for data breaches per GDPR) 9. Availability & Disaster Recovery Aspect Details Hosting SLA Azure App Services: 99.95% uptime SLA Auto-Scaling Automatic horizontal scaling under high load (e.g., Black Friday, large campaign sends) Database HA MongoDB Atlas replica sets with automatic failover Global CDN Cloudflare CDN with 300+ edge locations for low-latency widget delivery Queue Resilience Azure Service Bus with automatic retry and dead-letter handling. No messages are lost Disaster Recovery Automated database backups with point-in-time recovery; multi-region capable infrastructure
Contact For infrastructure security inquiries:
Tatvam Cloud Solutions, Inc
[email protected]