A
Apprise
A flexible notification plugin for MedusaJS using Apprise, enabling multichannel notifications with ease.
MedusaJS Apprise Notification Plugin
A flexible notification plugin for MedusaJS using Apprise, enabling multichannel notifications with ease.
🌟 Features
- Support for multiple notification channels (email, SMS, etc.)
- Configurable via MedusaJS modules
- Leverages Apprise's powerful notification routing
- Flexible axios-based client configuration
📦 Installation
Install the package using npm:
npm install @vymalo/medusa-apprise
Or using yarn:
yarn add @vymalo/medusa-apprise
🚀 Usage
Configuration
Add the plugin to the section of your MedusaJS configuration:
modules: [{resolve: "@medusajs/medusa/notification",options: {providers: [{resolve: `@vymalo/medusa-apprise`,id: "apprise",options: {client: {baseURL: 'http://localhost:8000/notify', // Apprise API service URLheaders: {"Content-Type": "application/json"}},handlers: {email: (notification: ProviderSendNotificationDTO) => [{urls: [`mailgun:///noreply@example.com/4b4f2918fd-dk5f-8f91f/${notification.to}`,`ses://test@test.com/<access-key>/<secret-key>/<aws-region>/admin@email.com`,],body: `[${notification.template}] ${JSON.stringify(notification.data, null, 4)}`}],// More channel handlers...},},},],},},// Other modules...]
🔧 Configuration Options
Client Configuration
The option uses axios configuration, allowing full customization of the HTTP client.
Handlers
Define custom handlers for different notification channels:
- : Email notification handler
- : SMS notification handler
- Add more as needed
Notification Payload
type AppriseNotificationPayload = {urls: string[]; // Notification destination URLsbody: string; // Notification bodytitle?: string; // Optional notification titletype?: 'info' | 'warning' | 'failure'; // Notification typeformat?: 'text' | 'markdown' | 'html'; // Notification formattag?: string; // Optional tag for notification}
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.