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>
44 lines
962 B
YAML
44 lines
962 B
YAML
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_USER: testuser
|
|
POSTGRES_PASSWORD: testpass
|
|
POSTGRES_DB: rdev_test
|
|
ports:
|
|
- "5434:5432"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U testuser -d rdev_test"]
|
|
interval: 2s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
rdev-api:
|
|
build:
|
|
context: ../..
|
|
dockerfile: tests/e2e/Dockerfile
|
|
environment:
|
|
PORT: "8080"
|
|
DB_HOST: postgres
|
|
DB_PORT: "5432"
|
|
DB_USER: testuser
|
|
DB_PASSWORD: testpass
|
|
DB_NAME: rdev_test
|
|
DB_SSL_MODE: disable
|
|
RDEV_ADMIN_KEY: test-admin-key-12345
|
|
K8S_NAMESPACE: rdev-test
|
|
ports:
|
|
- "8080:8080"
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "wget", "-q", "-O-", "http://localhost:8080/health"]
|
|
interval: 2s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
networks:
|
|
default:
|
|
name: rdev-e2e-test
|