Skip to main content

Freehand Kit Auth

freehand-kit-auth provides configurable Django REST Framework authentication workflows for Django applications. The import package and INSTALLED_APPS entry is fk_auth.

Status: stable 1.x. The supported baseline is Python 3.11+, Django 5.2–6.0, and Django REST Framework 3.17.2–3.17.x. Production deployment still requires the host to configure shared throttling storage, SMTP, secrets, and HTTPS.

Intended scope

  • Registration and email verification.
  • Email and/or username login, logout, password reset, password change, and a current-user endpoint.
  • First-class support for the host's default or custom Django user model, with explicit safe field selection for registration, profile responses, updates, and token claims.
  • DRF SimpleJWT access and refresh tokens, including either HMAC or RSA key configuration.
  • Link, high-entropy token, Redis-backed email OTP, or no email verification.
  • OpenAPI 3 schema annotations and mountable Swagger UI routes.

OAuth, social sign-in, OIDC, SAML, passkeys, tenancy, and full RBAC are explicitly outside this package's first release scope.

Installation

# After the package is published to PyPI:
python -m pip install freehand-kit-auth

# For Redis-backed OTP verification:
python -m pip install "freehand-kit-auth[redis]"

# For RSA JWT signing and verification:
python -m pip install "freehand-kit-auth[crypto]"
INSTALLED_APPS = [
    # Host applications own the rest of this list.
    "rest_framework",
    "drf_spectacular",
    "rest_framework_simplejwt.token_blacklist",
    "fk_auth",
]

The host application sets FREEHAND_KIT_AUTH in its Django settings and includes the package URLs. See the configuration guide for the working contract. The library does not read .env files itself; the host resolves environment variables before constructing its Django settings.

Development

cd freehand-kit-auth
python -m pip install -e ".[dev]"
pytest
ruff check .
python -m build
twine check dist/*

The GitHub Actions workflow runs the supported Python/Django matrix, linting, typing, package validation, dependency auditing, and a PostgreSQL/Redis/Mailpit integration test.

Project status

The current package implements registration, configurable email verification/resend, email/username login, JWT refresh/verify/logout, password reset and change, and a safe custom-user me endpoint. Roles, email-change, account deletion, OAuth/SSO, and MFA remain deferred capabilities.

License

MIT. See LICENSE.

Metadata

Release files for freehand-kit-auth 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for freehand-kit-auth 1.0.0
File Size Uploaded
freehand_kit_auth-1.0.0.tar.gz 46.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for freehand-kit-auth 1.0.0
File Interpreter ABI Platform
freehand_kit_auth-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 82.9 kB

Release files / freehand_kit_auth-1.0.0.tar.gz

Download URL freehand_kit_auth-1.0.0.tar.gz
Size 46.7 kB
Tags Source
SHA-256 checksum
How to use checksums
435409a8e3a598ae554d0d6cd353136dc0e076f015ff26d761af8cccb59185b3
BLAKE2b-256 checksum
How to use checksums
33b310dee8421c32d56e933ec8bffb58433176e76ae3fd42ce0beef8ad6993b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / freehand_kit_auth-1.0.0-py3-none-any.whl

Download URL freehand_kit_auth-1.0.0-py3-none-any.whl
Size 36.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d8be792590e1e6638ea7b1346bc4ce244816385e89a6282daf5437122999b9b
BLAKE2b-256 checksum
How to use checksums
a155fe10b863fe5aef8dbe2a27bd000d07ae060e544724f526035d362625e308
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.1

2 release files

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page