Skip to content

Data Handling

This page details how FileSafety handles your files from upload to deletion, what data is stored, and the encryption methods used at every stage.

Every file uploaded to FileSafety follows a strict lifecycle with automatic deletion:

T+0s File uploaded to encrypted file storage (AES-256)
T+1-5s File queued for scanning
T+5-20s Scan engines process the file
T+15-30s Scan results written to the database
T+15-30s Webhook delivered to your endpoint
T+24h File automatically deleted from storage
TimeEventData state
UploadFile stored in encrypted file storageEncrypted at rest (AES-256), encrypted in transit (TLS 1.3)
+1-5 secondsScan message queuedFile remains in encrypted storage
+5-20 secondsScan engines process the fileFile read by virus and NSFW detection engines in isolated compute
+15-30 secondsScan completeResults stored in database; webhook delivered
+24 hoursAuto-deletionFile permanently removed via lifecycle policy

Files are never moved out of encrypted storage. They remain in place until the lifecycle policy deletes them.

All files are encrypted at rest using AES-256 server-side encryption. Encryption is applied automatically when the file is written to storage — there is no unencrypted window.

DataEncryption
Uploaded filesAES-256
Scan resultsAES-256

All data in transit is encrypted with TLS 1.3:

PathProtocol
Client to API endpointTLS 1.3
Client to presigned URL uploadTLS 1.3
Internal service communicationTLS via private endpoints
Webhook delivery to your endpointHTTPS (TLS)

Older TLS versions (1.0, 1.1, 1.2) are not accepted for API requests.

DataStorageRetention
File binary contentEncrypted file storage24 hours (auto-deleted)
DataStorageRetention
Scan IDDatabaseIndefinite
Verdict (clean/infected/nsfw/mixed/failed)DatabaseIndefinite
Virus scan result (engine, clean flag, signature)DatabaseIndefinite
NSFW scan result (clean flag, categories, confidence)DatabaseIndefinite
File cryptographic hashDatabaseIndefinite
Scan completion timestampDatabaseIndefinite
User-provided metadataDatabaseIndefinite
DataStored?
File content (after 24h)No — permanently deleted
File nameNo
IP addresses of uploadersNo
File content in application logsNo
Raw NSFW analysis outputNo — only the verdict, categories, and confidence are stored

FileSafety does not log file content at any stage of processing. Application logs contain:

  • Scan IDs
  • Status transitions
  • Error messages (without file content)
  • Timing information

File bytes are never written to stdout or any logging pipeline.

The metadata field you provide when submitting a scan is stored alongside the scan results in the database. This data:

  • Is encrypted at rest
  • Is returned in scan poll responses and webhook payloads
  • Persists indefinitely with the scan record
  • Is limited to 4 KB maximum
  • Is under your control — you decide what to include

Do not include sensitive information (passwords, tokens, PII) in the metadata field. While it is encrypted at rest, it is returned in API responses and webhook payloads.

When using the presigned URL flow:

  • The presigned URL is scoped to a single object in encrypted file storage
  • The URL expires after 15 minutes
  • Only the PUT method is allowed — the URL cannot be used to read or list other objects
  • The URL is signed with temporary credentials, not long-lived keys

API keys are hashed using a cryptographic hash before being stored. The plaintext key is:

  • Generated server-side and returned to you once at creation time
  • Never stored in plaintext
  • Not recoverable — if lost, you must regenerate

Files are deleted 24 hours after upload via a lifecycle policy. This is automatic and cannot be extended or shortened.

Contact support to request deletion of specific scan records. This removes the verdict, hash, and metadata associated with a scan.

When you delete your account:

  • All scan records are removed from the database
  • Any files still within the 24-hour window are deleted from storage
  • Your API key hash is removed
  • Billing data is retained by Stripe per their data retention policies