Overview
This task creates domain types for Docker Compose networks and migrates service configurations from Vec<String> to type-safe Vec<Network>. This is PR 4 in the 5-PR refactoring strategy.
Parent Epic: #287
Goals
Implementation
P1.1: Create Network Domain Type
Create Network enum in src/domain/deployment/topology/network.rs:
Database - Tracker ↔ MySQL
Metrics - Tracker ↔ Prometheus
Visualization - Prometheus ↔ Grafana
Proxy - Caddy ↔ backend services
P1.2: Migrate Service Configs
Update all service configs to use Vec<Network> instead of Vec<String>:
TrackerServiceConfig
MysqlServiceConfig
PrometheusServiceConfig
GrafanaServiceConfig
CaddyServiceConfig
Specification Document
See docs/issues/phase-1-network-domain-types.md for:
- Detailed code examples
- Unit test requirements
- Implementation checklist
Acceptance Criteria
Related
Overview
This task creates domain types for Docker Compose networks and migrates service configurations from
Vec<String>to type-safeVec<Network>. This is PR 4 in the 5-PR refactoring strategy.Parent Epic: #287
Goals
Networkenum to eliminate string-based network referencesImplementation
P1.1: Create Network Domain Type
Create
Networkenum insrc/domain/deployment/topology/network.rs:Database- Tracker ↔ MySQLMetrics- Tracker ↔ PrometheusVisualization- Prometheus ↔ GrafanaProxy- Caddy ↔ backend servicesP1.2: Migrate Service Configs
Update all service configs to use
Vec<Network>instead ofVec<String>:TrackerServiceConfigMysqlServiceConfigPrometheusServiceConfigGrafanaServiceConfigCaddyServiceConfigSpecification Document
See docs/issues/phase-1-network-domain-types.md for:
Acceptance Criteria
./scripts/pre-commit.shNetworkenum exists with all four variantsVec<Network>instead ofVec<String>Related