Complete Task 1.3 - Authentication System Implementation

 Implemented comprehensive authentication system:
- Abstract AuthHandler base class with pluggable architecture
- APIKeyAuth for API key authentication (string auto-conversion)
- JWTAuth for JWT token authentication with expiration handling
- NoAuth for testing and public instances
- Full integration with WikiJSClient for automatic header management

🔧 Fixed packaging issues:
- Updated pyproject.toml with required project metadata fields
- Fixed utility function exports in utils/__init__.py
- Package now installs correctly in virtual environments

🧪 Validated with comprehensive tests:
- All authentication methods working correctly
- Proper error handling for invalid credentials
- Type validation and security features

📊 Progress: Phase 1 MVP Development now 60% complete
🎯 Next: Task 1.4 - Pages API implementation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-07-29 15:06:11 -04:00
parent 11b6be87c8
commit 29001b02a5
8 changed files with 454 additions and 21 deletions

View File

@@ -3,8 +3,70 @@ requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "wikijs-python-sdk"
description = "A professional Python SDK for Wiki.js API integration"
authors = [{name = "Wiki.js SDK Contributors"}]
license = {text = "MIT"}
readme = "README.md"
requires-python = ">=3.8"
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Internet :: WWW/HTTP :: Dynamic Content",
"Topic :: Documentation",
"Typing :: Typed",
]
dependencies = [
"requests>=2.28.0",
"pydantic>=1.10.0",
"typing-extensions>=4.0.0",
]
dynamic = ["version"]
[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
"pytest-cov>=4.0.0",
"pytest-asyncio>=0.21.0",
"black>=22.0.0",
"isort>=5.10.0",
"flake8>=5.0.0",
"mypy>=0.991",
"pre-commit>=2.20.0",
"bandit[toml]>=1.7.0",
"responses>=0.20.0",
"ipython>=8.0.0",
"twine>=4.0.0",
"build>=0.8.0",
]
async = [
"aiohttp>=3.8.0",
]
cli = [
"click>=8.0.0",
"rich>=12.0.0",
]
all = [
"aiohttp>=3.8.0",
"click>=8.0.0",
"rich>=12.0.0",
]
[project.urls]
Homepage = "https://github.com/yourusername/wikijs-python-sdk"
"Bug Reports" = "https://github.com/yourusername/wikijs-python-sdk/issues"
Source = "https://github.com/yourusername/wikijs-python-sdk"
Documentation = "https://github.com/yourusername/wikijs-python-sdk/docs"
[tool.setuptools.dynamic]
version = {attr = "wikijs.version.__version__"}