1.x Changelog#
1.51.11#
Fix missing
content-encoding
headers for gzip/brotli compressed files
1.51.10#
Fix
Partial
modifying dataclassesFix CLI –reload flag not working as expected
Add uvicorn to
cli
extra
1.51.9#
Remove
pytest-lazy-fixture
as s dependency that was erroneously added in the previous release
1.51.8#
Fix a regression where setting
cache=True
in a route handler would cause errors when used with the redis cache backend
1.51.7#
Fix a regression in path resolution that prevented
404
being raised for some invalid pathsFix a
DeprecationWarning
for 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_encoders
pickle bug when using response caching
1.50.1#
fix typo in jinja extra
1.50.0#
fix expected OpenAPI components in
test_merged_components_correct
fix 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
->default
inencode_json
re-enable
super()
calls toResponse.serializer
extend serializable type
support application factory pattern in CLI
run
command
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-parsers
andpydantic
.
1.47.0#
fix Don’t import
CookieBackendConfig
by 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
Cookie
instances 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
JinjaTemplateEngine
andMakoTemplateEngine
to 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
MessagePack
support 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
urlencoded
parsing.fix
OpenAPIController
when ASGIroot_path
is set on ASGI server.fix generator based dependencies cached responses.
1.43.1#
change
StructLoggingConfing.processor
type hint toList
.fix cookie caching issues.
honour documentation_only flag for cookies.
remove
SessionAuth
import.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.data
toLargeBinary
.
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
OpenTelemetry
instrumentation 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
AllowedHosts
andCompressionMiddleware
application 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
,URLPath
andAddress
datastructures.add
send_as_attachment
flag forStaticFiles
.add handling of
OPTIONS
requests.fix
content-disposition
inhtml_mode
StaticFiles.fix
filename
parameter inFileResponse
set forStaticFiles
response.refactor builtin middlewares.
remove Python 3.7 support.
remove
starlette
as a dependency.
1.38.0#
add
AllowedHostsMiddleware
.add
*args
override toLogger
protocol.add
QueryMultiDict
forrequest.query
andsocket.query
.add
ServerErrorMiddleware
with own exception printer.fix resolving starlette responses.
update
path_params
key to always exist in scope.
1.37.0#
add ‘gzip’ compression.
add
StaticFiles
to replace Starlette’s version + support forfsspec
.add
head
decorator.remove Starlette
Middleware
type from typing.
1.36.0#
add
AbstractMiddleware
class.add layering for opt dictionary.
add per request caching of dependencies.
add
Headers
,MutableHeaders
and updateFormMultiDict
to use themultidict
library.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
cryptography
package when importingstarlite
fix invalid default
base_url
forTestClient
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__ = False
attribute to theTestClient
so 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
TestClient
to replace Starlette.
1.32.0#
add
BackgroundTask
andBackgroundTasks
to replace Starlette.add
Etag
support toFile
and update response containers.add
RedirectResponse
,FileResponse
andStreamingResponse
to replace Starlette.add
status_codes
constants.fix cache classes being coupled to
asyncio
.update
Response
to replace Starlette.
1.31.0#
add support for ETag headers.
add support Cache-Control headers.
fix
Partial
handling ofClassVar
.update CSRFMiddleware to support excluding routes.
1.30.0#
add
url_for_static_asset
path resolver function.fix SQLAlchemy plugin maps JSON column types to
Union[Dict, List]
on DTOs.fix
SessionMiddleware
handling non-session cookies withsession
anywhere in their name.update a
TypeVar
forExceptionHandler
exception parameter.
1.29.0#
add native support for
TypedDict
as data type.
1.28.1#
fix
QueueListenerHandler
using stdlibQueueListenerHandler
.update
pydantic-factories
tov1.11.1
.
1.28.0#
add
csrf_input
template context value.add
csrf_token
template callable.add support for pydantic’s
ConstrainedDate
in OpenAPI schema.fix
NoReturn
as allowed return typing fordelete
decorators.fix signature model for dependency with
skip_validation
anddefault
.update
QueueListenerHandler
to log to stderr by default.update
TemplateEngineProtocol
to support registering template callables.
1.27.0#
add
url_for
function in templates.add
redis
cache backend.add
memcached
cache backend.
1.26.1#
fix optional
UploadFile
not being allowed.
1.26.0#
add
cache
property getter toASGIConnection
.add support for creating test sessions from raw session cookies.
add support for using custom
Request
andWebSocket
classes.fix large file uploads with
httpx
.fix route handler name indexing.
update OpenAPIController to configure bundle download paths.
update
RequestFactory
to assign empty session dict by default.update
SQLAlchemyConfig
sessionmaker* attributes to protocols.update
SQLAlchemyConfig
to support either passing an instance or setting connection string.update templating to inject request into template context.
1.25.0#
add
app.route_reverse
method.update
SQLAlchemyPluginConfig
to allow settingbefore_send_handler
.update
SQLAlchemyPluginConfig
to exposeengine
andsessionmaker
.update
SQLAlchemyPlugin
to handleSQLAlchemy 2.0
column types.
1.24.0#
update
RequestFactory
.update
SQLAlchemyPlugin
to support connection and dependency injection.
1.23.1#
fix
httpx
being a required dependency.
1.23.0#
add
LoggingMiddleware
.add support for configurable
exclude_from_auth
toAbstractAuthenticationMiddleware
.refactor to reduce cognitive complexity of code and increase performance.
1.22.0#
add
**kwargs
support to route handlers.breaking: remove
create_test_request
.breaking: update Starlette to version
0.21.0
. This version changes the TestClient to usehttpx
instead ofrequests
, which is a breaking change.fix add default empty session to
RequestFactory
.
1.21.2#
fix regression in accessing
request.headers
due to caching.
1.21.1#
add
StructLoggingConfig
.
1.21.0#
add
on_app_init
hook.add
testing.RequestFactory
helper class for constructingRequest
objects.refactor logging config and fix default handlers.
update
State
object implementsMutableMapping
interface, attribute access/mutation,copy()
anddict()
methods.update internal implementations of
HTTPConnection
,Request
andWebSocket
.update typing of
__init__()
method return annotations.
1.20.0#
update ASGI typings (
scope
,receive
,send
,message
andASGIApp
) to use strong types derived from asgiref.update
SessionMiddleware
to use custom serializer used on request.update
openapi-pydantic-schema
tov1.3.0
adding support for__schema_name__
.
1.19.0#
add
RateLimitMiddleware
.add
media_type
toResponseContainer
.add support for multiple cookies in
create_test_request
.add support for multiple responses documentation by @seladb.
1.18.1#
fix
ResponseHeader
not being correctly encoded.update
SQLAlchemyPlugin
for v2.0 compatibility.
1.18.0#
update
serializer
to handleSecretStr
,PurePath
andPurePosixPath
.update multipart handling to use starlite-multipart.
1.17.2#
update
Partial
to support dataclasses.
1.17.1#
add
url_for
method similar to Starlette’s.fix
AsyncCallable
to ensure wrapped methods remain unbound.
1.17.0#
add
SessionMiddleware
.
1.16.2#
fix
before_request
regression causing it to not handle returned responses from the hook.
1.16.1#
fix validation errors raised when using custom state.
update
picologging
integration to usepicologging.dictConfig
.
1.16.0#
add
exclude
parameter 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-schema
import fromv3_0_3
with 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
PluginProtocol
with anon_app_init
method.
1.13.1#
fix
is_class_and_subclass
not handling type annotations.
1.13.0#
fix remove duplicated detail in
HTTPException.__str__()
.fix removed imports causing
MissingDependencyException
wherebrotli
not installed and not required.update Add
skip_validation
flag toDependency
function.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
issubclass
check.
1.11.0#
fix
Stream
handling of generators.fix
UploadFile
OpenAPI schema exception.refactor http and path param parsing.
update OpenAPIController to use render methods and configurable
root
class 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_response
and 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_docstring
param.update
Partial
to annotate fields of nested classes @Harry-Lees.
1.7.1#
add
Swagger-UI
support @timwedde.add orjson support to websockets.
1.7.0#
add
TortoiseORMPlugin
.
1.6.2#
remove
exrex
from second hand dependencies.update error handling,
1.6.1#
add
after_response
hook.
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
requests
as 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_code
missing from exception OpenAPI documentation @timwedde.fix exception
extra
being mistyped in OpenAPI documentation.
1.4.1#
add better detection of async callables.
fix
None
return value from handler with204
has empty response content.fix
Provide
properly detects async@classmethod
as async callables.update exception handlers to be configurable at each layer of the application.
1.4.0#
add dependency function @peterschutt.
add raise
ImproperConfiguredException
when 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.tags
being 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
DTOFactory
handling 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
Starlette
to version0.19.0
.
1.2.3#
fix regression in error handling, returning 404 instead of 500.
update
LoggingConfig
to 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.state
to be defined already in the application @ashwinvin.
1.0.3#
add argument validation on
Parameter
andBody
.
1.0.2#
fix lifecycle injection of application state into class methods.
1.0.1#
fix
MissingDependencyException
inheritance chain.fix
ValidationException
missing as export in__init__
method.
1.0.0#
add template support @ashwinvin.
update
starlite.request
by 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/redoc
to/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
@asgi
route 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_dict
methods.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_request
andafter_request
hooks.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
requests
not being included in project dependencies.update pydantic to v1.9.0.
0.1.1#
add missing exports to init.
0.1.0#
initial release.