A Front composer plugin that lists all attachments in a message draft and allows users to encrypt them before sending for secure transmission.
Learn more about this project on our Developer Portal and access the AI prompt file that created it.
- 📎 Attachment Listing: View all attachments in your current draft
- 🔒 Individual Encryption: Encrypt attachments one by one
- ⚡ Bulk Encryption: Encrypt all attachments with one click
- 🔍 Debug Mode: Comprehensive debugging tools for development
- 🌙 Dark Mode: Automatic dark/light mode support
- 📱 Responsive: Works well in Front's sidebar layout
- Node.js (version 16 or higher)
- A Front workspace with developer permissions
npm install
npm run dev
Note the localhost URL where the plugin is running (typically http://localhost:5173
)
- In your Front company settings, click Developers
- Click Create new app
- Fill in your app details:
- Name: Attachment Encryptor Plugin
- Description: Encrypt attachments before sending
- In your newly created app, click Add feature
- Select Plugin as the feature type
- Choose Composer toolbar as the entry point
- Set the Plugin URL to your localhost address (e.g.,
http://localhost:5173
)
To access debugging tools, append ?debug=true
to your plugin URL:
http://localhost:5173?debug=true
- Open Front and start composing a new message
- Add one or more attachments to your draft
- Look for the Attachment Encryptor plugin in the composer toolbar
- The plugin will display your attachments and allow you to encrypt them
- Attachment List: Shows all attachments in your draft with filename, size, and content type
- Encrypt Button: Click to encrypt individual attachments
- Encrypt All: Bulk encrypt all non-encrypted attachments
- Status Indicators: Visual badges show which files are encrypted
When enabled with ?debug=true
, you get access to:
- Teammate Information: Current user details
- Draft Information: Complete draft metadata
- Conversation Details: Context about the current conversation
- Attachments: Detailed view of all attachments in messages and drafts
- Technical Documentation: Architecture and implementation details
- Debug Console: Live context JSON and debug logs
- Use established encryption libraries (e.g., Web Crypto API)
- Implement AES-256 or similar strong encryption
- Consider key management and secure key exchange
- Validate encrypted file integrity
src/
├── components/
│ ├── AttachmentEncryptor.tsx # Main plugin interface
│ └── DebugPanel.tsx # Debug information panel
├── providers/
│ └── frontContext.tsx # Front SDK context provider
├── App.tsx # Main application component
├── App.css # Application styles
├── index.css # Global styles
└── main.tsx # Application entry point
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production build
contextUpdates.subscribe()
- Real-time context updatesdownloadComposerAttachment()
- Download attachment filesupdateDraft()
- Update draft with encrypted attachmentslistMessages()
- Retrieve conversation messages
-
Build the plugin:
npm run build
-
Deploy the
dist
folder to your hosting service -
Update your Front app's plugin URL to point to your production domain
-
Test thoroughly with various file types and sizes
- Check that your localhost server is running
- Verify the plugin URL in your Front app settings
- Check browser console for CSP or CORS errors
- Ensure attachments have valid IDs (they're saved in the draft)
- Check that the Front SDK can access the attachment files
- Look at debug logs for specific error messages
- Verify the URL includes
?debug=true
- Clear browser cache and reload the plugin
MIT License - feel free to use and modify for your needs.