Changelog¶
This file is generated from conventional commits by semantic-release.
v1.3.1 (2026-03-10)¶
Bug Fixes¶
- docs: Document secure paseto key management
(
1f4c50b)
v1.3.0 (2026-03-10)¶
Documentation¶
- docs: Align documentation with current implementation
(
d5a0705)
Features¶
- auth: Align paseto support with footer and assertion features
(
3d3cf84)
v1.2.2 (2026-03-10)¶
Bug Fixes¶
- auth: Isolate request state and harden token parsing
(
d8d82c4)
v1.2.1 (2026-03-09)¶
Bug Fixes¶
- repo: Update branch references to main
(
8de8ec6)
v1.2.0 (2026-03-09)¶
Features¶
- websocket: Add websocket authorization support
(
3e9103d)
Refactoring¶
- auth: Modularize paseto internals
(
db6e5d5)
v1.1.0 (2026-03-09)¶
Features¶
- ci: Add release sbom and provenance
(
48651a2)
v1.0.3 (2026-03-09)¶
Bug Fixes¶
- ci: Publish Python distributions as
(
ddac7dd)
v1.0.2 (2026-03-09)¶
Bug Fixes¶
- ci: Use default uv sync in release workflow
(
a479187)
v1.0.1 (2026-03-09)¶
Bug Fixes¶
-
ci: Keep lockfile in sync (
fede11a) -
ci: Remove unsupported semantic-release flag (
2eb31e8) -
ci: Use frozen sync after release version bump (
ff1c48d)
v1.0.0 (2026-03-09)¶
Bug Fixes¶
- ci: Build package outside semantic-
(
01dcd39)
Historical notes¶
The entries below predate the automated semantic-release workflow.
2026-03-09T16:08:41-03:00¶
- Reworked
.github/workflows/pages.ymlto deploy GitHub Pages through the official artifact-based Actions flow instead ofmkdocs gh-deploy. - Added the required Pages workflow permissions and split docs publishing into a
buildjob plus a gateddeployjob for pushes tomaster. - Kept the MkDocs build unchanged and verified that
uv run --python 3.14 mkdocs build --strictstill succeeds and produces thesite/artifact used for deployment.
2026-03-09T16:10:00-03:00¶
- Renamed the published project from
fastapi-paseto-authtofastapi-paseto. - Renamed the import package from
fastapi_paseto_authtofastapi_pasetoand updated examples, tests, and docs to match. - Repointed repository metadata, badges, and issue links to
Raze-Systems/fastapi-paseto. - Updated package authorship to
Raze SystemsandAlexandre Teles, withAlexandre Teles <1757773+alexandreteles@users.noreply.github.com>as the maintainer. - Removed the old public documentation URL from package metadata and README.
- Preserved the original MIT copyright notice and added fork copyright lines for the current project owners.
2026-03-09T15:03:11-03:00¶
- Upgraded the runtime stack to
fastapi==0.135.1,pydantic==2.12.5, andpydantic-settings==2.12.0; keptpyseto==1.9.1because it is already current and compatible. - Reworked config validation onto Pydantic v2 APIs in
src/fastapi_paseto/config.py, replacing v1 validators andConfigusage withfield_validator,model_validator, andmodel_config. - Changed
AuthPASETO.load_config()to accept a callback returning either a plain mapping or apydantic-settingsBaseSettingsinstance; removed the oldlist[tuple]/generic Pydantic-object contract. - Fixed
AuthPASETOdependency injection compatibility with modern FastAPI while preserving directAuthPASETO()construction for tests and non-request token creation. - Removed mutable default arguments from token creation methods and tightened related typing in the auth implementation.
- Updated tests to target the new config contract and modern Starlette
TestClientbehavior. - Updated examples and API docs so they no longer show returning
pydantic.BaseModelconfig objects fromload_config(). - Regenerated
uv.lockand verified thatuv run pytest -qsucceeds with44 passed.
2026-03-09T14:25:00-03:00¶
- Added an autouse test fixture in
tests/conftest.pythat resetsAuthPASETO's class-level state before and after every test so test outcomes no longer depend on execution order. - Added a shared
configure_auth()fixture intests/conftest.pyand updated the request-based test modules to declare their own auth configuration instead of inheriting it implicitly from previous tests. - Reworked
tests/test_decode_token.pyto replace wall-clocktime.sleep()expiry checks with explicitexpclaims, removing timing-based flakiness while preserving the expiry and leeway assertions. - Reworked
tests/test_denylist.pyso the denylist store and revoked-token setup are isolated per test instead of relying on module-global mutation across parametrized cases. - Updated
tests/test_config.py::test_secret_key_not_existto exercise the decode failure path directly, avoiding the oldTestClientdeadlock behavior triggered by that scenario on the current dependency stack. - Verified that
uv run --python 3.14 pytest -qsucceeds with44 passed. - Verified that
bash scripts/tests.shsucceeds with44 passedand coverage output generation. - Rechecked the sandbox behavior and confirmed the remaining environment-specific issue is still
uvcache access under/home/alexs/.cache/uv, not a reproducible test failure in the repo itself.
2026-03-09T02:46:38-03:00¶
- Moved the
fastapi_pasetopackage intosrc/fastapi_pasetoto matchuv_build's default packaged-library layout while preserving the public import path. - Removed the flat-layout override from
pyproject.tomlso the build now follows the defaultsrc/module discovery behavior. - Replaced the published
test,doc, anddevextras with a single localdevdependency group inpyproject.toml. - Updated
docs/contributing.mdto useuv sync --python 3.14for the default contributor setup anduv sync --python 3.14 --no-devfor a production-like local environment. - Updated the GitHub Actions test and docs workflows to install dependencies with
uv sync --python 3.14so CI follows the new dependency-group layout. - Regenerated
uv.lockso it records the newdevdependency group instead of published extras metadata. - Verified that
uv lock,uv build,uv sync --python 3.14,uv sync --python 3.14 --no-dev, anduv run --python 3.14 mkdocs build --strictall succeed after the restructure. - Verified that
uv run --python 3.14 python -c "import fastapi_paseto; print(fastapi_paseto.__file__)"resolves to the package undersrc/. - Rechecked the test suite and confirmed the remaining hang still occurs in
tests/test_config.py::test_secret_key_not_exist, so there is no new packaging-specific regression identified from this restructure.
2026-03-09T03:10:00-03:00¶
- Updated the supported interpreter target from Python 3.10 to Python 3.14 in
pyproject.toml,.python-version, contributor docs, README installation notes, helper scripts, and GitHub Actions workflows. - Refreshed the direct runtime pins needed for Python 3.14 compatibility:
pydantic==1.10.25pyseto==1.9.1- Refreshed the test tooling pins needed for Python 3.14 compatibility:
pytest==8.4.1pytest-cov==6.2.1coveralls==4.0.1- Updated
scripts/tests.shandscripts/docs-live.shto run explicitly on Python 3.14 throughuv run --python 3.14. - Reworked the GitHub Actions workflows to use
uv-managed Python 3.14 environments instead of the oldflit-based setup, and changed the docs workflow to build on pull requests while only deploying on pushes tomaster. - Regenerated
uv.lockagainst Python 3.14, which updated the transitive dependency set, includingcryptography. - Verified on Python 3.14 that
uv run pytest --cov=tests --cov-report=term-missing --cov-report=html -v,uv run mkdocs build --strict, anduv buildall succeed.
2026-03-09T01:47:02-03:00¶
- Migrated packaging metadata in
pyproject.tomlfromflittables to PEP 621[project]metadata. - Switched the build backend from
flit_coretouv_build. - Moved the package version source of truth to
pyproject.tomland updatedfastapi_paseto.__version__to read from installed package metadata with a fallback to0.6.0. - Removed the legacy
PipfileandPipfile.lock. - Added
.python-versionwith3.10so localuvworkflows resolve the intended interpreter by default. - Generated and added
uv.lockfor theuv-managed development environment. - Updated declared runtime dependencies to match the previous
Pipfile.lockversions: fastapi==0.85.0pyseto==1.6.10pydantic==1.10.2- Updated declared test dependencies to track the previous lockfile behavior:
anyio==3.6.1sniffio==1.3.0pytest==7.1.3pytest-cov==3.0.0coveralls==3.3.1requests==2.28.1urllib3==1.26.12- Kept doc and dev extras in
pyproject.tomland preserved the existing MkDocs anduvicornsetup. - Updated
scripts/tests.shto run tests throughuv run. - Updated
scripts/docs-live.shto run the docs server throughuv run. - Updated
docs/contributing.mdto replacePipenv/flitsetup instructions withuv sync --extra test --extra doc --extra dev. - Updated
.gitignoreto ignore.venv/andsite/. - Verified that
uv buildsucceeds and thatuv run mkdocs build --strictsucceeds after the migration. - Investigated the hanging
TestClientbehavior and confirmed it is caused by the current sandbox environment blocking thread-to-event-loop wakeups used byasyncio,anyio, and Starlette'sTestClient, not by the packaging migration itself.