- Add DynamoDB session interface (#214).
- Add ability to install client libraries for backends using optional dependencies (extras) (#228).
- Include prematurely removed
cachelibdependency. Will be removed in 1.0.0 to be an optional dependency (#223).
- Access session interfaces via subfolder, for example
flask_session.redis.RedisSessionInterface(2bc7df). - Deprecate
picklein favor ofmsgspec, which is configured withSESSION_SERIALIZATION_FORMATto choose between'json'and'msgpack'. All sessions will convert to msgspec upon first interaction with 0.7.0. Pickle is still available to read existing sessions, but will be removed in 1.0.0. (c7f8ce, c7f8ce) - Deprecate
SESSION_USE_SIGNER(a5dba7). - Deprecate :class:`flask_session.filesystem.FileSystemSessionInterface` in favor of the broader :class:`flask_session.cachelib.CacheLibSessionInterface` (2bc7df).
- Add time-to-live expiration for MongoDB (9acee3).
- Add retry for SQL based storage (#211).
- Add
flask session_cleanupcommand and alternatively,SESSION_CLEANUP_N_REQUESTSfor SQLAlchemy or future non-TTL backends (#211). - Add type hints (7d7d58).
- Add logo and additional documentation.
- Add vary cookie header when session modified or accessed as per flask's built-in session (7ab698).
- Add regenerate method to session interface to mitigate fixation (#27, #39)(80df63).
- Remove null session in favour of relevant exception messages (#107, #182)(d7ed1c).
- Drop support for Python 3.7 which is end-of-life and precludes use of msgspec (bd7e5b).
- Prevent session identifier reuse on storage miss (#76).
- Abstraction to improve consistency between backends.
- Enforce
PERMANENT_SESSION_LIFETIMEas expiration consistently for all backends (#81)(86895b). - Specifically include backend session interfaces in public API and document usage (#210).
- Fix non-permanent sessions not updating expiry (#221).
- Use :meth:`~ServerSideSession.should_set_cookie` for preventing each request from saving the session again.
- Do not store a permanent session that is otherwise empty.
- Use secrets module to generate session identifiers, with 256 bits of entropy (was previously 122).
- Explicitly name support for
python-memcached,pylibmcandpymemcacheforcachelibbackend.
- Introduce
SESSION_KEY_LENGTHto control the length of the session key in bytes, default is 32. - Support SQLAlchemy
SESSION_SQLALCHEMY_SEQUENCE,SESSION_SQLALCHEMY_SCHEMAandSESSION_SQLALCHEMY_BINDKEY
- Drop support for Redis < 2.6.12.
- Fix pymongo 4.0 compatibility.
- Fix expiry is None bug in SQLAlchemy.
- Fix bug when existing SQLAlchemy db instance.
- Fix empty sessions being saved.
- Support Flask 3.0 and Werkzeug 3.0
- Drop support for Python < 3.7.
- Switch to
pyproject.tomland Flit for packaging. - Move to Pallets Community Ecosystem for community-driven maintenance.
- Replace use of
session_cookie_namefor Flask 2.3 compatibility.
- Temporarily pin Flask < 2.3.
- Added support for
SESSION_COOKIE_SAMESITE.
- Changed
werkzeug.contrib.cachetocachelib.
SqlAlchemySessionInterfaceis usingVARCHAR(255)to store session id now.SqlAlchemySessionInterfacewon't run db.create_all anymore.
SqlAlchemySessionInterfaceis usingLargeBinarytype to store data now.- Fixed
MongoDBSessionInterfacedeletemethod not found. - Fixed
TypeErrorwhen gettingstore_idusing a signer.
- Fixed signing failure in Python 3.
- Fixed
MongoDBSessionInterfacefailure in Python 3. - Fixed
SqlAlchemySessionInterfacefailure in Python 3. - Fixed
StrictRedissupport.
- Added support for non-permanent session.
- Fixed signing failure.
- Added
SqlAlchemySessionInterface. - Added support for cookie session id signing.
- Various bugfixes.
- Fixed MongoDB backend
InvalidDocumenterror.
- First public preview release.