-
-
Notifications
You must be signed in to change notification settings - Fork 357
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Server-side sessions and unified session backends (#630)
* Initial draft for server-side sessions and unified session-middleware interface * Implement SessionMiddleware with backends, basic server-session backends. Integrate backends with existing tests * Initial draft for server-side sessions and unified session-middleware interface * Implement SessionMiddleware with backends, basic server-session backends. Integrate backends with existing tests * Initial draft for server-side sessions and unified session-middleware interface * Implement SessionMiddleware with backends, basic server-session backends. Integrate backends with existing tests * v1.30.0 * docs: add mookrs as a contributor for doc (#637) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> * Minor code cleanup * Improve SQLAlchemy backend, support sync/async * Improved backwards compatibility, typing and tests * Simplify session backend configuration * Add expiry mechanism to FakeAsyncMemcached, improve typing * Test all session backends * Remove a merge artifact * Remove identity-source support for now * Add docstrings to session backends, improve typing * Minor styling fixes * Add reference docs for session middleware * Fix type annotations * Initial draft for server-side sessions and unified session-middleware interface * Implement SessionMiddleware with backends, basic server-session backends. Integrate backends with existing tests * Initial draft for server-side sessions and unified session-middleware interface * Implement SessionMiddleware with backends, basic server-session backends. Integrate backends with existing tests * Initial draft for server-side sessions and unified session-middleware interface * Implement SessionMiddleware with backends, basic server-session backends. Integrate backends with existing tests * v1.30.0 * docs: add mookrs as a contributor for doc (#637) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> * Minor code cleanup * Improved backwards compatibility, typing and tests * Test all session backends * Remove a merge artifact * session docs draft * Disable MD052 in markdownlint MD052 messes with mkdocs material's code highlighting * Add aiomcache and redis types to pylint dependencies * Remove `backend` property from BaseBackendConfig. This proved difficult to type correctly, and I was hitting python/mypy#12113 (or some variety), so I removed it for now * Add / update reference and usage documentation + some docstrings for session middleware * Remove unused imports * Move session backend config to the top * Some minor documentation adjustments * Improve docstrings Add missing args and returns, add missing docstrings * Rename SessionBackend > BaseSessionBackend * Add _sync suffix to private synchronous methods * Move all type variables to top of the file * Use explicit "import from" consistently * Make FileStorageMetadataWrapper a NamedTuple * Add `make_filename` option to FileBackendConfig * Move fake_memcached.FakeAsyncMemcached to tests/mocks.py * Implement MemoryBackend using SimpleCacheBackend * Add __slots__ for session middleware * Add support for all session backends to TestClient * Update starlite/middleware/session/sqlalchemy_backend.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Update starlite/testing/test_client/client.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Update starlite/middleware/session/sqlalchemy_backend.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Update starlite/middleware/session/memcached_backend.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Update starlite/middleware/session/sqlalchemy_backend.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Update starlite/middleware/session/cookie_backend.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Update starlite/middleware/session/base.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Update starlite/testing/test_client/client.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Update starlite/testing/test_client/client.py Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com> * Implement support for session backends in TestClient * Make sqlalchemy session examples "run as-is" * Fix lower-casing of header values. (#693) A bug was introduced as part of #626, that would lower case header values * Remove types-redis * Add middleware bypassing to SessionMiddleware Co-authored-by: Peter Schutt <peter.github@proton.me> Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> Co-authored-by: Na'aman Hirschfeld <nhirschfeld@gmail.com>
- Loading branch information
1 parent
9d9bd6d
commit 55d7389
Showing
58 changed files
with
3,010 additions
and
766 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -97,3 +97,8 @@ article center > p { | |
border-top: none; | ||
} | ||
} | ||
|
||
|
||
dt { | ||
font-weight: bolder; | ||
} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# Middleware | ||
|
||
::: starlite.middleware.session.SessionMiddleware | ||
options: | ||
members: | ||
- __init__ |
40 changes: 40 additions & 0 deletions
40
docs/reference/middleware/session-middleware/1-base-backend.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# Base backend | ||
|
||
::: starlite.middleware.session.base.BaseBackendConfig | ||
options: | ||
members: | ||
- key | ||
- max_age | ||
- scopes | ||
- path | ||
- domain | ||
- secure | ||
- httponly | ||
- samesite | ||
- middleware | ||
|
||
::: starlite.middleware.session.base.ServerSideSessionConfig | ||
options: | ||
members: | ||
- session_id_bytes | ||
|
||
::: starlite.middleware.session.base.BaseSessionBackend | ||
options: | ||
members: | ||
- __init__ | ||
- serialise_data | ||
- deserialise_data | ||
- store_in_message | ||
- load_from_connection | ||
|
||
::: starlite.middleware.session.base.ServerSideBackend | ||
options: | ||
members: | ||
- __init__ | ||
- store_in_message | ||
- load_from_connection | ||
- get | ||
- set | ||
- delete | ||
- delete_all | ||
- generate_session_id |
16 changes: 16 additions & 0 deletions
16
docs/reference/middleware/session-middleware/2-cookie-backend.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Cookie Backend | ||
|
||
::: starlite.middleware.session.cookie_backend.CookieBackendConfig | ||
options: | ||
members: | ||
- secret | ||
|
||
::: starlite.middleware.session.cookie_backend.CookieBackend | ||
options: | ||
members: | ||
- __init__ | ||
- dump_data | ||
- load_data | ||
- get_cookie_keys | ||
- store_in_message | ||
- load_from_connection |
17 changes: 17 additions & 0 deletions
17
docs/reference/middleware/session-middleware/3-file-backend.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# File backend | ||
|
||
::: starlite.middleware.session.file_backend.FileBackendConfig | ||
options: | ||
members: | ||
- storage_path | ||
- make_filename | ||
|
||
::: starlite.middleware.session.file_backend.FileBackend | ||
options: | ||
members: | ||
- __init__ | ||
- get | ||
- set | ||
- delete | ||
- delete_all | ||
- delete_expired |
15 changes: 15 additions & 0 deletions
15
docs/reference/middleware/session-middleware/4-memcached-backend.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Memcached backend | ||
|
||
::: starlite.middleware.session.memcached_backend.MemcachedBackendConfig | ||
options: | ||
members: | ||
- memcached | ||
|
||
::: starlite.middleware.session.memcached_backend.MemcachedBackend | ||
options: | ||
members: | ||
- __init__ | ||
- get | ||
- set | ||
- delete | ||
- delete_all |
10 changes: 10 additions & 0 deletions
10
docs/reference/middleware/session-middleware/5-memory-backend.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
# Memory backend | ||
|
||
::: starlite.middleware.session.memory_backend.MemoryBackend | ||
options: | ||
members: | ||
- __init__ | ||
- get | ||
- set | ||
- delete | ||
- delete_all |
15 changes: 15 additions & 0 deletions
15
docs/reference/middleware/session-middleware/6-redis-backend.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Redis backend | ||
|
||
::: starlite.middleware.session.redis_backend.RedisBackendConfig | ||
options: | ||
members: | ||
- redis | ||
|
||
::: starlite.middleware.session.redis_backend.RedisBackend | ||
options: | ||
members: | ||
- __init__ | ||
- get | ||
- set | ||
- delete | ||
- delete_all |
51 changes: 51 additions & 0 deletions
51
docs/reference/middleware/session-middleware/7-sqlalchemy-backend.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# SQLAlchemy backends | ||
|
||
::: starlite.middleware.session.sqlalchemy_backend.SQLAlchemyBackendConfig | ||
options: | ||
members: | ||
- models | ||
- plugin | ||
|
||
::: starlite.middleware.session.sqlalchemy_backend.BaseSQLAlchemyBackend | ||
options: | ||
members: | ||
- __init__ | ||
- delete_expired | ||
|
||
::: starlite.middleware.session.sqlalchemy_backend.SQLAlchemyBackend | ||
options: | ||
members: | ||
- __init__ | ||
- get | ||
- set | ||
- delete | ||
- delete_all | ||
- delete_expired | ||
|
||
::: starlite.middleware.session.sqlalchemy_backend.AsyncSQLAlchemyBackend | ||
options: | ||
members: | ||
- __init__ | ||
- get | ||
- set | ||
- delete | ||
- delete_all | ||
- delete_expired | ||
|
||
::: starlite.middleware.session.sqlalchemy_backend.create_session_model | ||
|
||
::: starlite.middleware.session.sqlalchemy_backend.register_session_model | ||
|
||
::: starlite.middleware.session.sqlalchemy_backend.SessionModelMixin | ||
options: | ||
members: | ||
- session_id | ||
- data | ||
- expires | ||
- expired | ||
|
||
::: starlite.middleware.session.sqlalchemy_backend.SessionModel | ||
options: | ||
members: | ||
- __tablename__ | ||
- id |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.