Files
py-wikijs/docs/CHANGELOG.md
Claude 6fdff8f95d docs: Update documentation to reflect Phase 1 (v0.1.0) completion
This commit updates all project documentation to accurately reflect
the current implementation status and v0.1.0 MVP release.

**Major Updates:**

1. **CLAUDE.md (v1.1)**:
   - Updated Current Development State to 100% Phase 1 complete
   - Replaced outdated "CURRENT FOCUS: TASK 1.1" section with "PHASE 1 COMPLETE" summary
   - Marked all Phase 1 tasks (1.1-1.7) as complete with 100% status
   - Updated repository structure to show tests/, docs/, examples/ as complete
   - Added Phase 1 Achievement Summary with metrics:
     * 2,641 lines of test code (231 tests, 87%+ coverage)
     * 3,589+ lines of documentation
     * 3 authentication methods implemented
     * Complete Pages API (679 lines)
   - Updated Success Criteria checkboxes to reflect achievements
   - Prepared Phase 2 planning section
   - Added version history entry for v1.1

2. **docs/CHANGELOG.md**:
   - Moved [Unreleased] content to new [0.1.0] release section
   - Added comprehensive v0.1.0 release notes (2025-10-23)
   - Documented all delivered features:
     * Core Implementation (Client, Auth, Pages API, Models, Exceptions, Utilities)
     * Quality Infrastructure (Tests, Coverage, Tools, CI/CD)
     * Documentation (12 files, 3,589+ lines)
     * Project Infrastructure
   - Marked all v0.1.0 Success Criteria as complete
   - Fixed installation URL from GitHub to Gitea
   - Added security notes (input validation, API key masking, SSL verification)

3. **docs/api_reference.md**:
   - Fixed JWT Authentication documentation
   - Changed from username/password pattern to correct token-based pattern
   - Added proper parameters: token, base_url, refresh_token, expires_at
   - Documented JWT features: auto-expiration detection, token refresh, security

**Rationale:**
These updates ensure documentation accurately reflects the actual
implementation, eliminating confusion and providing clear status
for Phase 1 completion and readiness for Phase 2 development.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 13:59:15 +00:00

7.2 KiB

Changelog

All notable changes to the Wiki.js Python SDK will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • N/A

Changed

  • N/A

Deprecated

  • N/A

Removed

  • N/A

Fixed

  • N/A

Security

  • N/A

[0.1.0] - 2025-10-23

MVP Release - Basic Wiki.js Integration

This is the first production-ready release of the Wiki.js Python SDK, delivering a complete, professional-grade SDK for Wiki.js Pages API integration.

Added

Core Implementation

  • WikiJSClient: Complete HTTP client with connection pooling and automatic retry logic
    • Configurable timeout, SSL verification, and custom User-Agent support
    • Context manager support for automatic resource cleanup
    • Connection testing via GraphQL queries
  • Authentication System: Three authentication methods
    • NoAuth: For testing and public instances
    • APIKeyAuth: API key-based authentication with Bearer tokens
    • JWTAuth: JWT token authentication with automatic refresh capability
  • Pages API: Full CRUD operations (679 lines of implementation)
    • list(): List pages with filtering, pagination, search, and sorting
    • get(): Get page by ID
    • get_by_path(): Get page by path with locale support
    • create(): Create new pages with full metadata
    • update(): Update existing pages (partial updates supported)
    • delete(): Delete pages
    • search(): Full-text search across pages
    • get_by_tags(): Filter pages by tags
  • Data Models: Pydantic-based type-safe models
    • Page: Complete page representation with computed properties (word_count, reading_time, url_path)
    • PageCreate: Page creation with validation
    • PageUpdate: Partial page updates
    • Methods: extract_headings(), has_tag()
  • Exception Hierarchy: 11 exception types for precise error handling
    • Base: WikiJSException
    • API: APIError, ClientError, ServerError
    • Specific: NotFoundError, PermissionError, RateLimitError
    • Auth: AuthenticationError, ConfigurationError
    • Connection: ConnectionError, TimeoutError
    • Validation: ValidationError
  • Utilities: Helper functions (223 lines)
    • URL normalization and validation
    • Path sanitization
    • Response parsing and error extraction
    • Safe dictionary access and list chunking

