Skip to content

v0.2.0 - Production Ready

Choose a tag to compare

@hsperus hsperus released this 06 Apr 17:32
· 11 commits to main since this release

v0.2.0 - Production Ready

Major release focused on production readiness, performance, and reliability.

Pagination

  • All 14 list API endpoints now support page and limit query parameters
  • Limit capped at 100 per request, default 20
  • Standardized response format: { data: [...], pagination: { page, limit, total, totalPages } }

Webhook Reliability

  • Retry logic with exponential backoff (3 attempts: 5s, 30s, 5min)
  • HMAC-SHA256 signatures on payloads via X-Owly-Signature header
  • Delivery tracking — new WebhookDelivery model with full audit trail
  • Dead letter tracking for permanently failed deliveries
  • Delivery API — GET/POST /api/webhooks/[id]/deliveries for history and manual retry

Email Templates

  • Business-branded HTML emails (loads name from Settings)
  • Professional responsive layout with header, body, footer
  • Replaces hardcoded "Owly Support" branding

Docker Hardening

  • Multi-stage build (builder + runner) for smaller image size
  • Non-root user (nextjs:nodejs) for security
  • HEALTHCHECK instruction for container orchestration
  • Resource limits in docker-compose.yml
  • OCI metadata labels

Enhanced Health Check

  • OpenAI API reachability check
  • Memory usage reporting (RSS, heap)
  • Environment and individual service statuses
  • Dynamic version from package.json

Performance

  • Compound database indexes: Conversation(channel, status), Message(conversationId, createdAt)
  • Additional indexes: Conversation.createdAt, Customer.lastContact
  • Export endpoint with configurable limits (max 50K) and date range filters
  • Removed unused socket.io dependencies (~500KB savings)

Testing

  • 208 tests across 19 test files — all passing
  • 31 new tests for pagination, webhook signatures, chat endpoint, export

Full diff

v0.1.1...v0.2.0