rdev/CHANGELOG.md
jordan 72d16929ca feat: Implement hexagonal architecture with services, webhooks, queue, and telemetry
Major refactoring to hexagonal (ports & adapters) architecture:

- Add service layer (apikey_service, project_service) for business logic
- Add webhook system with dispatcher and delivery tracking
- Add command queue with priority-based processing
- Add rate limiting with sliding window algorithm
- Add audit logging for command execution
- Add OpenTelemetry integration (traces, metrics, spans)
- Add circuit breaker for fault tolerance
- Add cached repository wrapper for performance
- Add comprehensive validation package
- Add Kubernetes client integration for pod management
- Add database migrations (allowed_ips, audit_log, rate_limiting, queue, webhooks)
- Add network policy and PodDisruptionBudget for k8s
- Remove legacy executor and projects/registry packages
- Untrack secrets.yaml (now managed via envault)
- Add coverage.out to .gitignore
- Add e2e test infrastructure with docker-compose
- Add comprehensive documentation (API, architecture, operations, plans)
- Add golangci-lint config and pre-commit hook

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:57:46 -07:00

1.9 KiB

Changelog

All notable changes to rdev will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0] - 2024-01-25

Added

Core Features

  • REST API for remote development environments
  • SSE streaming for real-time command output
  • Support for Claude, shell, and git commands
  • Project discovery via Kubernetes labels

Security

  • API key authentication with scopes (projects:read, projects:execute, keys:read, keys:write, admin)
  • IP allowlisting for API keys
  • Command sanitization to prevent injection attacks
  • Rate limiting per API key
  • Concurrent command limiting per project

Kubernetes Integration

  • Label-based project discovery (rdev.orchard9.ai/project=true)
  • ConfigMap support for project configuration
  • Pod watch for real-time status updates
  • Service account RBAC with minimal permissions
  • NetworkPolicy for ingress/egress control

Reliability

  • Circuit breaker for Kubernetes API calls
  • Graceful shutdown with 30-second timeout
  • Health checks (liveness and readiness)
  • Response caching with TTL
  • Connection pool tuning

Observability

  • Prometheus metrics endpoint
  • Structured JSON logging
  • Request ID tracking

Documentation

  • Architecture documentation (hexagonal pattern)
  • API documentation with examples
  • Operations documentation with runbooks
  • SSE client examples (JavaScript, Python, Go)

Architecture

  • Hexagonal architecture (ports and adapters)
  • Domain-driven design with clean separation
  • Comprehensive test suite with benchmarks

Dependencies

  • Go 1.22+
  • chi v5 for HTTP routing
  • PostgreSQL for API key storage
  • Kubernetes client-go

[Unreleased]

Planned

  • OpenTelemetry integration (requires OTLP collector)
  • Horizontal Pod Autoscaler support
  • Multi-cluster support