# DRF Spectacular Auth
π **Authentication UI for DRF Spectacular with AWS Cognito support**
[](https://badge.fury.io/py/drf-spectacular-auth)
[](https://pypi.org/project/drf-spectacular-auth/)
[](https://www.djangoproject.com/)
[](LICENSE)
A Django package that adds a beautiful authentication panel to your DRF Spectacular (Swagger UI) documentation, with built-in support for AWS Cognito and extensible authentication providers.
## π What's New in v1.2.0
- β
**Fixed topbar issues** - No more unwanted UI overlays
- π― **Proper template inheritance** - Uses correct `{% extends 'drf_spectacular/swagger_ui.html' %}`
- π§Ή **Major code cleanup** - 50% reduction in files, 800+ lines of code removed
- β‘ **Improved performance** - Faster loading and cleaner structure
- π **Simplified architecture** - Easier maintenance and understanding
## β¨ Features
- π¨ **Beautiful UI**: Clean, modern authentication panel that integrates seamlessly with Swagger UI
- π **AWS Cognito Support**: Built-in integration with AWS Cognito User Pools
- π **Token Management**: Easy token copying with clipboard integration and manual fallback
- π― **Auto Authorization**: Automatically populates Swagger UI authorization headers
- π¨ **Customizable**: Flexible theming and positioning options
- π **i18n Ready**: Multi-language support (Korean, English, Japanese)
- π§ **Extensible**: Plugin system for additional authentication providers
- π¦ **Easy Integration**: Minimal setup with sensible defaults
## π Quick Start
### Installation
```bash
pip install drf-spectacular-auth
```
Or get the latest version:
```bash
pip install --upgrade drf-spectacular-auth
```
### Basic Setup
1. Add to your Django settings:
```python
INSTALLED_APPS = [
'drf_spectacular_auth', # Add 'drf_spectacular_auth' before 'drf_spectacular'
'drf_spectacular',
# ... your other apps
]
# Optional: Add authentication backend for better integration
AUTHENTICATION_BACKENDS = [
'drf_spectacular_auth.backend.SpectacularAuthBackend',
'django.contrib.auth.backends.ModelBackend', # Keep default backend
]
# Optional: Add middleware for automatic authentication
MIDDLEWARE = [
# ... your existing middleware
'drf_spectacular_auth.middleware.SpectacularAuthMiddleware',
# ... rest of your middleware
]
DRF_SPECTACULAR_AUTH = {
'COGNITO_REGION': 'your-aws-region',
'COGNITO_CLIENT_ID': 'your-cognito-client-id',
'COGNITO_CLIENT_SECRET': 'your-client-secret', # Private clientμΈ κ²½μ°μλ§ νμ
# Optional: User management settings
'AUTO_CREATE_USERS': True, # Auto-create users from Cognito
'REQUIRE_AUTHENTICATION': False, # Require auth to access Swagger UI
}
```
2. Update your URLs:
```python
from drf_spectacular_auth.views import SpectacularAuthSwaggerView
urlpatterns = [
path('api/auth/', include('drf_spectacular_auth.urls')), # Authentication endpoints
path('api/docs/', SpectacularAuthSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
# ... your other urls
]
```
3. That's it! π Your Swagger UI now has an authentication panel.
## π Examples
Please Example Check [examples/](./examples/).
- **[basic_usage/](./examples/basic_usage/)** - Basic Django + DRF + AWS Cognito integration example
- **cognito_integration/** - AWS Cognito integration (Not yet)
- **custom_theming/** - Custom thema example (Not yet)
- **hooks_example/** - Login and Logout hook example (Not yet)
### Test
```bash
cd examples/basic_usage
pip install -r requirements.txt
python manage.py migrate
python manage.py runserver
```
Check browser `http://localhost:8000/docs/`
## ποΈ Architecture
### Integration Strategies
This package offers multiple integration strategies to suit different use cases:
**1. Simple Auth Panel (Default)**
- Adds authentication panel to Swagger UI
- Minimal configuration required
- Good for basic documentation with optional authentication
**2. Middleware Integration (Recommended)**
- Automatic authentication handling
- Session-based auth persistence
- Better integration with existing Django auth
**3. Backend Integration (Advanced)**
- Full Django user integration
- Auto-create users from Cognito
- Supports existing Django permission systems
### Comparison with django-auth-adfs
Unlike django-auth-adfs which focuses on ADFS/Azure AD integration, this package:
- Specializes in AWS Cognito authentication
- Focuses on API documentation (Swagger UI) integration
- Offers lighter-weight integration options
- Supports both simple overlay and full Django auth integration
## βοΈ Configuration
### AWS Cognito Client Types
**Public Client** (Basic):
- Not Client Secret
- `COGNITO_CLIENT_SECRET=None`
**Private Client** (Enhanced):
- Need Client Secret
- Must have `COGNITO_CLIENT_SECRET`
- Automatic calculate SECRET_HASH
```python
# Public Client (Basic)
DRF_SPECTACULAR_AUTH = {
'COGNITO_REGION': 'ap-northeast-2',
'COGNITO_CLIENT_ID': 'your-public-client-id',
}
# Private Client (Enhanced)
DRF_SPECTACULAR_AUTH = {
'COGNITO_REGION': 'ap-northeast-2',
'COGNITO_CLIENT_ID': 'your-private-client-id',
'COGNITO_CLIENT_SECRET': os.getenv('COGNITO_CLIENT_SECRET'),
}
```
### Full Configuration Options
```python
DRF_SPECTACULAR_AUTH = {
# AWS Cognito Settings
'COGNITO_REGION': 'ap-northeast-2',
'COGNITO_CLIENT_ID': 'your-client-id',
'COGNITO_CLIENT_SECRET': None,
# API Endpoints
'LOGIN_ENDPOINT': '/api/auth/login/',
'LOGOUT_ENDPOINT': '/api/auth/logout/',
# UI Settings
'PANEL_POSITION': 'top-right', # top-left, top-right, bottom-left, bottom-right
'PANEL_STYLE': 'floating', # floating, embedded
'AUTO_AUTHORIZE': True, # Auto-fill authorization headers
'SHOW_COPY_BUTTON': True, # Show token copy button
'SHOW_USER_INFO': True, # Show user email in panel
# Theming
'THEME': {
'PRIMARY_COLOR': '#61affe',
'SUCCESS_COLOR': '#28a745',
'ERROR_COLOR': '#dc3545',
'BACKGROUND_COLOR': '#ffffff',
'BORDER_RADIUS': '8px',
'SHADOW': '0 2px 10px rgba(0,0,0,0.1)',
},
# Localization
'DEFAULT_LANGUAGE': 'ko',
'SUPPORTED_LANGUAGES': ['ko', 'en', 'ja'],
# Security
'TOKEN_STORAGE': 'localStorage', # localStorage, sessionStorage
'CSRF_PROTECTION': True,
# User Management
'AUTO_CREATE_USERS': False, # Auto-create users from successful authentication
'CREATE_TEMP_USER': True, # Create temporary users for documentation access
'REQUIRE_AUTHENTICATION': False, # Require auth to access Swagger UI
# Extensibility
'CUSTOM_AUTH_PROVIDERS': [],
'HOOKS': {
'PRE_LOGIN': None,
'POST_LOGIN': None,
'PRE_LOGOUT': None,
'POST_LOGOUT': None,
}
}
```
## π¨ Customization
### Custom Authentication Provider
```python
from drf_spectacular_auth.providers.base import AuthProvider
class CustomAuthProvider(AuthProvider):
def authenticate(self, credentials):
# Your custom authentication logic
return {
'access_token': 'your-token',
'user': {'email': 'user@example.com'}
}
def get_user_info(self, token):
# Get user information from token
return {'email': 'user@example.com'}
# Register your provider
DRF_SPECTACULAR_AUTH = {
'CUSTOM_AUTH_PROVIDERS': [
'path.to.your.CustomAuthProvider'
]
}
```
### Custom Templates
```python
DRF_SPECTACULAR_AUTH = {
'CUSTOM_TEMPLATES': {
'auth_panel': 'your_app/custom_auth_panel.html',
'login_form': 'your_app/custom_login_form.html',
}
}
```
## π Troubleshooting
### Common Issues
**Q: I see unwanted topbar in my Swagger UI**
A: Update to v1.2.0+ which fixes the template inheritance issue.
**Q: Authentication panel is not showing**
A: Make sure you're using `SpectacularAuthSwaggerView` instead of the default Swagger view.
**Q: Token not being auto-authorized in Swagger**
A: Verify that `AUTO_AUTHORIZE: True` is set in your settings and check browser console for errors.
**Q: AWS Cognito authentication fails**
A: Check your Cognito configuration:
- Verify `COGNITO_REGION`, `COGNITO_CLIENT_ID` are correct
- For private clients, ensure `COGNITO_CLIENT_SECRET` is set
- Check AWS Cognito logs for detailed error messages
**Q: Template loading errors**
A: Ensure `drf_spectacular_auth` is added to `INSTALLED_APPS` before `drf_spectacular`.
### Migration from Previous Versions
**From v1.1.x to v1.2.0:**
- No breaking changes - just update your package
- Topbar issues will be automatically resolved
- Remove any custom workarounds for template conflicts
## π§ Development
### Local Development
```bash
git clone https://github.com/CodeMath/drf-spectacular-auth.git
cd drf-spectacular-auth
pip install -e ".[dev]"
```
### Running Tests
```bash
pytest
pytest --cov=drf_spectacular_auth
```
### Code Quality
```bash
black .
isort .
flake8
```
## π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
## π License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## π Acknowledgments
- [DRF Spectacular](https://github.com/tfranzel/drf-spectacular) for the excellent API documentation framework
- [AWS Cognito](https://aws.amazon.com/cognito/) for authentication services
- [Swagger UI](https://swagger.io/tools/swagger-ui/) for the beautiful API documentation interface
## π Links
- [Documentation](https://github.com/CodeMath/drf-spectacular-auth#readme)
- [PyPI](https://pypi.org/project/drf-spectacular-auth/)
- [GitHub](https://github.com/CodeMath/drf-spectacular-auth)
- [Issues](https://github.com/CodeMath/drf-spectacular-auth/issues)
Raw data
{
"_id": null,
"home_page": null,
"name": "drf-spectacular-auth",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "django, drf, spectacular, swagger, cognito, auth, ui",
"author": null,
"author_email": "CodeMath <jadecon2655@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/1d/84/615d1040c04daa2ba7f82a1c58391f7f7ec30b260a98663274145f0ceae6/drf_spectacular_auth-1.2.1.tar.gz",
"platform": null,
"description": "# DRF Spectacular Auth\n\n\ud83d\udd10 **Authentication UI for DRF Spectacular with AWS Cognito support**\n\n[](https://badge.fury.io/py/drf-spectacular-auth)\n[](https://pypi.org/project/drf-spectacular-auth/)\n[](https://www.djangoproject.com/)\n[](LICENSE)\n\nA Django package that adds a beautiful authentication panel to your DRF Spectacular (Swagger UI) documentation, with built-in support for AWS Cognito and extensible authentication providers.\n\n## \ud83c\udd95 What's New in v1.2.0\n\n- \u2705 **Fixed topbar issues** - No more unwanted UI overlays\n- \ud83c\udfaf **Proper template inheritance** - Uses correct `{% extends 'drf_spectacular/swagger_ui.html' %}`\n- \ud83e\uddf9 **Major code cleanup** - 50% reduction in files, 800+ lines of code removed\n- \u26a1 **Improved performance** - Faster loading and cleaner structure\n- \ud83d\udcc1 **Simplified architecture** - Easier maintenance and understanding\n\n## \u2728 Features\n\n- \ud83c\udfa8 **Beautiful UI**: Clean, modern authentication panel that integrates seamlessly with Swagger UI\n- \ud83d\udd10 **AWS Cognito Support**: Built-in integration with AWS Cognito User Pools\n- \ud83d\udccb **Token Management**: Easy token copying with clipboard integration and manual fallback\n- \ud83c\udfaf **Auto Authorization**: Automatically populates Swagger UI authorization headers\n- \ud83c\udfa8 **Customizable**: Flexible theming and positioning options\n- \ud83c\udf0d **i18n Ready**: Multi-language support (Korean, English, Japanese)\n- \ud83d\udd27 **Extensible**: Plugin system for additional authentication providers\n- \ud83d\udce6 **Easy Integration**: Minimal setup with sensible defaults\n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install drf-spectacular-auth\n```\n\nOr get the latest version:\n\n```bash\npip install --upgrade drf-spectacular-auth\n```\n\n### Basic Setup\n\n1. Add to your Django settings:\n\n```python\nINSTALLED_APPS = [\n 'drf_spectacular_auth', # Add 'drf_spectacular_auth' before 'drf_spectacular'\n 'drf_spectacular',\n # ... your other apps\n]\n\n# Optional: Add authentication backend for better integration\nAUTHENTICATION_BACKENDS = [\n 'drf_spectacular_auth.backend.SpectacularAuthBackend',\n 'django.contrib.auth.backends.ModelBackend', # Keep default backend\n]\n\n# Optional: Add middleware for automatic authentication\nMIDDLEWARE = [\n # ... your existing middleware\n 'drf_spectacular_auth.middleware.SpectacularAuthMiddleware',\n # ... rest of your middleware\n]\n\nDRF_SPECTACULAR_AUTH = {\n 'COGNITO_REGION': 'your-aws-region',\n 'COGNITO_CLIENT_ID': 'your-cognito-client-id',\n 'COGNITO_CLIENT_SECRET': 'your-client-secret', # Private client\uc778 \uacbd\uc6b0\uc5d0\ub9cc \ud544\uc694\n \n # Optional: User management settings\n 'AUTO_CREATE_USERS': True, # Auto-create users from Cognito\n 'REQUIRE_AUTHENTICATION': False, # Require auth to access Swagger UI\n}\n```\n\n2. Update your URLs:\n\n```python\nfrom drf_spectacular_auth.views import SpectacularAuthSwaggerView\n\nurlpatterns = [\n path('api/auth/', include('drf_spectacular_auth.urls')), # Authentication endpoints\n path('api/docs/', SpectacularAuthSwaggerView.as_view(url_name='schema'), name='swagger-ui'),\n # ... your other urls\n]\n```\n\n3. That's it! \ud83c\udf89 Your Swagger UI now has an authentication panel.\n\n## \ud83d\udcc1 Examples\n\nPlease Example Check [examples/](./examples/).\n\n- **[basic_usage/](./examples/basic_usage/)** - Basic Django + DRF + AWS Cognito integration example\n- **cognito_integration/** - AWS Cognito integration (Not yet)\n- **custom_theming/** - Custom thema example (Not yet) \n- **hooks_example/** - Login and Logout hook example (Not yet)\n\n### Test\n\n```bash\ncd examples/basic_usage\npip install -r requirements.txt\npython manage.py migrate\npython manage.py runserver\n```\n\nCheck browser `http://localhost:8000/docs/` \n\n## \ud83c\udfd7\ufe0f Architecture\n\n### Integration Strategies\n\nThis package offers multiple integration strategies to suit different use cases:\n\n**1. Simple Auth Panel (Default)**\n- Adds authentication panel to Swagger UI\n- Minimal configuration required\n- Good for basic documentation with optional authentication\n\n**2. Middleware Integration (Recommended)**\n- Automatic authentication handling\n- Session-based auth persistence\n- Better integration with existing Django auth\n\n**3. Backend Integration (Advanced)**\n- Full Django user integration\n- Auto-create users from Cognito\n- Supports existing Django permission systems\n\n### Comparison with django-auth-adfs\n\nUnlike django-auth-adfs which focuses on ADFS/Azure AD integration, this package:\n- Specializes in AWS Cognito authentication\n- Focuses on API documentation (Swagger UI) integration\n- Offers lighter-weight integration options\n- Supports both simple overlay and full Django auth integration\n\n## \u2699\ufe0f Configuration\n\n### AWS Cognito Client Types\n\n**Public Client** (Basic):\n- Not Client Secret\n- `COGNITO_CLIENT_SECRET=None`\n\n**Private Client** (Enhanced):\n- Need Client Secret\n- Must have `COGNITO_CLIENT_SECRET`\n- Automatic calculate SECRET_HASH\n\n```python\n# Public Client (Basic)\nDRF_SPECTACULAR_AUTH = {\n 'COGNITO_REGION': 'ap-northeast-2',\n 'COGNITO_CLIENT_ID': 'your-public-client-id',\n}\n\n# Private Client (Enhanced)\nDRF_SPECTACULAR_AUTH = {\n 'COGNITO_REGION': 'ap-northeast-2',\n 'COGNITO_CLIENT_ID': 'your-private-client-id',\n 'COGNITO_CLIENT_SECRET': os.getenv('COGNITO_CLIENT_SECRET'),\n}\n```\n\n### Full Configuration Options\n\n```python\nDRF_SPECTACULAR_AUTH = {\n # AWS Cognito Settings\n 'COGNITO_REGION': 'ap-northeast-2',\n 'COGNITO_CLIENT_ID': 'your-client-id',\n 'COGNITO_CLIENT_SECRET': None,\n \n # API Endpoints\n 'LOGIN_ENDPOINT': '/api/auth/login/',\n 'LOGOUT_ENDPOINT': '/api/auth/logout/',\n \n # UI Settings\n 'PANEL_POSITION': 'top-right', # top-left, top-right, bottom-left, bottom-right\n 'PANEL_STYLE': 'floating', # floating, embedded\n 'AUTO_AUTHORIZE': True, # Auto-fill authorization headers\n 'SHOW_COPY_BUTTON': True, # Show token copy button\n 'SHOW_USER_INFO': True, # Show user email in panel\n \n # Theming\n 'THEME': {\n 'PRIMARY_COLOR': '#61affe',\n 'SUCCESS_COLOR': '#28a745',\n 'ERROR_COLOR': '#dc3545',\n 'BACKGROUND_COLOR': '#ffffff',\n 'BORDER_RADIUS': '8px',\n 'SHADOW': '0 2px 10px rgba(0,0,0,0.1)',\n },\n \n # Localization\n 'DEFAULT_LANGUAGE': 'ko',\n 'SUPPORTED_LANGUAGES': ['ko', 'en', 'ja'],\n \n # Security\n 'TOKEN_STORAGE': 'localStorage', # localStorage, sessionStorage\n 'CSRF_PROTECTION': True,\n \n # User Management\n 'AUTO_CREATE_USERS': False, # Auto-create users from successful authentication\n 'CREATE_TEMP_USER': True, # Create temporary users for documentation access\n 'REQUIRE_AUTHENTICATION': False, # Require auth to access Swagger UI\n \n # Extensibility\n 'CUSTOM_AUTH_PROVIDERS': [],\n 'HOOKS': {\n 'PRE_LOGIN': None,\n 'POST_LOGIN': None,\n 'PRE_LOGOUT': None,\n 'POST_LOGOUT': None,\n }\n}\n```\n\n## \ud83c\udfa8 Customization\n\n### Custom Authentication Provider\n\n```python\nfrom drf_spectacular_auth.providers.base import AuthProvider\n\nclass CustomAuthProvider(AuthProvider):\n def authenticate(self, credentials):\n # Your custom authentication logic\n return {\n 'access_token': 'your-token',\n 'user': {'email': 'user@example.com'}\n }\n \n def get_user_info(self, token):\n # Get user information from token\n return {'email': 'user@example.com'}\n\n# Register your provider\nDRF_SPECTACULAR_AUTH = {\n 'CUSTOM_AUTH_PROVIDERS': [\n 'path.to.your.CustomAuthProvider'\n ]\n}\n```\n\n### Custom Templates\n\n```python\nDRF_SPECTACULAR_AUTH = {\n 'CUSTOM_TEMPLATES': {\n 'auth_panel': 'your_app/custom_auth_panel.html',\n 'login_form': 'your_app/custom_login_form.html',\n }\n}\n```\n\n## \ud83d\udc1b Troubleshooting\n\n### Common Issues\n\n**Q: I see unwanted topbar in my Swagger UI** \nA: Update to v1.2.0+ which fixes the template inheritance issue.\n\n**Q: Authentication panel is not showing** \nA: Make sure you're using `SpectacularAuthSwaggerView` instead of the default Swagger view.\n\n**Q: Token not being auto-authorized in Swagger** \nA: Verify that `AUTO_AUTHORIZE: True` is set in your settings and check browser console for errors.\n\n**Q: AWS Cognito authentication fails** \nA: Check your Cognito configuration:\n- Verify `COGNITO_REGION`, `COGNITO_CLIENT_ID` are correct\n- For private clients, ensure `COGNITO_CLIENT_SECRET` is set\n- Check AWS Cognito logs for detailed error messages\n\n**Q: Template loading errors** \nA: Ensure `drf_spectacular_auth` is added to `INSTALLED_APPS` before `drf_spectacular`.\n\n### Migration from Previous Versions\n\n**From v1.1.x to v1.2.0:**\n- No breaking changes - just update your package\n- Topbar issues will be automatically resolved\n- Remove any custom workarounds for template conflicts\n\n## \ud83d\udd27 Development\n\n### Local Development\n\n```bash\ngit clone https://github.com/CodeMath/drf-spectacular-auth.git\ncd drf-spectacular-auth\npip install -e \".[dev]\"\n```\n\n### Running Tests\n\n```bash\npytest\npytest --cov=drf_spectacular_auth\n```\n\n### Code Quality\n\n```bash\nblack .\nisort .\nflake8\n```\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## \ud83d\ude4f Acknowledgments\n\n- [DRF Spectacular](https://github.com/tfranzel/drf-spectacular) for the excellent API documentation framework\n- [AWS Cognito](https://aws.amazon.com/cognito/) for authentication services\n- [Swagger UI](https://swagger.io/tools/swagger-ui/) for the beautiful API documentation interface\n\n## \ud83d\udcda Links\n\n- [Documentation](https://github.com/CodeMath/drf-spectacular-auth#readme)\n- [PyPI](https://pypi.org/project/drf-spectacular-auth/)\n- [GitHub](https://github.com/CodeMath/drf-spectacular-auth)\n- [Issues](https://github.com/CodeMath/drf-spectacular-auth/issues)\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Enhanced Authentication UI for DRF Spectacular with AWS Cognito support and Django integration",
"version": "1.2.1",
"project_urls": {
"Bug Tracker": "https://github.com/CodeMath/drf-spectacular-auth/issues",
"Documentation": "https://github.com/CodeMath/drf-spectacular-auth#readme",
"Homepage": "https://github.com/CodeMath/drf-spectacular-auth",
"Repository": "https://github.com/CodeMath/drf-spectacular-auth"
},
"split_keywords": [
"django",
" drf",
" spectacular",
" swagger",
" cognito",
" auth",
" ui"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "87163dfd205b3176e8245f86bcc121ab1411c6492999505a7b1736e5bc7a72dc",
"md5": "e94988a54f5a9fb847e4a0d5d736e508",
"sha256": "fa0137d10b953ac70166d25c1015ff6b757e16d36b91b192113bb097527d805e"
},
"downloads": -1,
"filename": "drf_spectacular_auth-1.2.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e94988a54f5a9fb847e4a0d5d736e508",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 24583,
"upload_time": "2025-08-29T14:40:11",
"upload_time_iso_8601": "2025-08-29T14:40:11.771399Z",
"url": "https://files.pythonhosted.org/packages/87/16/3dfd205b3176e8245f86bcc121ab1411c6492999505a7b1736e5bc7a72dc/drf_spectacular_auth-1.2.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "1d84615d1040c04daa2ba7f82a1c58391f7f7ec30b260a98663274145f0ceae6",
"md5": "e2d66ae5c87ab5319238cc3a7784065b",
"sha256": "894c1ed3f94e19b3a8dd7eec1b5818c9d1f86a1444800947df9fd6ed6d0d288e"
},
"downloads": -1,
"filename": "drf_spectacular_auth-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "e2d66ae5c87ab5319238cc3a7784065b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 26044,
"upload_time": "2025-08-29T14:40:13",
"upload_time_iso_8601": "2025-08-29T14:40:13.067958Z",
"url": "https://files.pythonhosted.org/packages/1d/84/615d1040c04daa2ba7f82a1c58391f7f7ec30b260a98663274145f0ceae6/drf_spectacular_auth-1.2.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-29 14:40:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "CodeMath",
"github_project": "drf-spectacular-auth",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "drf-spectacular-auth"
}