Files
GSRN af33bc2d20
Some checks failed
Docker Build and Push / setup (push) Successful in 54s
API Docs (Node.js Express) / test (20) (push) Failing after 3m4s
API Docs (Node.js Express) / build (push) Has been skipped
Integration Tests / integration-tests (push) Failing after 2m31s
Integration Tests / performance-tests (push) Has been skipped
API Gateway (Java Spring Boot) / test (21) (push) Failing after 4m18s
API Gateway (Java Spring Boot) / test (17) (push) Failing after 4m19s
API Gateway (Java Spring Boot) / build (push) Has been skipped
Service Adapters (Python FastAPI) / test (3.11) (push) Failing after 1m51s
Docker Build and Push / build-push-service-adapters (push) Successful in 1m15s
Service Adapters (Python FastAPI) / test (3.13) (push) Failing after 1m58s
Service Adapters (Python FastAPI) / test (3.12) (push) Failing after 3m17s
Service Adapters (Python FastAPI) / build (push) Has been skipped
Docker Build and Push / build-push-api-docs (push) Successful in 52s
Docker Build and Push / build-push-frontend (push) Successful in 45s
Docker Build and Push / build-push-api-gateway (push) Successful in 10m4s
update documentation
2025-09-17 23:41:26 +02:00

71 lines
2.4 KiB
Markdown

# Service Adapters
Python FastAPI service for integrating with external homelab services.
## Purpose
- Integrate with Home Assistant, Frigate, Immich, n8n
- Transform external service data into standardized format
- Publish events to the message bus
- Provide unified API for service data
## Technology Stack
- **Language**: Python 3.11
- **Framework**: FastAPI
- **Port**: 8000
- **Message Bus**: Redis
- **Documentation**: OpenAPI/Swagger
## Features
- Home Assistant entity integration
- Frigate event processing
- Immich asset management
- n8n workflow triggers
- Event publishing to Redis
- Comprehensive OpenAPI documentation
- Modular architecture for maintainability
## Project Structure
```
service-adapters/
├── main.py # FastAPI application (40 lines)
├── models/
│ ├── schemas.py # Pydantic models
├── routes/
│ ├── general.py # Root, health, services
│ ├── home_assistant.py # HA integration
│ ├── frigate.py # Frigate integration
│ ├── immich.py # Immich integration
│ └── events.py # Event management
└── services/
├── config.py # Service configurations
└── redis_client.py # Redis connection
```
## API Endpoints
- `GET /` - API information
- `GET /health` - Health check
- `GET /services` - Service status
- `GET /home-assistant/entities` - HA entities
- `GET /frigate/events` - Frigate events
- `GET /immich/assets` - Immich assets
- `POST /publish-event` - Publish events
- `GET /events` - Retrieve events
## Development Status
**Complete** - Core functionality implemented with modular architecture and comprehensive testing
## Testing
- **Unit Tests**: Comprehensive test coverage with pytest
- **Coverage**: HTML coverage reports in `htmlcov/`
- **Security**: Bandit and Safety security scanning
- **Quality**: Black, isort, flake8, mypy code quality checks
- **CI/CD**: Automated testing in Gitea Actions pipeline
## Clean Code Implementation
- **Modular Structure**: Separated concerns across models, routes, and services
- **Type Safety**: Pydantic models with comprehensive validation
- **Error Handling**: Consistent error responses and proper HTTP status codes
- **Documentation**: Auto-generated OpenAPI documentation
- **Testing**: Comprehensive test suite with high coverage
- **Code Quality**: Automated formatting and linting