bitwarden/server
Send
A Send is an encrypted, time-bounded share. Defined at src/Core/Tools/Entities/Send.cs and persisted to dbo.Send.
Important columns
| Column | Notes |
|---|---|
Id (Guid), UserId |
Owner. |
OrganizationId |
Always null at the moment — Sends are personal-only. |
Type |
SendType enum: Text or File. |
Data |
Encrypted JSON payload. For File, the data references an Azure Blob upload. |
Key |
The Send-specific key, wrapped under the user key. |
Password |
Optional password hash gating access. |
MaxAccessCount, AccessCount |
Hard cap on accesses. |
ExpirationDate, DeletionDate |
Time bounds. DeletionDate is the auto-purge date. |
Disabled, HideEmail |
Owner toggles. |
RevisionDate, CreationDate |
Audit. |
Stored procedures
Send_Create,Send_Update,Send_DeleteById.Send_ReadByUserId— used during sync.Send_DeleteExpired— bulk cleanup, called by theSendCleanupJobQuartz job.
Access flow
graph LR
Owner -->|POST /sends| Send
Send -->|share URL| Recipient
Recipient -->|POST /sends/access/<accessId>| AccessController
AccessController -->|password check| SendAuthorizationService
AccessController -->|return SendAccessTokenable + ciphertext| Recipient
Recipient -->|client decrypts| PlaintextThe recipient never authenticates as a Bitwarden user. The token returned is a SendAccessTokenable scoped to that Send.
Repositories
- Interface:
src/Core/Tools/Repositories/ISendRepository.cs. - Dapper / EF impls under
src/Infrastructure.Dapper/Tools/andsrc/Infrastructure.EntityFramework/Tools/Send/.
Where it shows up
- features/sends — the user-facing feature page.
- features/key-management — Send keys are part of the user-key rotation graph.
- api/internal-api —
/sends,/sends/access/{accessId}.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.