All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
includes Added / Changed / Fixed
- Allows custom http host/port and rpc host/port PR#172
- Created a typing.py file dedicated to storing type annotations
- Make response code more appropriate for Resource create route
- Fixed ParseDict/MessageToDict utils compatible in protobuf>=3.20
- Multi ENV Configuration PR#153
- Added Python 3.11 to the officially supported versions
- Upgraded requirements and removed
decamelize
dependency - Updated docs about using cases
If your project uses an outdated protobuf you may need to rebuild because all dependencies have been updated
- Integrated database migrate by
FastAPI-Migrate
- Declarative API simple resource version (Major feature in 4.0)
- upgrade grpc plugin versions
- Fixed importlib-metadata 5.0 conflict with kombu
- Fixed event stacking when no handler matched PR#139
- Event handler support class style
- Added bali.Environments
- Removed dependency python-jose[cryptography]==3.2.0
- Fixed event handler message queue message stacking
- Fixed generic rpc schema find issue when it been override
- The concept of
manager
is introduced 🥂 - New elegant model API methods 🥂 PR#122
- Added
db.Base
declarative_base - Application add
__clear__
for the convenience of unit testing - Generated gRPC servicer for register resources 🍕 PR#125
- Introduce
pytest-grpc
for RPC service testing
- Removed deprecated
connection.retry_on_deadlock_decorator
- Removed deprecated
connection.close_connection
- Updated related projects link comes from bali framework organization
- Removed deprecated
bali.schema
, usebali.schemas
instead - Marked
GRPCTestBase
as deprecated, will removed in v3.5 - Add more unit tests to ensure project quality 🏄
- Fixed initialize http service every requests
- Optimized and fixed ModelResource in resource register style
Event
supported- RabbitMQ fanout exchange support
- Compatible legacy SQLA-Wrapper SessionProxy
- Upgraded to sql-wrapper v5.0.0
- Supported uvicorn 0.15
- Model support asynchronous
- Resource support asynchronous
- Removed main.py default launch behavior
- timezone added
localtime
/localdate
- Adjusted version range dependency packages
- Resource layer base class, support elegant RESTful CRUD
- Refactor core layer, support multi dotenv variables
- Handle metadata or context
- Added custom route class support clear SQLAlchemy scoped session
- Added custom APIRouter support clear SQLAlchemy scoped session
- Fixed close and remove session when FastAPI request completed
- Added SQLAlchemy pool_recycle setting, default value is 2 hours
- Added timezone settings and utility
- RPC logging when defined log handler
- New model method bind to BaseModel: count() and get_fields()
- locked uvicorn version (0.12.3) to fixed runtime error
- Added db stub file to improve code intelligence
- Ensure db remove even though exception raised
- gRPC base tests lost
ProcessInterceptor
- Added FastAPI Request GZip decompression
- GZipMiddleware
- Added gRPC interceptor process setup & teardown
- Added FastAPI middleware process setup & teardown
- Added cache backend with Redis
- Added dateparse utility
- Fixed add_XXXServiceServicer_to_server in GRPCTestBase
- Added bali Application Wrapper
- Added
to_dict()
method to BaseModel
- Fixed lost package
pydantic-sqlalchemy
- Fixed BaseModel's updated_time
- Added model utility
BaseModel
- Added convenient way to generate Pydantic model
- Removed
NextBase
replaced bydb.Model
- Added
NextBase
enhanced declarative base
-- Added gRPC service unit test base class
- Fixed MAXIMUM_RETRY_ON_DEADLOCK not defined issue
- Added SQLAlchemy declarative Base
- Added code formatter
yapf
. - Added sqla-wrapper
- Migrated db layer to core
- Added gRPC service mixin to close database connection
- Added gRPC / FastAPI stack requirements