libs/tools/send) provides secure, ephemeral sharing functionality for Bitwarden. Send allows users to transmit sensitive information (text or files) to anyone through an encrypted, self-destructing link.
Overview
The Send library is split into two main packages:- @bitwarden/send-core - Core types, models, and services for Send functionality
- @bitwarden/send-ui - Angular UI components for Send management
- Bitwarden Web Vault
- Desktop Application
- Browser Extension
- CLI
Architecture
The Send library follows a service-oriented architecture with clear separation between core business logic and UI presentation.Core Services
SendFormService
File:libs/tools/send/send-ui/src/send-form/abstractions/send-form.service.ts
Service for creating and modifying Sends, handling encryption and server communication.
Methods:
SendItemsService
File:libs/tools/send/send-ui/src/services/send-items.service.ts
Manages the list of user’s Sends, providing filtering, sorting, and state management.
SendListFiltersService
File:libs/tools/send/send-ui/src/services/send-list-filters.service.ts
Handles filtering logic for Send lists (by type, expiration, deletion date, etc.).
Send Types
Sends support two content types:Text Send
Shares text content securely. The text is encrypted and can only be accessed through the generated link. Properties:- Text content (encrypted)
- Optional hiding of text (requires manual reveal)
- Maximum access count
- Expiration date
- Deletion date
- Password protection
File Send
Shares files securely. Files are encrypted before upload and can only be downloaded through the generated link. Properties:- Encrypted file (up to 1GB for premium users)
- File name and size
- Maximum access count
- Expiration date
- Deletion date
- Password protection
Components
Located inlibs/tools/send/send-ui/src/
SendFormComponent
File:send-form/components/send-form.component.ts
Main component for creating and editing Sends. Provides a complete form interface with validation.
Usage:
SendDetailsComponent
File:send-form/components/send-details/send-details.component.ts
Component for displaying and editing Send details (name, notes, etc.).
SendFileDetailsComponent
File:send-form/components/send-details/send-file-details.component.ts
Component specifically for file Send details, including file selection and upload.
SendTextDetailsComponent
File:send-form/components/send-details/send-text-details.component.ts
Component for text Send details, including text input and hiding options.
SendListComponent
File:send-list/send-list.component.ts
Displays a list of user’s Sends with filtering and search capabilities.
Usage:
SendTableComponent
File:send-table/send-table.component.ts
Table view for displaying Sends with sortable columns.
NewSendDropdownComponent
File:new-send-dropdown/new-send-dropdown.component.ts
Dropdown menu for creating new Sends (text or file).
SendSearchComponent
File:send-search/send-search.component.ts
Search interface for filtering Sends by name or notes.
SendListFiltersComponent
File:send-list-filters/send-list-filters.component.ts
UI component for Send filtering options (type, status, etc.).
Send Configuration
TheSendFormConfig interface defines how the Send form behaves:
Send Models
Sends use the following key models from@bitwarden/common:
SendView
Decrypted Send data for display and editing:Send
Encrypted Send data for storage:Creating a Send
Example: Creating a Text SendSend Permissions
Send functionality can be restricted by:- User Account Type - Premium features for file Sends
- Organization Policies - Admins can disable Send for users
- Send Limits - File size limits, access count limits
Security Features
- End-to-End Encryption - All Send content is encrypted before leaving the client
- Zero-Knowledge - Bitwarden servers cannot decrypt Send content
- Access Controls - Maximum access counts, expiration dates, deletion dates
- Password Protection - Optional password requirement for accessing Sends
- Email Hiding - Option to hide sender’s email from recipients
- Audit Trail - Access count tracking
Integration Example
Complete Send Workflow:Related
- Generator Library - Password and credential generation
- Export Library - Vault import/export