- Fix gRPC health checks: Set serving status for default service (empty string) in all services
- Consul checks the default service by default, not specific service names
- All services now set both default and specific service status to SERVING
- Update Consul registration logic to automatically detect HTTP vs gRPC services
- HTTP services (API Gateway) use HTTP health checks
- gRPC services use gRPC health checks
- Detection based on service tags and metadata
- Add API Gateway Consul registration
- Register with Docker service name in Docker environment
- Use HTTP health checks for API Gateway
- Proper host/port configuration handling
- Add API Gateway HTTP-to-gRPC handlers
- Implement service-specific handlers for Auth and Identity services
- Translate HTTP requests to gRPC calls
- Map gRPC error codes to HTTP status codes
- Add VerifyPassword RPC to Identity Service
- Added to proto file and generated code
- Implemented in Identity Service gRPC server
- Added to Identity Service client interface and gRPC client
- Complete RefreshToken implementation
- Store refresh tokens in database using RefreshToken entity
- Validate refresh tokens with expiration checking
- Revoke refresh tokens on logout and token rotation
- Integrate Authz Service for role retrieval
- Added AuthzServiceClient to Auth Service
- Get user roles during login and token refresh
- Gracefully handle Authz Service failures
- Require JWT secret in configuration
- Removed default secret fallback
- Service fails to start if JWT secret is not configured
- Fix Consul health checks for Docker
- Services now register with Docker service names (e.g., audit-service)
- Allows Consul (in Docker) to reach services via Docker DNS
- Health checks use gRPC service names instead of localhost
This completes all TODOs in auth_service_fx.go and fixes the Consul
health check failures in Docker environments.
- Remove duplicate CoreModule() calls from all service main.go files
- NewContainer() already includes CoreModule() automatically
- This was causing duplicate ConfigProvider provider errors
- Update all _fx.go files to use *database.Client instead of *ent.Client
- database.Client embeds *ent.Client, so it can be used directly
- This fixes type mismatches between providers and consumers
- Keep ent import for constants like ent.Desc
- All services now build and should start successfully