- Fixes bug on async adapters: The instanciation of the service with strings wasn't enabling using adapters with kwargs
- Simplified publish workflow
- Fix duplicate runs on every push
- NEW: Added comprehensive file attachment support for notifications
- Multiple Input Types: Support for file paths, URLs, bytes data, file-like objects, and Path objects
- URL Downloads: Automatic download of remote files from HTTP/HTTPS, S3, Google Cloud Storage, and Azure Blob Storage URLs
- Content Type Detection: Automatic MIME type detection based on file extensions
- Inline Attachments: Support for inline images in HTML emails with
is_inlineflag - Backend Integration: New storage interfaces for backends to implement attachment persistence
- Adapter Integration: Updated adapter interfaces to handle attachments in email sending
- NEW: Send notifications directly to email addresses or phone numbers without requiring user IDs
- Direct Targeting: Use email addresses or phone numbers as direct targets
- Use Cases: Perfect for welcome emails, marketing campaigns, and external party notifications
- Full Feature Support: One-off notifications support all standard features including attachments, scheduling, and templating
- Added
attachmentsparameter tocreate_notification()method - Added
attachmentsparameter tocreate_one_off_notification()method - Added
attachmentsparameter toupdate_notification()method - New
create_one_off_notification()method for direct email/phone targeting - Enhanced AsyncIO support for all new features
- NEW:
NotificationAttachmentclass for defining file attachments - NEW:
StoredAttachmentclass for backend-stored attachment metadata - NEW:
OneOffNotificationclass for non-user-targeted notifications - NEW:
FileAttachmenttype alias supporting multiple input formats - NEW:
AttachmentFileabstract base class for stored file access
- Added attachment storage methods to
BaseNotificationBackend - Added one-off notification persistence to backend interfaces
- Enhanced AsyncIO backend interfaces with attachment support
- New abstract methods for attachment lifecycle management
- Enhanced adapter interfaces to handle attachments in notification sending
- Updated template renderer interfaces for attachment-aware rendering
- Backward compatible changes with optional attachment parameters
- All existing APIs remain fully functional
- Optional attachment parameters maintain backward compatibility
- Existing notifications continue to work without modification
- No breaking changes to core interfaces
- Comprehensive test suite for attachment functionality (1300+ test lines)
- Tests for all file input types and edge cases
- AsyncIO and sync testing coverage
- Validation and error handling test cases
- End-to-end attachment workflow testing
- Updated README with attachment examples and usage patterns
- New glossary entries for attachments and one-off notifications
- AsyncIO examples for all new features
- Import statements updated for new classes
- Updated setuptools dependency for security improvements
- Enhanced type hints and type safety
- Improved error handling and validation
- Added comprehensive docstrings for new features
For backend and adapter package maintainers:
- See
MIGRATION_TO_1.0.0.mdfor detailed implementation guidance - New abstract methods need implementation in external packages
- Stub implementations provided as reference
- Backward compatibility maintained for gradual migration
Initial version of VintaSend with core notification functionality.