1.x Changelog#
1.51.11#
Fix missing
content-encodingheaders for gzip/brotli compressed files
1.51.10#
Fix
Partialmodifying dataclassesFix CLI –reload flag not working as expected
Add uvicorn to
cliextra
1.51.9#
Remove
pytest-lazy-fixtureas s dependency that was erroneously added in the previous release
1.51.8#
Fix a regression where setting
cache=Truein a route handler would cause errors when used with the redis cache backend
1.51.7#
Fix a regression in path resolution that prevented
404being raised for some invalid pathsFix a
DeprecationWarningfor the wrong namestarlite/middleware/session/__init__.py
1.51.6#
Fix optional query parameter openapi schema generation
1.51.5#
Fix domain configuration handling in JWT Auth
1.51.4#
support passing type encoders to
AbstractSecurityConfig
1.51.3#
Fix static path validation for
/
1.51.2#
Fix for security advisory starlite-api/starlite
1.51.1#
Fix critical bug in parsing headers @knowsuchagency
1.51.0#
fix optional sequence query param
fix memory leak in logging middleware
add missing CORS headers on exception responses
configure logger and force “DEBUG” level in debug mode
allow on-app-init hooks to modify initial state
add exception logging in debug mode
1.50.2#
return valid OAuth2 response body by default
correctly handle async-callable classes as dependencies
fix
type_encoderspickle bug when using response caching
1.50.1#
fix typo in jinja extra
1.50.0#
fix expected OpenAPI components in
test_merged_components_correctfix missing / wrong dependencies for Jinja2 extra
add msgspec typed decoding
add async test client
prioritize plugins when creating DTOs
1.49.0#
add reserved handler kwarg body
add support for Path alongside PurePath for serialization
add CLI commands for OpenAPI to TypeScript and OpenAPI schema generation
ensure HTTP requests with invalid payloads return 400.
ensure unique OpenAPI operation IDs
fix issue when response is an empty iterable of DTOs
fix meter in OpenTelemetry middleware being passed a
1.48.1#
rename
enc_hook->defaultinencode_jsonre-enable
super()calls toResponse.serializerextend serializable type
support application factory pattern in CLI
runcommand
1.48.0#
add docs versioning.
add support for layered
type_encoders.fix Sorting of tags in OpenAPI schema.
fix rendering of Enum params in OpenAPI.
fix swagger check for schema.
update
fast-query-parsersandpydantic.
1.47.0#
fix Don’t import
CookieBackendConfigby default instarlite.middleware.sessions.add Auto generation of DTOs from response data.
add Media type inference to HTTP handlers.
add Support differently named path parameters.
add
fast-query-parsers.
1.46.0#
add CLI.
add Support
Cookieinstances inResponse.set_cookie.add Support for controlling Pydantic models’ alias in OpenAPI Schema.
fix Jinja Template response ignores MediaType settings.
fix Make SessionAuth openapi_schema use backend_config.key.
fix Support utf-8 encoded strings in form data.
update Move
JinjaTemplateEngineandMakoTemplateEngineto contrib.update Update template config.
1.45.1#
fix controller support for mixed websocket and http route handlers.
fix serialization of pydantic types.
1.45.0#
add
MessagePacksupport and serialization withmsgspec.fix OpenAPI support for custom responses with generic types.
fix OpenAPI support for dynamic route handlers.
fix TestClient handling of escaped ampersands in query params.
fix logger propagation causing duplicate messages.
fix mounting starlette apps require trailing slashes.
fix rate-limiting of mount paths.
1.44.0#
add support for pagination.
add new multipart parser.
update
urlencodedparsing.fix
OpenAPIControllerwhen ASGIroot_pathis set on ASGI server.fix generator based dependencies cached responses.
1.43.1#
change
StructLoggingConfing.processortype hint toList.fix cookie caching issues.
honour documentation_only flag for cookies.
remove
SessionAuthimport.support legacy OpenAPI file upload format.
1.43.0#
add security module and JWT auth contrib.
deprecate
middleware.session.memcached_backend.MemcachedBackend.delete_all.
1.42.0#
support different types of path parameters for different leaf nodes.
add dependencies with
yield.update custom state injection and add
ImmutableState.fix #854 - Incorrect path resolution of ‘path’ type parameters.
fix #849 - Make LoggingMiddleware handle request bodies correctly.
1.41.0#
general performance optimization.
fix #841: change
middleware.session.sqlalchemy_backend.SessionModelMixin.datatoLargeBinary.
1.40.1#
fix for improper parsing of sequence query params declared in nested dependencies.
fix for header parsing from iterables.
1.40.0#
add
OpenTelemetryinstrumentation contrib package.add forward ref resolution to signature models, allowing for usage with future annotations.
add handling of compressed “body” in logging middleware.
breaking: removed per request dependency caching.
fix 404 where current node has handlers and child route has path params.
fix flaky SQLA-session-backend tests.
update OpenAPI generation to hide automatically created OPTIONS routes in schema.
update
AllowedHostsandCompressionMiddlewareapplication to handler level.update
request_factory.{_default_route_handler,default_app}to have deferred bootstrap.update the routing layer and param parsing to improve performance.
1.39.0#
add
CORSMiddleware.add
URL,URLPathandAddressdatastructures.add
send_as_attachmentflag forStaticFiles.add handling of
OPTIONSrequests.fix
content-dispositioninhtml_modeStaticFiles.fix
filenameparameter inFileResponseset forStaticFilesresponse.refactor builtin middlewares.
remove Python 3.7 support.
remove
starletteas a dependency.
1.38.0#
add
AllowedHostsMiddleware.add
*argsoverride toLoggerprotocol.add
QueryMultiDictforrequest.queryandsocket.query.add
ServerErrorMiddlewarewith own exception printer.fix resolving starlette responses.
update
path_paramskey to always exist in scope.
1.37.0#
add ‘gzip’ compression.
add
StaticFilesto replace Starlette’s version + support forfsspec.add
headdecorator.remove Starlette
Middlewaretype from typing.
1.36.0#
add
AbstractMiddlewareclass.add layering for opt dictionary.
add per request caching of dependencies.
add
Headers,MutableHeadersand updateFormMultiDictto use themultidictlibrary.fix asgi/websocket handlers when future annotations is used.
removed “method” from
ResponseExtractorField.update dependency resolution in kwargs model to run concurrently.
1.35.1#
fix hard dependency on external
cryptographypackage when importingstarlitefix invalid default
base_urlforTestClient
1.35.0#
add context-manager when using SQLAlchemy sessions.
add support for mounting ASGI applications.
fix
SQLAlchemyPlugin.to_dict()where instance has relationship raising an exception.update route registration to ensure unique handlers.
update routing logic to use a cleaner architecture.
update sessions to support explicitly setting to
Empty.update test client to run session creation in the client’s portal.
1.34.0#
add a
__test__ = Falseattribute to theTestClientso it won’t get collected by pytest together with an async test.add support for server-side sessions.
fix an issue where header values would be forced to lower case.
1.33.0#
add
TestClientto replace Starlette.
1.32.0#
add
BackgroundTaskandBackgroundTasksto replace Starlette.add
Etagsupport toFileand update response containers.add
RedirectResponse,FileResponseandStreamingResponseto replace Starlette.add
status_codesconstants.fix cache classes being coupled to
asyncio.update
Responseto replace Starlette.
1.31.0#
add support for ETag headers.
add support Cache-Control headers.
fix
Partialhandling ofClassVar.update CSRFMiddleware to support excluding routes.
1.30.0#
add
url_for_static_assetpath resolver function.fix SQLAlchemy plugin maps JSON column types to
Union[Dict, List]on DTOs.fix
SessionMiddlewarehandling non-session cookies withsessionanywhere in their name.update a
TypeVarforExceptionHandlerexception parameter.
1.29.0#
add native support for
TypedDictas data type.
1.28.1#
fix
QueueListenerHandlerusing stdlibQueueListenerHandler.update
pydantic-factoriestov1.11.1.
1.28.0#
add
csrf_inputtemplate context value.add
csrf_tokentemplate callable.add support for pydantic’s
ConstrainedDatein OpenAPI schema.fix
NoReturnas allowed return typing fordeletedecorators.fix signature model for dependency with
skip_validationanddefault.update
QueueListenerHandlerto log to stderr by default.update
TemplateEngineProtocolto support registering template callables.
1.27.0#
add
url_forfunction in templates.add
rediscache backend.add
memcachedcache backend.
1.26.1#
fix optional
UploadFilenot being allowed.
1.26.0#
add
cacheproperty getter toASGIConnection.add support for creating test sessions from raw session cookies.
add support for using custom
RequestandWebSocketclasses.fix large file uploads with
httpx.fix route handler name indexing.
update OpenAPIController to configure bundle download paths.
update
RequestFactoryto assign empty session dict by default.update
SQLAlchemyConfigsessionmaker* attributes to protocols.update
SQLAlchemyConfigto support either passing an instance or setting connection string.update templating to inject request into template context.
1.25.0#
add
app.route_reversemethod.update
SQLAlchemyPluginConfigto allow settingbefore_send_handler.update
SQLAlchemyPluginConfigto exposeengineandsessionmaker.update
SQLAlchemyPluginto handleSQLAlchemy 2.0column types.
1.24.0#
update
RequestFactory.update
SQLAlchemyPluginto support connection and dependency injection.
1.23.1#
fix
httpxbeing a required dependency.
1.23.0#
add
LoggingMiddleware.add support for configurable
exclude_from_authtoAbstractAuthenticationMiddleware.refactor to reduce cognitive complexity of code and increase performance.
1.22.0#
add
**kwargssupport to route handlers.breaking: remove
create_test_request.breaking: update Starlette to version
0.21.0. This version changes the TestClient to usehttpxinstead ofrequests, which is a breaking change.fix add default empty session to
RequestFactory.
1.21.2#
fix regression in accessing
request.headersdue to caching.
1.21.1#
add
StructLoggingConfig.
1.21.0#
add
on_app_inithook.add
testing.RequestFactoryhelper class for constructingRequestobjects.refactor logging config and fix default handlers.
update
Stateobject implementsMutableMappinginterface, attribute access/mutation,copy()anddict()methods.update internal implementations of
HTTPConnection,RequestandWebSocket.update typing of
__init__()method return annotations.
1.20.0#
update ASGI typings (
scope,receive,send,messageandASGIApp) to use strong types derived from asgiref.update
SessionMiddlewareto use custom serializer used on request.update
openapi-pydantic-schematov1.3.0adding support for__schema_name__.
1.19.0#
add
RateLimitMiddleware.add
media_typetoResponseContainer.add support for multiple cookies in
create_test_request.add support for multiple responses documentation by @seladb.
1.18.1#
fix
ResponseHeadernot being correctly encoded.update
SQLAlchemyPluginfor v2.0 compatibility.
1.18.0#
update
serializerto handleSecretStr,PurePathandPurePosixPath.update multipart handling to use starlite-multipart.
1.17.2#
update
Partialto support dataclasses.
1.17.1#
add
url_formethod similar to Starlette’s.fix
AsyncCallableto ensure wrapped methods remain unbound.
1.17.0#
add
SessionMiddleware.
1.16.2#
fix
before_requestregression causing it to not handle returned responses from the hook.
1.16.1#
fix validation errors raised when using custom state.
update
picologgingintegration to usepicologging.dictConfig.
1.16.0#
add
excludeparameter toAbstractAuthenticationMiddleware.add options to disable OpenAPI documentation sites and schema endpoints via config.
refactor
KwargsModel.
1.15.0#
add
examples/directory and tests for complete documentation examples.replace
pydantic-openapi-schemaimport fromv3_0_3with import fromv3_10_0.
1.14.1#
fix OpenAPI schema for
UploadFile.remove empty aliases from field parameters.
update OpenAPI security definitions into OpenAPI configuration.
1.14.0#
refactored brotli middleware typing.
update Extended
PluginProtocolwith anon_app_initmethod.
1.13.1#
fix
is_class_and_subclassnot handling type annotations.
1.13.0#
fix remove duplicated detail in
HTTPException.__str__().fix removed imports causing
MissingDependencyExceptionwherebrotlinot installed and not required.update Add
skip_validationflag toDependencyfunction.update Export starlite cookie to header and use it in CSRF middleware and OpenAPI response @seladb.
update cache protocol, cache backend integration including locking for sync access.
update consistent eager evaluation of async callables across the codebase.
1.12.0#
fix handling of “*” in routes by @waweber.
update middleware typing and addition of
DefineMiddleware.
1.11.1#
hotfix Exception raised by
issubclasscheck.
1.11.0#
fix
Streamhandling of generators.fix
UploadFileOpenAPI schema exception.refactor http and path param parsing.
update OpenAPIController to use render methods and configurable
rootclass var @mobiusxs.
1.10.1#
fix regression in StaticFiles of resolution of index.html in
html_mode=True.
1.10.0#
breaking update handling of status code <100, 204 or 304.
fix adding only new routes to the route_map by @Dr-Emann.
refactor tidy up exceptions.
refactor update
to_responseand datastructures.refactor update installation extras.
1.9.2#
update installation extras.
1.9.1#
add CSRF Middleware and config, @seladb.
add starlite ports of BackgroundTask and BackgroundTasks in
starlite.datastructures.
1.9.0#
add support for picologging.
update response headers, handling of cookies and handling of responses.
1.8.1#
add piccolo-orm plugin.
fix CacheConfig being broken due to pydantic validation bug.
1.8.0#
add Stoplights Elements OpenAPI support @aedify-swi
breaking replace openapi-pydantic-schema with pydantic-openapi-schema.
1.7.3#
fix to routes being allowed under static paths and improvements to path resolution @Dr-Emann
1.7.2#
add
OpenAPIConfig.use_handler_docstringparam.update
Partialto annotate fields of nested classes @Harry-Lees.
1.7.1#
add
Swagger-UIsupport @timwedde.add orjson support to websockets.
1.7.0#
add
TortoiseORMPlugin.
1.6.2#
remove
exrexfrom second hand dependencies.update error handling,
1.6.1#
add
after_responsehook.
1.6.0#
add support for layered parameters.
1.5.4#
add Brotli compression middleware by @cofin.
1.5.3#
fix route handler exception resolution.
update path param validation during registration @danesolberg.
1.5.2#
fix path resolution edge cases.
1.5.1#
add gzip middleware support.
fix dependency validation failure returning 400 (instead of 500).
fix raise exception on routes with duplicate path parameters @danesolberg.
1.5.0#
add
requestsas optional dependency @Bobronium.add layered middleware support.
fix CORS headers and middlewares not processing exceptions.
fix OpenAPI array items being double nested.
fix order of exception handlers.
update exception handlers to work in layers.
1.4.2#
fix
status_codemissing from exception OpenAPI documentation @timwedde.fix exception
extrabeing mistyped in OpenAPI documentation.
1.4.1#
add better detection of async callables.
fix
Nonereturn value from handler with204has empty response content.fix
Provideproperly detects async@classmethodas async callables.update exception handlers to be configurable at each layer of the application.
1.4.0#
add dependency function @peterschutt.
add raise
ImproperConfiguredExceptionwhen user-defined generic type resolved as openapi parameter @peterschutt.add selective deduplication of openapi parameters @peterschutt.
add test for generic model injection @Goldziher.
update Starlette to 0.20.3.
1.3.9#
include dependencies in docs @timwedde.
1.3.8#
fix
Router.tagsbeing omitted from the docs @peterschutt.
1.3.7#
fix logging configure hanging in startup.
1.3.6#
update validation errors to return more useful json objects.
1.3.5#
add memoization to openAPI schema.
update Starlette to 0.20.1.
1.3.4#
fix
DTOFactoryhandling of optional fields @peterschutt.
1.3.3#
update pydantic to 1.9.1.
1.3.2#
fix static path resolution when static files are served from “/”.
refactor logging.
1.3.1#
fix reserved keywords appearing in OpenAPI documentation @Joko013.
1.3.0#
update middleware call order @slavugan.
1.2.5#
fix ‘request.body()’ being only readable once by setting the read result into scope.
1.2.4#
update
Starletteto version0.19.0.
1.2.3#
fix regression in error handling, returning 404 instead of 500.
update
LoggingConfigto be non-blocking @madlad33.
1.2.2#
fix regression with controller multi-registration.
1.2.1#
fix handling of empty request body @t1waz.
1.2.0#
add run_in_thread configuration.
1.1.1#
add tags support to Controller @tclasen.
update OpenAPI operationIds to be more humanized @tclasen.
1.1.0#
add response caching support.
1.0.5#
fix typing of
Partial@to-ph.
1.0.4#
update
Request.stateto be defined already in the application @ashwinvin.
1.0.3#
add argument validation on
ParameterandBody.
1.0.2#
fix lifecycle injection of application state into class methods.
1.0.1#
fix
MissingDependencyExceptioninheritance chain.fix
ValidationExceptionmissing as export in__init__method.
1.0.0#
add template support @ashwinvin.
update
starlite.requestby renaming it tostarlite.connection.update the kwarg parsing and data injection logic to compute required kwargs for each route handler during application bootstrap.
update the redoc UI path from
/schema/redocto/schema@yudjinn.
0.7.2#
add missing support for starlette background tasks.
fix error with static files not working with root route.
fix function signature modelling ignoring non-annotated fields.
fix headers being case-sensitive.
0.7.1#
update handling of paths without parameters.
0.7.0#
add
@asgiroute handler decorator.update query parameters parsing.
update request-response cycle handling.
update rewrote route resolution.
0.6.0#
add support for multiple paths per route handler.
add support for static files.
update
DTOFactory.update
PluginProtocol- addfrom_dictmethods.update
SQLAlchemyPlugin.update dependency injection to allow for dependency injection into dependencies.
update lifecycle support to allow for application state injection.
update route handlers and dependencies to allow for application state injection.
0.5.0#
update BaseRoute to not inherit from Starlette, allowing for optimization using
_slots_.update RouteHandlers from being pydantic models to being custom classes, allowing for optimization using
_slots_.update base path handling in controllers @vincentsarago.
0.4.3#
fix dto factory handling of forward refs.
0.4.2#
fix Parameter default not being respected.
0.4.1#
add support for
before_requestandafter_requesthooks.fix sql_alchemy requirement not being isolated to the plugin only.
0.4.0#
add
DTOFactory.add
SQLAlchemyPlugin.add plugin support.
fix orjson compatibility @vincentsarago.
0.3.0#
update openapi configuration.
0.2.1#
fix regression in handler validation.
0.2.0#
add support for websockets.
update multipart data handling to support mixed fields.
0.1.6#
fix monkey patch “openapi-schema-pydantic” to change Schema.Config.extra to Extra.ignore.
0.1.5#
fix monkey patch “openapi-schema-pydantic” to change Schema.extra to Extra.ignore.
0.1.4#
fix include_in_schema for routes always being true.
fix update pydantic-factories to v1.1.0, resolving compatibility issues with older versions of pydantic.
0.1.3#
add
NotFoundException.update dependencies to use pydantic-factories v1.0.0.
0.1.2#
fix
requestsnot being included in project dependencies.update pydantic to v1.9.0.
0.1.1#
add missing exports to init.
0.1.0#
initial release.