- Update README [psanlorenzo]
- Use orjson instead of json/ujson [masipcat]
- AsgiStreamReader.read() can return bytes or bytearray [masipcat]
- Changes in ICatalogUtility, DefaultSearchUtility and @search endpoints [masipcat]
- Update react-gmi v 0.4.0 [jordic]
- Fix more antipatterns [lferran]
- Fix integer query param validation [lferran]
- Handle http.disconnect (and other types of messages) while reading the request body [masipcat]
- Be able to have async schema invariants [vangheem]
- Provide better validation for json schema field [vangheem]
- Change AttributeError to HTTPPreconditionFailed in FileManager [masipcat]
- Reverted "Replaced Response.content_{type,length} with Response.set_content_{type,length}". Using setter to avoid breaking Response.content_{type,length} = ... [masipcat]
- Handle error when "None" value provided for behavior data [vangheem]
- Handle connection reset errors on file download [vangheem]
- Changed error handling logic: Guillotina (asgi app) catches all errors and returns a response for the ones that implements the handler IErrorResponseException. Otherwise raises the exception and is handled by ErrorsMiddleware [masipcat]
- Add "endpoint" in scope to let sentry know the view associated to the request [masipcat]
- Request.read() can return bytes or bytesarray [masipcat]
- Replaced Response.content_{type,length} with Response.set_content_{type,length} [masipcat]
- Breaking API change: Search GET Search get responds a json with items and items_total like plone rest api [bloodbare]
- Breaking Internal API change: Search Catalog utility search is the public search operation that is parsed and query the internal implementation [bloodbare]
- Fixing WS bugs and redis unsubscription [bloodbare]
- Add max_ops property to PatchField, BucketListField and BucketDictField [vangheem]
- Add clear action to list, dict and annotation patch fields [vangheem]
- Fix validation authorization in case token is expired [bloodbare]
- Set content type to response in renderers [masipcat]
- Import aiohttp only when recaptcha is configured [masipcat]
- Some asyncpg settings do not work with storages [vangheem]
- Improve performance of bucket dict field [vangheem]
- Moving validation endpoint from traversal to query param [bloodbare]
- Small improvement in asgi.py
- Call IIDGenerator with apply_coro [masipcat]
- Moved the ASGI logic from ASGIResponse and ASGISimpleResponse to class Response [masipcat]
- Add mail from on email validation [bloodbare]
- Validate POST @sharing payload too [lferran]
- Fix asyncpg integration with connection leaks on timeout [vangheem]
- Implemented endpoint @delete for IAttachments and IMultiAttachments [masipcat]
- Adding session manager support with redis backend [bloodbare]
- Registration workflow with generic validation package on contrib [bloodbare]
- Reset password workflow with generic validation package on contrib [bloodbare]
- Be able to customize pg db in test fixtures [vangheem]
- More type annotations [vangheem]
- Add pg db constraint for annotation data [vangheem]
- Fix DummyCache.set type signature to be the same as base class [vangheem]
- Jinja template engine to render on executors [bloodbare]
- Recaptcha support for public endpoints [bloodbare]
- Alpha version of @guillotinaweb/react-gmi available at /+manage [jordic]
- Improvements in contrib.dbusers [masipcat]
- Execute _clean_request() after middlewares execution [masipcat]
- Correctly bubble http errors for file downloads [vangheem]
- Fix command 'create' [masipcat]
- Remove unused methods in Response [masipcat]
- Add missing dependencies in setup.py [masipcat]
- Better error handling on redis connection issues [vangheem]
- Run _update_from_pytest_markers() after configuring db settings [masipcat]
- Fix validating array params in query parameters [lferran]
- Add open api tests and fix ones that do not pass tests [vangheem]
- Fix bug in traversal introduced when added support for asgi middlewares [masipcat]
- Fix value_deserializer() when field.key_type._type is None [masipcat]
- Fix automatic type conversion on nested fields. Fixes #832 [vangheem]
- Fix bug on swagger with endpoints without explicit security declarations [jordic]
- Fix bug on pgcatalog when using it without a request [jordic]
- Be able to start database transaction before transaction has started it without causing errors [vangheem]
- More detailed information in ValidationErrors [masipcat]
- Provide way to configure content types as not globally addable [lferran]
- Fix Users and Groups to be addable only on manager folders [lferran]
- Fix optimized lookup to work with fields that do not have _type [vangheem]
- Prevent creating containers with empty id [lferran]
- Fix query param validation [vangheem]
- Optimize json deserialization [vangheem]
- Implemented 'ErrorsMiddleware' that catches all undhandled errors [masipcat]
- Small changes to the middleware logic [masipcat]
- Added IIDChecker adapter [vangheem]
- Schema fields default value for required is now False [vangheem]
- Denormalized group info when user is added to a group throught users endpoint (issue #806) [jordic]
- Add Range header support [vangheem]
- Be able to disable supporting range headers in IFileManager.download [vangheem]
- Fix validating None values in required fields [vangheem]
- Add localroles to @available-roles [jordic]
- Add no-install-recommends to Dockerfile (apt options) [svx]
- Improving ValidationErrors messages [masipcat]
- Fix error with requeued async queue tasks
- Added valid_id_characters app setting [vangheem]
- Better CancelledError handling in resolving a request [vangheem]
- Fix duplicate behaviors interfaces in get_all_behavior_interfaces() [qiwn]
- Fix adding duplicate behaviors [qiwn]
- Improved server command and added 'server_settings' [masipcat]
- Added property 'status' to Response [masipcat]
- Adapt to HTTP1.1 protocol on uvicorn by default [bloodbare]
- PatchField: added operation "multi" [masipcat]
- @duplicate: added option to reset acl
- Make pytest.mark.app_settings work in older pytest versions too [lferran]
- @move: destination id conflict should return 409 error, not 412 [inaki]
- Explicit loop to execute on tests [bloodbare]
- Fix IAbsoluteUrl() returns request query [masipcat]
- Added attribute cookies to class Request() [masipcat]
- Added uvicorn as a guillotina requirement [masipcat]
- Added endpoint @available-roles on container [jordic]
- Add configurable expiration for jwt.tokens [jordic]
- Move tags to a context property to make it indexable on json [bloodbare]
- Added async property Request.body_exists [masipcat]
- Fixed fixture 'guillotina' [masipcat]
- Make sure that guillotina uses uvloop on starting if its installed [bloodbare]
- Make sure uvicorn uses the same loop as guillotina startup [bloodbare]
- Fix tests in 'test_cache_txn.py' and 'test_setup.py' being skipped [masipcat]
- Replaced aiohttp with ASGI (running with uvicorn by default) [dmanchon,masipcat,vangheem]