22
33All notable changes to ArchiPy are documented in this changelog, organized by version.
44
5+ ## [ 0.13.5] - 2025-04-16
56
7+ ### Fixed
8+
9+ #### SQLAlchemy
610
11+ - Resolved sorting functionality in SQLAlchemy mixin
12+ - Enhanced query sorting capabilities with improved error handling
713
814## [ 0.13.4] - 2025-04-15
915
1016### Added
1117
1218#### FastAPI Integration
19+
1320- Implemented lifespan support for FastAPI applications
1421- Enhanced application lifecycle management with proper startup and shutdown handlers
1522
1623#### Database Configuration
24+
1725- Added automatic database URL generation with validation in SqlAlchemyConfig
1826- Improved database connection configuration with enhanced error handling
1927
2028### Code Quality
29+
2130- Integrated new features with comprehensive test coverage
2231- Enhanced configuration validation and error reporting
2332
2433### Changed
2534
2635- Update changelogs
2736
28-
2937### Fixed
3038
3139#### Configs
@@ -38,20 +46,24 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve
3846### Added
3947
4048#### CI/CD
49+
4150- Implemented comprehensive linting workflow for improved code quality
4251- Enhanced GitHub Actions with updated tj-actions/changed-files for better change tracking
4352
4453#### Documentation
54+
4555- Added detailed documentation for range DTOs and their usage patterns
4656- Improved API reference documentation with new examples
4757
4858### Changed
4959
5060#### Models
61+
5162- Enhanced range DTOs with improved type safety and validation
5263- Updated range DTOs to support more flexible boundary conditions
5364
5465### Code Quality
66+
5567- Integrated automated linting for consistent code style
5668- Improved code formatting and documentation standards
5769
@@ -93,17 +105,17 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve
93105### Features
94106
95107- ** MinIO Integration** : Full S3-compatible object storage adapter with:
96- - Comprehensive S3 operation support (12 standardized methods)
97- - Built-in TTL caching for performance optimization
98- - Flexible configuration with endpoint and credential management
99- - Clear cache management through ` clear_all_caches `
108+ - Comprehensive S3 operation support (12 standardized methods)
109+ - Built-in TTL caching for performance optimization
110+ - Flexible configuration with endpoint and credential management
111+ - Clear cache management through ` clear_all_caches `
100112
101113### Testing
102114
103115- Added complete BDD test suite for MinIO adapter:
104- - Bucket and object operation validation
105- - Presigned URL generation testing
106- - Bucket policy management verification
116+ - Bucket and object operation validation
117+ - Presigned URL generation testing
118+ - Bucket policy management verification
107119
108120### Documentation
109121
@@ -116,6 +128,7 @@ All notable changes to ArchiPy are documented in this changelog, organized by ve
116128``` python
117129# Initialize the MinIO adapter
118130from archipy.adapters.minio.adapters import MinioAdapter
131+
119132minio = MinioAdapter()
120133
121134# Create a bucket and upload a file
@@ -131,11 +144,11 @@ download_url = minio.presigned_get_object("my-bucket", "document.pdf", expires=3
131144### Features
132145
133146- ** Keycloak Integration** : Comprehensive authentication and authorization for FastAPI:
134- - Role-based access control with customizable requirements
135- - Resource-based authorization for fine-grained access control
136- - Both synchronous and asynchronous authentication flows
137- - Token validation and introspection
138- - User info extraction capabilities
147+ - Role-based access control with customizable requirements
148+ - Resource-based authorization for fine-grained access control
149+ - Both synchronous and asynchronous authentication flows
150+ - Token validation and introspection
151+ - User info extraction capabilities
139152
140153### Code Quality
141154
@@ -151,6 +164,7 @@ from archipy.helpers.utils.keycloak_utils import KeycloakUtils
151164
152165app = FastAPI()
153166
167+
154168@app.get (" /api/profile" )
155169def get_profile (user : dict = Depends(KeycloakUtils.fastapi_auth(
156170 required_roles = {" user" },
@@ -183,10 +197,10 @@ def get_profile(user: dict = Depends(KeycloakUtils.fastapi_auth(
183197### Features
184198
185199- ** Keycloak Adapter** : New authentication and authorization system:
186- - Asynchronous operations support
187- - Token management and validation
188- - User information retrieval
189- - Comprehensive security features
200+ - Asynchronous operations support
201+ - Token management and validation
202+ - User information retrieval
203+ - Comprehensive security features
190204
191205### Performance
192206
@@ -237,16 +251,16 @@ is_valid = keycloak.validate_token(token)
237251### Features
238252
239253- ** Redis Integration** : New caching and key-value storage system:
240- - Flexible key-value operations
241- - Built-in TTL support
242- - Connection pooling
243- - Comprehensive error handling
254+ - Flexible key-value operations
255+ - Built-in TTL support
256+ - Connection pooling
257+ - Comprehensive error handling
244258
245259- ** Email Service** : New email integration system:
246- - Multiple email provider support
247- - Template-based email sending
248- - Attachment handling
249- - Async operation support
260+ - Multiple email provider support
261+ - Template-based email sending
262+ - Attachment handling
263+ - Async operation support
250264
251265### Configuration
252266
@@ -259,6 +273,7 @@ is_valid = keycloak.validate_token(token)
259273``` python
260274# Initialize the Redis adapter
261275from archipy.adapters.redis.adapters import RedisAdapter
276+
262277redis = RedisAdapter()
263278
264279# Basic operations
@@ -274,15 +289,15 @@ redis.set("session:token", "abc123", ttl=3600) # Expires in 1 hour
274289### Security
275290
276291- ** TOTP System** : Comprehensive Time-based One-Time Password implementation:
277- - Secure token generation and validation
278- - Configurable time windows
279- - Built-in expiration handling
280- - RFC compliance
292+ - Secure token generation and validation
293+ - Configurable time windows
294+ - Built-in expiration handling
295+ - RFC compliance
281296
282297- ** Multi-Factor Authentication** : Enhanced security framework:
283- - Multiple authentication factor support
284- - Flexible factor configuration
285- - Integration with existing auth systems
298+ - Multiple authentication factor support
299+ - Flexible factor configuration
300+ - Integration with existing auth systems
286301
287302### Usage Example
288303
@@ -306,17 +321,17 @@ secret_key = TOTPUtils.generate_secret_key_for_totp()
306321### Features
307322
308323- ** Redis Integration** : Comprehensive key-value store and caching system:
309- - Full Redis API implementation
310- - Built-in caching functionality
311- - Performance-optimized operations
312- - Connection pooling support
324+ - Full Redis API implementation
325+ - Built-in caching functionality
326+ - Performance-optimized operations
327+ - Connection pooling support
313328
314329### Testing
315330
316331- ** Mock Redis Implementation** :
317- - Complete test coverage for Redis operations
318- - Simulated Redis environment for testing
319- - Configurable mock behaviors
332+ - Complete test coverage for Redis operations
333+ - Simulated Redis environment for testing
334+ - Configurable mock behaviors
320335
321336### Documentation
322337
@@ -347,10 +362,10 @@ secret_key = TOTPUtils.generate_secret_key_for_totp()
347362### Features
348363
349364- ** SQLAlchemy Integration** : Complete ORM implementation:
350- - Robust entity model system
351- - Transaction management with ACID compliance
352- - Connection pooling with configurable settings
353- - Comprehensive database operations support
365+ - Robust entity model system
366+ - Transaction management with ACID compliance
367+ - Connection pooling with configurable settings
368+ - Comprehensive database operations support
354369
355370### Usage Example
356371
@@ -359,12 +374,14 @@ from archipy.adapters.orm.sqlalchemy.adapters import SQLAlchemyAdapter
359374from archipy.models.entities.sqlalchemy.base_entities import BaseEntity
360375from sqlalchemy import Column, String
361376
377+
362378# Define a model
363379class User (BaseEntity ):
364380 __tablename__ = " users"
365381 name = Column(String(100 ))
366382 email = Column(String(100 ), unique = True )
367383
384+
368385# Use the ORM
369386orm = SQLAlchemyAdapter()
370387with orm.session() as session:
@@ -390,10 +407,10 @@ with orm.session() as session:
390407### Features
391408
392409- ** gRPC Integration** : Comprehensive interceptor system:
393- - Client and server-side interceptors
394- - Request/response monitoring
395- - Performance tracing capabilities
396- - Enhanced error management
410+ - Client and server-side interceptors
411+ - Request/response monitoring
412+ - Performance tracing capabilities
413+ - Enhanced error management
397414
398415### Documentation
399416
@@ -415,10 +432,10 @@ with orm.session() as session:
415432### Features
416433
417434- ** FastAPI Integration** : Complete web framework support:
418- - Custom middleware components
419- - Request/response processors
420- - Standardized error handling
421- - Response formatting utilities
435+ - Custom middleware components
436+ - Request/response processors
437+ - Standardized error handling
438+ - Response formatting utilities
422439
423440### Documentation
424441
@@ -431,10 +448,10 @@ with orm.session() as session:
431448### Features
432449
433450- ** Configuration System** : Flexible environment management:
434- - Environment variable support
435- - Type-safe configuration validation
436- - Default value management
437- - Override capabilities
451+ - Environment variable support
452+ - Type-safe configuration validation
453+ - Default value management
454+ - Override capabilities
438455
439456### Documentation
440457
@@ -447,10 +464,10 @@ with orm.session() as session:
447464### Features
448465
449466- ** Core Utilities** : Comprehensive helper functions:
450- - Date/time manipulation with timezone support
451- - String processing and formatting
452- - Common development utilities
453- - Type conversion helpers
467+ - Date/time manipulation with timezone support
468+ - String processing and formatting
469+ - Common development utilities
470+ - Type conversion helpers
454471
455472### Documentation
456473
@@ -463,10 +480,10 @@ with orm.session() as session:
463480### Architecture
464481
465482- ** Hexagonal Architecture** : Core implementation:
466- - Ports and adapters pattern
467- - Clean architecture principles
468- - Domain-driven design
469- - Base entity models
483+ - Ports and adapters pattern
484+ - Clean architecture principles
485+ - Domain-driven design
486+ - Base entity models
470487
471488### Documentation
472489
@@ -479,10 +496,10 @@ with orm.session() as session:
479496### Features
480497
481498- ** Initial Release** : Project foundation:
482- - Core project structure
483- - Basic framework components
484- - Configuration system
485- - CI/CD pipeline with GitHub Actions
499+ - Core project structure
500+ - Basic framework components
501+ - Configuration system
502+ - CI/CD pipeline with GitHub Actions
486503
487504### Documentation
488505
0 commit comments