-
Notifications
You must be signed in to change notification settings - Fork 13
Open
0 / 50 of 5 issues completedOpen
0 / 50 of 5 issues completed
Copy link
Labels
enhancementNew feature or requestNew feature or request
Milestone
Description
Description
This parent issue tracks the completion of several CloudKit Web Services operations and type definitions that are currently missing from MistKit's public API. While the OpenAPI-generated client code includes these operations, they lack public-facing wrappers and supporting Swift types.
Overview
MistKit's OpenAPI specification includes these operations in the generated code, but they need:
- Public API wrappers with proper Swift types
- Error handling and response processing
- Integration with existing MistKit patterns (logging, middleware, etc.)
- Documentation and examples
- Unit tests
Child Issues
Operations (API Wrappers Needed)
| Issue | Operation | Description | Priority | Estimate |
|---|---|---|---|---|
| #30 | assets/upload |
Upload asset files to CloudKit | Medium-High | 4-6 hours |
| #46 | changes/database |
Fetch database-level changes | Medium | 3-4 hours |
| #44 | zones/lookup |
Fetch zones by identifier | Low-Medium | 2-3 hours |
Subtotal Operations: 9-13 hours
Type Definitions (Swift Types Needed)
| Issue | Type | Description | Priority | Estimate |
|---|---|---|---|---|
| #25 | System Fields | CloudKit system fields (created, modified, createdBy, modifiedBy) | Medium | 3-4 hours |
| #26 | Name Components | User name components (given, family, nickname, etc.) | Low-Medium | 2-3 hours |
Subtotal Types: 5-7 hours
Total Estimate
13-18 hours (approximately 2-3 working days)
Benefits
- API Completeness: Exposes all CloudKit Web Services operations documented in the OpenAPI spec
- User Experience: Developers can access full CloudKit functionality without workarounds
- Type Safety: Proper Swift types for system fields and user data improve code quality
- Consistency: All operations follow established MistKit patterns
Acceptance Criteria
- All 3 operations have public API wrappers in
CloudKitServiceextensions - System fields integrated into
RecordInfoor separateSystemFieldstype - Name component types defined with proper
Codableconformance - All new APIs follow async/await patterns
- Error handling consistent with existing MistKit error types
- Unit tests for all new APIs (minimum 80% coverage)
- Documentation comments for all public APIs
- Examples added to
CLAUDE.mdor separate documentation
Implementation Notes
Assets Upload (#30)
- Needs special handling for multipart file upload
- Consider
Data,URL, andAsyncSequence<UInt8>input types - Should support progress tracking for large files
Database Changes (#46)
- Similar to zone changes but at database level
- Returns change tokens for incremental sync
- Important for server-to-server sync scenarios
Zones Lookup (#44)
- Batch lookup of zones by identifier
- Complementary to existing
listZones()operation
System Fields (#25)
recordChangeTag,created,modified,deleted(for tombstones)- Consider adding to
RecordInfovs. separate type
Name Components (#26)
- Used by user discovery APIs
givenName,familyName,nickname,middleName,namePrefix,nameSuffix- Should conform to
Codable,Sendable
Related Issues
- Update README roadmap to reflect actual implementation status #182 - README roadmap update (mentions these as "implemented but not exposed")
- Part of v1.0.0-alpha.4 milestone completion
Priority Justification
Medium-High Priority - While these are not blocking core functionality, completing them:
- Closes the gap between generated code and public API
- Enables advanced CloudKit features (assets, database sync)
- Provides full API coverage expected in a 1.0 release
- Removes confusion about what's "implemented" vs. "exposed"
Sub-issues
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request