Page MenuHomePhabricator

Add support to Files for file storage formats, to support encryption-at-rest

Authored by epriestley on Jun 15 2016, 4:27 PM.
Referenced Files
F13209390: D16122.id38790.diff
Thu, May 16, 11:50 PM
F13185351: D16122.diff
Sat, May 11, 2:49 AM
Unknown Object (File)
Tue, May 7, 5:15 AM
Unknown Object (File)
Fri, May 3, 2:36 AM
Unknown Object (File)
Thu, May 2, 6:44 PM
Unknown Object (File)
Mon, Apr 29, 2:09 PM
Unknown Object (File)
Wed, Apr 24, 10:13 PM
Unknown Object (File)
Fri, Apr 19, 10:29 AM



Ref T11140. When reading and writing files, we optionally apply a "storage format" to them.

The default format is "raw", which means we just store the raw data.

This change modularizes formats and adds a "rot13" format, which proves formatting works and is testable. In the future, I'll add real encryption formats.

Test Plan
  • Added unit tests.
  • Viewed files in web UI.
  • Changed a file's format to rot13, saw the data get rotated on display.
  • Set default format to rot13:
    • Uploaded a small file, verified data was stored as rot13.
    • Uploaded a large file, verified metadata was stored as "raw" (just a type, no actual data) and blob data was stored as rot13.

Diff Detail

rP Phabricator
Lint Not Applicable
Tests Not Applicable

Event Timeline

epriestley retitled this revision from to Add support to Files for file storage formats, to support encryption-at-rest.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: chad.
chad edited edge metadata.
This revision is now accepted and ready to land.Jun 15 2016, 5:00 PM
This revision was automatically updated to reflect the committed changes.
helladopee added a task: Restricted Maniphest Task.Jun 25 2016, 3:27 AM
chad removed a task: Restricted Maniphest Task.Jun 25 2016, 4:03 AM