- Adding a new filters.OrderingFilter to allow array ordering using list directly as supported by gRPC
- Changing lark-parser dependency to lark
- Support for Decimal type in type hints for proto generation
- Dropping not working support for Django < 4
- Dropping support for python < 3.10
- Add Django version into the CI to assure that supporting version still works
- Made Internal Proxy Request/Response inherit from django Request/Response
- Create Request Meta and Response Headers interceptor/proxy to be able to get/set correctly headers for both request and response
- Create the http_to_grpc decorator to provide a way to use django decorator in DSG
- Add cache_enpoint, cache_endpoint_with_deleter, vary_on_metadata decorator
- Stop allowing metadata that doesn't have lower case key and metadata values that are not str or bytes in FakeGrpc testing tool
- Security dependencies update
- Minor documentation fixes
- Add new "add_registered_method_handlers" method in FakeServer class for test
- use "including_default_value_fields" or "always_print_fields_with_no_presence" depending of protobuf version
- Fix the capacity to read from iterator stream in tests
- Fix circular import
- Improve message to data logic
- Fix serializer using Django model property not correctly finding the good proto type
- Fix stream response tests
- Fix _get_resource_file_name from protoc depend of grpc tools version
- Change the logic for default value when data are not set or set to default value in grpc message to be close of what a DRF user could expect
- Add extra options to the runserver command to allow custom parameters to grpcrunaioserver
- Fix ProtoMessage can be string in generation plugin
- Fix pagination_class attr of service can be set to None isntead of not set at all
- Change linter to ruff
- Add healthcheck support
- Improve Stream request unit test and example
- Fix type hints not correctly working for python >3.10
- Fix wrong import
- Fix old args compatibility in grpc_action decorator and not only GrpcAction class
- Fix docs build
- Add possibility to filter with request args instead of metadata
- Present a new generation plugin system
- Present a proto NameConstructor interace to customize the proto message names
- Add the new reworked documentation using read the docs
- Fix python packege incompatibility
- Clean some tests
- Rework gRPC exception to inherit from rest_framework exception instead of python base Exception
- Improve logging system and tooling to be more generic and overridable
- Fix wrongly formated import
- Add async serializer methods as asave, ais_valid, acreate and aupdate
- Update minor doc
- Add some HTTP request functionnality to InternalHttpRequest
- Add support for serializer adata
- Fix Auth middleware not async safe
- Fix recursive serializer
- Fix some async issue with filter_queryset
- Add SAFE_ACTIONS Tuple
- Make django middleware working or at least not crashing inside grpc_middleware
- Adding logic for extra log context if needed.
- Refactoring some of the internal container/proxy/http classes to have cleaner logic
- Fix calling root handler with good sync/async context in generateproto
- Fix typo in AlreadyExist Exception
- Add locale middleware support
- Merge ROOT metadata key into HEADERS proxy context without needed to use HEADERS metadat key
- Force ROOT_HANDLERS_HOOK to be called in sync mode if not coroutine to be able to make db call inside it
- Fix exception in logging for python 3.11 & use github action with multiple python version to verify integrity in multiple python version
- Refactor proto generation to support optional
- Deprecate the use of cardinality keywork in "type" key in grpc action decorator and introduce the new "cardinality" key.
- Add async function like afilter_queryset, aget_object, aget_serializer, amessage & acheck_object_permissions
- Support first middleware logic
- Fix the reuse old number that was not working because of
__custom__
field
- Avoid breaking changes with fields number changes by trying to reuse old number
- Display log when getting an unexpected exception in a grpc call
- Uniformize the status code returned by exceptions
- Test and improve logger emitter and exception catcher
- Add log when receiving an incoming grpc-request
- Add log when receiving an incoming grpc-request
- Not stop current thread to send a log if server is launch in sync mode
- Fix a log call to not be send
- Add option to not send log to server
- Allow logging to work in async mode
- Fix metadata not send in async stub for test (FakeGrpcClass)
- Integrate handle exception to improve monitoring if you want to
- Integrate logging handler option
- Close old connection on get_autocommit True to avoid production bug of db already closed
- use w+ when generating proto and r+ when checking
- Update dependency
- Fix async context.write not await and add an FakeAsyncContext for Fake gRPC toolkit
- Fix raise not found instead of constext.abort
- Fix context abort await on permission denied
- BaseSerializer now usable directly with default methods
- Fix concurrency call overriding request and context
- Use os.environ instead of settings fpr getting project name
- Add project name in package
- Add details for generateproto --check command
- Add option check to generateproto command for ci
- Fix serializer when reading many data
- fix async before action in async_handler
- Refacto the servicer to be a proxy instead of a wrapper to help code structuration
- Write async mixins
- Support async method in FakeGrpc for testing
- Add test for sync mixins and async mixins
- change context key for the auth token from
token
toauth
- Support for array field of json field
- Support JsonField and ArrayField in proto generation
- Support custom field with the name
__custom__[proto_type]__[proto_field_name]__
- Remove support for
__link--[proto_type]--[proto_field_name]__
,__repeated-link--[proto_type]--[proto_field_name]__
and__count__
as custom is a more generalist way to do it. See list messages and test example - Add utils AppHandlerRegistry to register easily servicer. See test for example
- fix metadata key case -> now ignored, developper can send the key independent of the case
- fix exceptions messages not serializable
- nested field support
- fix list mixins return format
- need proto_class_list in serializer