No description
Find a file
Stephan Lo 8e2e61d61e feat: implement dependency injection with proper hexagonal architecture
 Features:
- Simple dependency inversion following SOLID principles
- Clean constructor injection without complex DI containers
- Proper hexagonal architecture with driving/driven separation
- Presentation layer moved to cmd/cli for correct application structure

🏗️ Architecture Changes:
- Driving Adapters (Inbound): internal/adapters/driving/cli/
- Driven Adapters (Outbound): internal/adapters/driven/edgeconnect/
- Core Services: Dependency-injected via interface parameters
- main.go relocated from root to cmd/cli/main.go

📦 Application Flow:
1. cmd/cli/main.go - Entry point and dependency wiring
   └── Creates EdgeConnect client based on environment
   └── Instantiates services with injected repositories
   └── Executes CLI with properly wired dependencies

2. internal/adapters/driving/cli/ - User interface layer
   └── Receives user commands and input validation
   └── Delegates to core services via driving ports
   └── Handles presentation logic and output formatting

3. internal/core/services/ - Business logic layer
   └── NewAppService(appRepo, instanceRepo) - Constructor injection
   └── NewAppInstanceService(instanceRepo) - Interface dependencies
   └── NewCloudletService(cloudletRepo) - Clean separation

4. internal/adapters/driven/edgeconnect/ - Infrastructure layer
   └── Implements repository interfaces for external API
   └── Handles HTTP communication and data persistence
   └── Provides concrete implementations of driven ports

🔧 Build & Deployment:
- CLI Binary: make build → bin/edge-connect-cli
- Usage: ./bin/edge-connect-cli --help
- Tests: make test (all passing)
- Clean: make clean (updated paths)

💡 Benefits:
- Simple and maintainable dependency management
- Testable architecture with clear boundaries
- SOLID principles compliance without overengineering
- Proper separation of concerns in hexagonal structure
2025-10-08 18:15:26 +02:00
.claude feat(apply): Implement EdgeConnect configuration parsing foundation 2025-09-29 16:18:35 +02:00
.github/workflows ci: Added test workflow running on each push except tags 2025-10-07 16:10:02 +02:00
api feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
cmd/cli feat: implement dependency injection with proper hexagonal architecture 2025-10-08 18:15:26 +02:00
internal feat: implement dependency injection with proper hexagonal architecture 2025-10-08 18:15:26 +02:00
sdk feat: implement dependency injection with proper hexagonal architecture 2025-10-08 18:15:26 +02:00
.envrc.example chore: Added flake 2025-10-07 14:37:54 +02:00
.gitignore chore: Added flake 2025-10-07 14:37:54 +02:00
.goreleaser.yaml fix(cli): Force usage of gitea token 2025-10-02 13:44:28 +02:00
apply-todo.md feat(apply): Implement CLI command with comprehensive deployment workflow 2025-09-29 17:24:59 +02:00
apply.md chore(cli): Removed appName from config schema. This is redundant to metadata name 2025-09-30 11:33:52 +02:00
config.yaml.example feat(cli): Implement Edge Connect CLI tool 2025-09-18 13:51:09 +02:00
devbox.json chore(): unique go version 1.25, fixes 'make test-coverage' error 2025-10-08 16:49:31 +02:00
devbox.lock chore(): unique go version 1.25, fixes 'make test-coverage' error 2025-10-08 16:49:31 +02:00
Dockerfile feat(client): add basic client, model 2025-09-16 13:02:33 +02:00
edge-connect-cli feat: implement dependency injection with proper hexagonal architecture 2025-10-08 18:15:26 +02:00
flake.lock chore: Added flake 2025-10-07 14:37:54 +02:00
flake.nix chore(): unique go version 1.25, fixes 'make test-coverage' error 2025-10-08 16:49:31 +02:00
go.mod feat(apply): Implement deployment planning with intelligent state comparison 2025-09-29 16:36:21 +02:00
go.sum feat(apply): Implement deployment planning with intelligent state comparison 2025-09-29 16:36:21 +02:00
hexagonal-architecture-proposal.md feat: implement dependency injection with proper hexagonal architecture 2025-10-08 18:15:26 +02:00
Makefile feat: implement dependency injection with proper hexagonal architecture 2025-10-08 18:15:26 +02:00
plan.md feat(apply): Implement EdgeConnect configuration parsing foundation 2025-09-29 16:18:35 +02:00