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>
58 lines
1.0 KiB
Plaintext
58 lines
1.0 KiB
Plaintext
---
|
|
title: rdev Component Diagram
|
|
---
|
|
flowchart TB
|
|
subgraph Handlers["HTTP Handlers"]
|
|
PH[Projects Handler]
|
|
KH[Keys Handler]
|
|
HH[Health Handler]
|
|
CH[Claude Config Handler]
|
|
end
|
|
|
|
subgraph Middleware
|
|
Auth[Auth Middleware]
|
|
Rate[Rate Limiter]
|
|
Metrics[Metrics]
|
|
end
|
|
|
|
subgraph Services
|
|
PS[Project Service]
|
|
AS[Auth Service]
|
|
end
|
|
|
|
subgraph Ports["Port Interfaces"]
|
|
PR[ProjectRepository]
|
|
EX[CommandExecutor]
|
|
SM[StreamManager]
|
|
end
|
|
|
|
subgraph Adapters
|
|
K8sRepo[K8s Project Repository]
|
|
K8sExec[K8s Executor]
|
|
CachedRepo[Cached Repository]
|
|
PgRepo[Postgres Repository]
|
|
end
|
|
|
|
subgraph Domain
|
|
Models[Domain Models]
|
|
Errors[Domain Errors]
|
|
end
|
|
|
|
%% Connections
|
|
PH --> PS
|
|
KH --> AS
|
|
|
|
Middleware --> Handlers
|
|
|
|
PS --> PR
|
|
PS --> EX
|
|
PS --> SM
|
|
AS --> PgRepo
|
|
|
|
CachedRepo --> K8sRepo
|
|
PR -.-> CachedRepo
|
|
EX -.-> K8sExec
|
|
|
|
Services --> Domain
|
|
Adapters --> Domain
|