Releases: SyntaxArc/ArchiPy
4.3.4
Fixed
Models - Errors
- BaseError
__str__Enhancement - Improved string representation to expose full error context__str__now returns a structured, human-readable string includingclass name,code,message,http_status,grpc_status, andadditional_data- Previous output was a minimal
[code] messageformat, making debugging difficult - New format:
ClassName(code='...', message='...', http_status=..., grpc_status=..., additional_data=...) - Consistent with
__repr__behaviour — no information is hidden in logs or tracebacks
Changed
Dependencies
- FastAPI bumped from
>=0.131.0to>=0.133.0 - boto3 (minio extra) bumped from
>=1.42.54to>=1.42.55 - mkdocs-material (docs group) bumped from
>=9.7.2to>=9.7.3
Internal
Developer Tooling
- Cursor Rules Restructured - Replaced monolithic
checks.mdcandCLAUDE.mdwith focused, single-responsibility rule files- Added
python-code-style.mdc— string quoting, docstrings, line length, type hints, imports, error handling, complexity - Added
architecture-patterns.mdc— Clean Architecture layer map, import direction, lazy import policy - Added
typing-strict.mdc— strict type annotation conventions - Added
testing-bdd.mdc— BDD/Behave test conventions - Added
tooling-workflow.mdc—uv, Make targets, pre-commit hooks, docs, version bumping - Added
adapter-conventions.mdc— ports & adapters pattern, mock requirements, naming rules
- Added
Full Changelog: 4.3.3...4.3.4
4.3.1
Changed
Adapters - MinIO
- Boto3 Migration - Migrated MinIO adapter from minio library to boto3
- Replaced
miniolibrary withboto3for S3-compatible object storage operations - Added new configuration fields to
MinioConfig:ADDRESSING_STYLE: S3 addressing style (auto, path, or virtual) - critical for CDN compatibilitySIGNATURE_VERSION: AWS signature version (default: s3v4)CONNECT_TIMEOUT: Connection timeout in seconds (default: 60)READ_TIMEOUT: Read timeout in seconds (default: 60)MAX_POOL_CONNECTIONS: Maximum connections in the pool (default: 10)RETRIES_MAX_ATTEMPTS: Maximum retry attempts for failed requests (default: 3)RETRIES_MODE: Retry strategy - legacy, standard, or adaptive (default: standard)USE_SSL: Explicit SSL usage control (overrides SECURE if set)VERIFY_SSL: SSL certificate verification (default: true)
- Improved presigned URL generation with better control over addressing styles
- Enhanced exception handling using structured boto3 error codes instead of string parsing
- All existing functionality preserved with zero breaking changes to the
MinioPortinterface - Resolves CDN and presigned URL compatibility issues
- Custom MinIO test container implementation eliminates minio library dependency entirely
- Replaced
Full Changelog: 4.3.0...4.3.1
4.3.0
Added
Helpers - Utils
- Prometheus Utilities - Added shared Prometheus server management module
- Implemented
prometheus_utilsmodule withis_prometheus_server_running()helper - Added
start_prometheus_server_if_needed()helper for automatic Prometheus server lifecycle management - Prevents duplicate Prometheus server starts across FastAPI, gRPC, and Temporal adapters
- Supports port availability checking before starting Prometheus HTTP server
- Implemented
Adapters - Temporal
- Prometheus Metrics Integration - Added Temporal metrics collection with Prometheus
- Implemented
TemporalRuntimeManagersingleton for managing Runtime instances with telemetry - Integrated Runtime with PrometheusConfig into TemporalAdapter client and Worker
- Added
ENABLE_METRICSandMETRICS_PORTconfiguration options toTemporalConfig - Temporal SDK metrics now exported to Prometheus when metrics are enabled
- Metrics include workflow operations, activity executions, and task queue operations
- Added BDD tests for Temporal metrics collection scenarios (
temporal_metric_interceptor.feature)
- Implemented
Changed
Configs
- Prometheus Configuration - Enhanced BaseConfig with Prometheus support
- Added
PROMETHEUS.IS_ENABLEDflag for enabling/disabling Prometheus metrics globally - Added
PROMETHEUS.SERVER_PORTconfiguration for Prometheus HTTP server port - Updated
.env.testwith Prometheus configuration for testing - Added Temporal metrics configuration (
TEMPORAL.ENABLE_METRICS,TEMPORAL.METRICS_PORT)
- Added
Fixed
Adapters - Redis
- Type Safety - Fixed Redis adapter type handling
- Added type check for unexpected awaitable results from sync Redis client in
spop()method - Prevents async/sync mismatch errors in Redis operations
- Added type check for unexpected awaitable results from sync Redis client in
Full Changelog: 4.2.0...4.3.0
4.1.0
Added
Adapters - Keycloak
-
Organization Management - Implemented comprehensive organization management functionality
- Added
create_organization()method for creating new organizations - Added
update_organization()method for updating existing organizations - Added
delete_organization()method for removing organizations - Added
add_organization_member()method for adding members to organizations - Added
remove_organization_member()method for removing members from organizations - Added
get_organization_members()method for retrieving organization member lists - Implemented both sync (
KeycloakAdapter) and async (AsyncKeycloakAdapter) versions - Enhanced feature tests to cover all organization operations
- Added
-
Realm Configuration - Added realm update functionality
- Implemented
update_realm()method to enable organization support - Added configuration options for organization features in realms
- Updated test containers to support organization feature in Keycloak
- Implemented
Tests
-
StarRocks TestContainer - Added TestContainer support for StarRocks database
- Integrated StarRocks container for integration testing
- Enhanced test coverage for StarRocks adapter functionality
-
Atomic Transaction Tests - Expanded test coverage for atomic decorators
- Added PostgreSQL support for atomic transaction tests
- Added SQLite support for atomic transaction tests
- Improved test reliability across different database backends
Changed
Development Tools
- Formatter Migration - Replaced Black with Ruff formatter
- Migrated from Black to Ruff formatter for code formatting
- Applied Ruff formatting fixes across entire codebase
- Updated CI/CD workflows to use Ruff formatter
- Maintained 120 character line length standard
CI/CD
- Workflow Improvements - Enhanced GitHub Actions workflows
- Separated Ruff and Ty linting into dedicated workflows
- Refactored Ty workflow for better performance
- Bumped
actions/cachefrom version 4 to 5 - Improved workflow reliability and execution speed
Fixed
Configuration
- Type Safety - Resolved type checker errors
- Fixed type errors in
base_config.py - Fixed type errors in
keycloak_utils.py - Improved type hint accuracy across configuration modules
- Fixed type errors in
Documentation
- Module References - Fixed documentation issues
- Removed reference to non-existent
error_message_typesmodule - Updated documentation to reflect current module structure
- Removed reference to non-existent
Chore
Dependencies
-
Python Version - Updated to Python 3.14
- Added
.python-versionfile with Python 3.14 - Updated all Python version references to 3.14
- Ensured compatibility with Python 3.14 features
- Added
-
Core Dependencies - Updated multiple dependencies to latest versions
- Updated
cachetoolsfrom>=6.2.6to>=7.0.0(cache, keycloak, minio, scylladb extras) - Updated
elasticsearchfrom>=9.2.1to>=9.3.0(elasticsearch and elasticsearch-async extras) - Updated
fastapifrom>=0.128.0to>=0.128.5(fastapi extra) - Updated
grpciofrom>=1.76.0to>=1.78.0(grpc extra) - Updated
grpcio-health-checkingfrom>=1.76.0to>=1.78.0(grpc extra) - Updated
sentry-sdkfrom>=2.51.0to>=2.52.0(sentry extra) - Updated
temporaliofrom>=1.21.1to>=1.22.0(temporalio extra) - Updated
testcontainersfrom>=4.14.0to>=4.14.1(testcontainers extra)
- Updated
-
Development Dependencies - Updated development tools
- Updated
tyfrom>=0.0.14to>=0.0.15(type checker) - Updated
rufffrom>=0.14.14to>=0.15.0(linter and formatter) - Updated
validate-pyprojectfrom>=0.24.1to>=0.25
- Updated
-
Documentation Dependencies - Updated documentation tools
- Updated
mkdocstringsfrom>=1.0.2to>=1.0.3
- Updated
-
Test Environment - Updated test configuration
- Updated Elasticsearch test image from
9.2.1to9.3.0in.env.test
- Updated Elasticsearch test image from
New Contributors
Full Changelog: 4.0.4...4.1.0
4.0.4
Changed
Helpers - Decorators
- Enhanced Exception Handling - Improved exception handling in SQLAlchemy atomic decorators
- Changed exception handling from
ExceptiontoBaseExceptionfor comprehensive error catching - Updated
_handle_db_exception()function signature to acceptBaseExceptioninstead ofException - Enhanced error handling in both sync and async atomic decorator implementations
- Ensures all exceptions (including system exceptions) are properly caught and handled
- Changed exception handling from
Models - Types
- Enum Value Standardization - Standardized all enum values to uppercase format for consistency
- SortOrderType: Changed
ASCENDINGandDESCENDINGfrom lowercase to uppercase - FilterOperationType: Changed all 15 operation types to uppercase (EQUAL, NOT_EQUAL, LESS_THAN, LESS_THAN_OR_EQUAL, GREATER_THAN, GREATER_THAN_OR_EQUAL, IN_LIST, NOT_IN_LIST, LIKE, ILIKE, STARTS_WITH, ENDS_WITH, CONTAINS, IS_NULL, IS_NOT_NULL)
- EmailAttachmentDispositionType: Changed
ATTACHMENTandINLINEfrom lowercase to uppercase - TimeIntervalUnitType: Changed all 7 unit types to uppercase (SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEAR)
- Improved consistency with other enum patterns in the codebase
- Enhanced code readability and standardization across all type definitions
- SortOrderType: Changed
Fixed
Adapters - StarRocks
- Docstring Formatting - Fixed docstring formatting in StarRocks session manager
- Corrected docstring formatting in
get_connection_args()method - Improved code documentation consistency
- Corrected docstring formatting in
Chore
Dependencies
- Comprehensive Dependency Updates - Updated multiple dependencies to latest versions
- Updated
cachetoolsfrom>=6.2.4to>=6.2.6(cache, keycloak, minio, scylladb extras) - Updated
cryptographyfrom46.0.3to46.0.4for enhanced security - Updated
protobuffrom>=6.33.4to>=6.33.5(grpc extra) - Updated
pyjwtfrom>=2.10.1to>=2.11.0(jwt extra) - Updated
python-keycloakfrom>=7.0.2to>=7.0.3(keycloak extra) - Updated
python-multipartfrom0.0.21to0.0.22 - Updated
richfrom14.3.0to14.3.1 - Updated
rich-toolkitfrom0.17.1to0.17.2 - Updated
sentry-sdkfrom>=2.50.0to>=2.51.0(sentry extra) - Updated
tyfrom>=0.0.13to>=0.0.14(dev dependency) - Updated
mkdocstringsfrom>=1.0.1to>=1.0.2(docs dependency) - Updated
pathspecfrom1.0.3to1.0.4 - Updated
orjsonfrom3.11.5to3.11.6
- Updated
Full Changelog: 4.0.3...4.0.4
4.0.3
Added
Tests
- Add PostgreSQL and SQLite support for atomic transaction tests
- Add Starrocks TestContainer support
Changed
- Replace Black with Ruff formatter
Fixed
Configs
-
Resolve type errors in base_config and keycloak_utils
-
Remove reference to non-existent error_message_types module
Chore
Configs
-
Configure Ruff to respect pyproject.toml in CI lint workflow
-
Apply Ruff formatting fixes
-
Merge branch 'master' of github.com:SyntaxArc/ArchiPy
-
Merge pull request #102 from SyntaxArc/dependabot/github_actions/actions/cache-5
-
Update dependencies
CI
- Bump actions/cache from 4 to 5
- Refactor ty workflow
- Separate ruff and ty linting into dedicated workflows
Full Changelog: 4.0.2...4.0.3
testing async capture span
What's Changed
Full Changelog: 3.15.3...3.16.0-beta
4.0.2
Changed
Development Tools
- Broadened Ruff configuration (additional ignores, per-file overrides, relaxed limits) and expanded type-checking/lint sections for optional dependency handling (lazy imports, optional extras).
- Raised Pylint branch/statement limits to accommodate complex decorator and interceptor flows; added explicit flake8 config blocks for comprehensions, errmsg, type-checking, and unused-arguments.
Adapters
- SQLAlchemy base adapters: tightened filtering/exception handling helpers and optional dependency guards in session managers.
- Email/Kafka/ScyllaDB/Temporal adapters: improved lazy import behavior, tracing hooks, and error handling consistency to match optional extras.
Helpers
- Decorators (cache/retry/timing/tracing/sqlalchemy_atomic): clarified lazy-import paths, kept TYPE_CHECKING stubs, and aligned getattr caching.
- gRPC interceptors (trace/metric, client/server): better Sentry span management, traceparent propagation, and guard rails when APM extras are disabled.
- Utility helpers (app/error/file/keycloak): safer optional imports for HTTP/gRPC/Keycloak, clearer exception logging, and minor robustness fixes.
Testing
- BDD updates for cache decorator (TTL, clearing, bound method identity), Elastic adapter, Keycloak adapter, ScyllaDB adapter, and error utils to match revised behaviors and lazy-import handling.
Dependencies
- Optional Dependencies
- Updated
starrocksextra from>=1.3.1to>=1.3.2(includesstarrocks-async)
- Updated
Full Changelog: 4.0.1...4.0.2
4.0.1
Added
Helpers - Decorators
- Comprehensive Cache Decorator BDD Tests - Added extensive BDD test suite for cache decorators
- Test scenarios for function caching with TTL expiration
- Test scenarios for async function caching
- Test scenarios for method caching (both sync and async)
- Test scenarios for bound method caching with instance isolation
- Test scenarios for cache key generation with different argument types
- Test scenarios for cache invalidation and clearing
- Test scenarios for cache statistics and monitoring
- Test scenarios for error handling and edge cases
Fixed
Helpers - Decorators
-
Bound Method Caching - Fixed cache decorator to properly handle bound methods
- Fixed cache key generation for bound methods to include instance identity
- Ensures each instance has its own cache namespace
- Prevents cache collisions between different instances of the same class
- Improved cache statistics tracking for bound methods
-
Type Checker Errors - Resolved all Ty type checker errors (22 fixes)
- Refactored decorators with
ParamSpecfor proper type preservation - Implemented descriptor protocol for cache decorator
- Updated port interfaces with correct type annotations
- Added
TYPE_CHECKINGimports for better type checking - No
cast()usage - all types properly inferred
- Refactored decorators with
Changed
Development Tools
- Type Checker Migration - Migrated from MyPy to Ty type checker
- Replaced MyPy with Ty for Python 3.14 type checking
- Updated all type hints to use Python 3.14 syntax (
|for unions, lowercase built-ins) - Updated Makefile to use
ty checkinstead ofmypy - Changed cache directory from
.mypy_cache/to.ty_cache/ - Updated pre-commit hooks to use Ty
- Updated documentation and contributing guides
Dependencies
-
Optional Dependencies
- Updated
fastapifrom>=0.124.0to>=0.124.2 - Updated
sqlalchemyfrom>=2.0.44to>=2.0.45
- Updated
-
Development Dependencies
- Removed
mypy>=1.19.0 - Added
ty(Ty type checker) - Updated
types-protobuffrom>=6.32.1.20251105to>=6.32.1.20251210
- Removed
Full Changelog: 4.0.0...4.0.1
4.0.0
Changed
Models - Errors
- Error System Migration to T-Strings - Refactored error system to use t-string template formatting with inline context variables
- Removed
ErrorDetailDTOandErrorMessageTypedependencies - Added class attributes (
code,message_en,message_fa,http_status,grpc_status) toBaseError - Implemented t-string template formatting with context variables in error messages
- Override
get_message()in error classes with explicit variable passing - Applied Persian number conversion for FA language messages
- Removed deprecated
http_status_code_valueandgrpc_status_code_valueproperties - Removed
_get_grpc_status_codemethod, use_convert_int_to_grpc_statusdirectly - Updated all error classes (validation, auth, resource, database, business, network, system, keycloak, temporal)
- Updated FastAPI integration, adapters, and utilities
- Fixed MyPy type errors in
BaseError.to_dict()and gRPC metadata handling
- Removed
Tests
- Comprehensive Error Handling Tests - Added comprehensive error handling tests for FastAPI and gRPC
- Added BDD test scenarios for FastAPI error handling (
fastapi_error_handling.feature) - Added BDD test scenarios for gRPC error handling (
grpc_error_handling.feature) - Implemented test step definitions for error handling scenarios
- Added test servers and utilities for FastAPI and gRPC error testing
- Renamed "exception" to "error" in behave test files and features for consistency
- Added BDD test scenarios for FastAPI error handling (
Chore
- Python Version References - Updated all Python version references to 3.14
- Updated documentation and configuration files to reflect Python 3.14 requirement
- Aligned version references across the codebase
Full Changelog: 3.15.3...4.0.0