Skip to content

Commit

Permalink
improve the document of storage (#3731)
Browse files Browse the repository at this point in the history
Add “Needs `storage_secret`” to table. Improve description of `app.storage.user` and `app.storage.browser`.
  • Loading branch information
python-and-fiction authored Sep 14, 2024
1 parent 40e9f09 commit fe3cbc2
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions website/documentation/content/storage_documentation.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,17 +32,19 @@
Stored server-side, each dictionary is associated with a unique identifier held in a browser session cookie.
Unique to each user, this storage is accessible across all their browser tabs.
`app.storage.browser['id']` is used to identify the user.
This storage is only available within [page builder functions](/documentation/page)
and requires the `storage_secret` parameter in`ui.run()` to sign the browser session cookie.
- `app.storage.general`:
Also stored server-side, this dictionary provides a shared storage space accessible to all users.
- `app.storage.browser`:
Unlike the previous types, this dictionary is stored directly as the browser session cookie, shared among all browser tabs for the same user.
However, `app.storage.user` is generally preferred due to its advantages in reducing data payload, enhancing security, and offering larger storage capacity.
By default, NiceGUI holds a unique identifier for the browser session in `app.storage.browser['id']`.
This storage is only available within [page builder functions](/documentation/page)
and requires the `storage_secret` parameter in`ui.run()` to sign the browser session cookie.
The user storage and browser storage are only available within `page builder functions </documentation/page>`_
because they are accessing the underlying `Request` object from FastAPI.
Additionally these two types require the `storage_secret` parameter in`ui.run()` to sign the browser session cookie.
The following table will help you to choose storage.
| Storage type | `tab` | `client` | `user` | `general` | `browser` |
|-----------------------------|--------|----------|--------|-----------|-----------|
| Location | Server | Server | Server | Server | Browser |
Expand All @@ -54,6 +56,7 @@
| Needs client connection | Yes | No | No | No | No |
| Write only before response | No | No | No | No | Yes |
| Needs serializable data | No | No | Yes | Yes | Yes |
| Needs `storage_secret` | No | No | Yes | No | Yes |
''')
def storage_demo():
from nicegui import app
Expand Down

0 comments on commit fe3cbc2

Please sign in to comment.