Quality Infrastructure

  • Test Suite: 2,641 lines of test code
    • 231 test functions across 11 test files
    • 87%+ code coverage achieved
    • Unit, integration, and E2E tests
    • Comprehensive fixture system
  • Code Quality Tools:
    • Black for code formatting
    • isort for import sorting
    • flake8 for linting
    • mypy for type checking (strict mode)
    • bandit for security scanning
    • pre-commit hooks configured
  • CI/CD: Gitea Actions pipelines ready
    • Automated testing on push
    • Quality gate enforcement
    • Release automation

Documentation (3,589+ lines)

  • User Documentation:
    • Complete API Reference
    • Comprehensive User Guide with examples
    • Quick Start guide in README
  • Developer Documentation:
    • Contributing guidelines
    • Development guide with workflow
    • Architecture documentation
    • Release planning documentation
  • Governance:
    • Community governance charter
    • Risk management framework
    • Code of conduct
  • Examples:
    • basic_usage.py: Fundamental operations (170 lines)
    • content_management.py: Advanced patterns (429 lines)
    • Examples README with scenarios

Project Infrastructure

  • Project foundation and repository structure
  • Python packaging configuration (setup.py, pyproject.toml)
  • Dependency management (requirements.txt, requirements-dev.txt)
  • Git configuration and .gitignore
  • Issue and PR templates
  • License (MIT)

Changed

  • N/A (initial release)

Deprecated

  • N/A (initial release)

Removed

  • N/A (initial release)

Fixed

  • N/A (initial release)

Security

  • Automated security scanning with bandit
  • Input validation on all public APIs
  • No hardcoded credentials or secrets
  • SSL certificate verification enabled by default
  • API key masking in logs

Release Planning

[0.1.0] - Released: 2025-10-23

MVP Release - Basic Wiki.js Integration - COMPLETE

Delivered Features

  • Core WikiJSClient with HTTP transport
  • Three authentication methods (NoAuth, API Key, JWT)
  • Pages API with full CRUD operations (list, get, create, update, delete)
  • Additional operations: search, get_by_path, get_by_tags
  • Type-safe data models with Pydantic
  • Comprehensive error handling (11 exception types)
  • 87%+ test coverage (231 tests)
  • Complete API documentation (3,589+ lines)
  • Gitea release publication

Success Criteria - ALL MET

  • Package installable via pip install git+https://gitea.hotserv.cloud/lmiranda/wikijs-sdk-python.git
  • Basic page operations work with real Wiki.js instance
  • All quality gates pass (tests, coverage, linting, security)
  • Documentation sufficient for basic usage
  • Examples provided (basic_usage.py, content_management.py)

[0.2.0] - Target: 4 weeks from start

Essential Features - Complete API Coverage

Planned Features

  • Users API (full CRUD operations)
  • Groups API (management and permissions)
  • Assets API (file upload and management)
  • System API (health checks and info)
  • Enhanced error handling with detailed context
  • Configuration management (file and environment-based)
  • Basic CLI interface
  • Performance benchmarks

[0.3.0] - Target: 7 weeks from start

Production Ready - Reliability & Performance

Planned Features

  • Retry logic with exponential backoff
  • Circuit breaker for fault tolerance
  • Intelligent caching with multiple backends
  • Rate limiting and API compliance
  • Performance monitoring and metrics
  • Bulk operations for efficiency
  • Connection pooling optimization

[1.0.0] - Target: 11 weeks from start

Enterprise Grade - Advanced Features

Planned Features

  • Full async/await support with aiohttp
  • Advanced CLI with interactive mode
  • Plugin architecture for extensibility
  • Advanced authentication (JWT rotation, OAuth2)
  • Enterprise security features
  • Webhook support and verification
  • Multi-tenancy support

Development Notes

Versioning Strategy

  • MAJOR: Breaking changes that require user action
  • MINOR: New features that are backward compatible
  • PATCH: Bug fixes and improvements that are backward compatible

Quality Standards

All releases must meet:

  • >85% test coverage (>90% for minor releases)
  • 100% type coverage on public APIs
  • All quality gates pass (linting, formatting, security)
  • Complete documentation for new features
  • No known critical bugs

Community Involvement

  • Feature requests welcomed through GitHub issues
  • Community feedback incorporated into release planning
  • Breaking changes require community discussion period
  • Beta releases available for testing major features

This changelog is maintained as part of our commitment to transparency and professional development practices. All changes are documented to help users understand what's new, what's changed, and how to upgrade safely.