Releases: jsaabel/kotlin-notion-client
Releases · jsaabel/kotlin-notion-client
v0.2.0
✨ Added
Query Filters - New property type filters for advanced querying:
- Relation filter: Filter by related pages with
relation("Property").contains(pageId),doesNotContain(),isEmpty(),isNotEmpty() - People filter: Filter by users/assignees with
people("Property").contains(userId),doesNotContain(),isEmpty(),isNotEmpty() - Status filter: Filter by workflow status with
status("Property").equals("Status"),doesNotEqual(),isEmpty(),isNotEmpty() - Unique ID filter: Filter by auto-incrementing IDs with numeric comparisons (
equals(),greaterThan(),lessThan(), etc.) - Files filter: Filter by attachment presence with
files("Property").isEmpty(),isNotEmpty()
Property Types:
- Place property: Full support for location data with
PageProperty.Placeincluding:- Structured access to latitude/longitude coordinates
- Name and address fields
- Convenience accessors:
getPlaceProperty(),getPlaceAsString(),formattedLocation
- Unique ID property: Enhanced with convenience accessors (
getUniqueIdProperty(), properly integrated withgetPlainTextForProperty())
🐛 Fixed
- Unknown property types: Library now gracefully handles property types it doesn't recognize, returning
PageProperty.Unsupportedinstead of failing deserialization
🔧 Changed
- Dependencies: Updated to latest versions of Kotlin, Ktor, and other dependencies
- Gradle: Updated Gradle wrapper to latest version
📊 Statistics
- Test coverage: 514+ unit tests (up from 481)
- New test suites: Integration tests for all new filter types
v0.1.0 - Initial Release
🎉 Initial Release
This is the first public release of the Kotlin Notion Client library.
✨ Features
Core API Support
- Complete implementation of Notion API 2025-09-03
- Full support for Pages, Blocks, Databases, Data Sources, Comments, Search, and Users APIs
- Type-safe Kotlin models for all Notion objects
- Coroutine-based async API using suspend functions
Developer Experience
- Type-safe DSL builders for creating pages, databases, and queries
- Rich Text DSL for formatting text with annotations
- Pagination helpers with Kotlin Flow support
- Rate limiting with automatic retry logic
- Comprehensive error handling
Data Sources & Databases
- Complete CRUD operations for databases and data sources
- Advanced query capabilities with type-safe filter and sort builders
- Relation properties with pagination support
- All database property types supported
Content Management
- Full block type support (paragraph, heading, list, code, etc.)
- Block children operations (append, retrieve, delete)
- Table blocks with row and cell management
- File upload support (single and multipart)
Search & Users
- Search by title with filtering
- User retrieval and listing
- Bot user information
Testing & Quality
- 481+ unit tests with comprehensive coverage
- Integration tests for real API verification
- Test fixtures using official Notion API samples
📚 Documentation
- Complete API documentation for all endpoints
- Usage examples for common operations
- Testing guide with unit and integration test patterns
- Error handling guide
- Rich Text DSL documentation
- Pagination helpers documentation
🔧 Technical Details
- Language: Kotlin 2.2+
- HTTP Client: Ktor
- Serialization: kotlinx.serialization
- DateTime: kotlinx-datetime
- Testing: Kotest
⚠️ Known Limitations
- This library was developed with significant AI assistance (Claude Code)
- Some edge cases may not be fully covered
- Documentation examples should be verified against actual implementation
- See README for full transparency notice
🙏 Acknowledgments
- Built using official Notion API documentation
- Developed with Claude Code assistance
- Inspired by official Notion SDK implementations
Note: This is an early release (0.1.0). While comprehensive testing has been performed, users should expect potential issues and are encouraged to report them via GitHub Issues.