4.3 KiB
4.3 KiB
System Architecture
Core Services
Top-Level Services
-
AuthServiceApi
- User authentication and authorization
- Token management
- Permission handling
-
EventServiceApi
- Event processing and management
- Event routing and handling
- Event validation
-
ValidationServiceApi
- Input validation
- Data verification
- Schema validation
System Components
AllConfigs
Configuration management for various system components.
| Category | Context | Dependencies |
|---|---|---|
| configs, email_send_model | - | |
| NoSqlDatabase | configs | - |
| Redis | configs | - |
| SqlDatabase | configs | - |
| Token | configs | - |
Schemas
- SQL Alchemy schema definitions
- Data models and relationships
- Database structure definitions
ApiLibrary
| Category | Description |
|---|---|
| common | Error line number tracking |
| date_time_actions | DateTime handling functions |
| extensions | Password module and utilities |
ApiServices
| Category | Context | Dependencies |
|---|---|---|
| Login | UserLoginModule | ApiLibrary, Schemas, ErrorHandlers, ApiValidations, ApiServices |
| Token | TokenService | Services, Schemas, ApiLibrary, ErrorHandlers, AllConfigs, ApiValidations |
Services
| Category | Dependencies |
|---|---|
| ApiLibrary, Schemas, ErrorHandlers, ApiValidations, ApiServices | |
| MongoDb | - |
| PostgresDb | - |
| Redis | - |
ErrorHandlers
- ErrorHandlers: General error handling
- Exceptions: Custom exception definitions
LanguageModels
- Database: Database-related language models
- Errors: Error message translations
ApiValidations
- Custom: Custom validation rules
- Request: Request validation logic
Testing Framework
Test Categories
- AlchemyResponse pagination testing
- Redis function testing
- MongoDB function testing
- Validation testing
- Header testing
- Auth function testing
- Language testing
- Property definition testing
- SmartQuery testing
Error Categories
- AlchemyError
- ApiError
- RedisError
- MongoError
- EmailError
- Validation[Pydantic]
Alchemy Implementation Phases
-
BaseAlchemyNeed
- Session management
- Core functionality
-
PlainModel
- Basic model implementation
-
FilteredModel
- Filter functionality
-
PaginatedModel
- Pagination attributes
- Filter integration
-
LanguageModel
- Function retrieval
- Header management
-
ResponseModel
- Plain AlchemyClass
- Dictionary conversion
- Multiple response handling
System Layers
-
DependenciesLayer
- External dependencies
- System requirements
-
ApplicationLayer
- Core application logic
- Business rules
-
ServiceLayer
- Service implementations
- API endpoints
-
TestLayer
- Test suites
- Test utilities
-
DevLayer
- Development tools
- Debug utilities
-
RootLayer
- Main directory
- Configuration files
- Documentation
TODO Items
-
Event Directory Structure
- Move to ApiEvents
- Docker file integration
- Import organization
-
MethodToEvent Renewal
- Update implementation
- Improve flexibility
-
Endpoint Configuration
- Remove unnecessary fields
- Streamline configuration
-
Middleware Organization
- Consolidate into /TokenEventMiddleware/
- Standardize naming
-
Code Cleanup
- Remove ActionsSchemaFactory
- Remove ActionsSchema
- Move endpoint_wrapper to Middleware.wrappers
-
Function Organization
- Support sync/async functions
- Improve API function organization
-
Directory Structure
- Consolidate AllConfigs, ApiLibrary, ErrorHandlers
- Move to RootLayer
-
Configuration Management
- Update RouteFactoryConfig
- Update EndpointFactoryConfig
- Implement event validation interface
-
Language Model
- Review Schemas.language_model
- Update implementation
-
Service Container
- Review ApiServices
- Plan container migration
-
Language Defaults
- Add to config
- Implement ["tr", "en"] as default
Notes
- Redis implementation needs RedisRow class
- Event validation needs database integration
- Consider containerization for ApiServices
- Review language model implementation
- Test coverage needs improvement