Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for exporting documents/messages #21

Closed
eloquence opened this issue Sep 11, 2018 · 9 comments
Closed

Add support for exporting documents/messages #21

eloquence opened this issue Sep 11, 2018 · 9 comments

Comments

@eloquence
Copy link
Member

As a journalist, I want to be able to export all messages and files associated with a source, so that I can handle archival and other post-submission work as I see fit.

"Export" in this case means creating a copy, e.g., on a USB drive.

There are two types of export workflows we should support:

  • exporting a single file
  • exporting an entire source (all messages/files)

Ideally we should support both in the first iteration, but if we have to compromise, we can start with single file export.

@eloquence
Copy link
Member Author

Should export be in encrypted form; if so, what key should be used?

@eloquence eloquence added this to the 0.1alpha milestone Sep 11, 2018
@eloquence
Copy link
Member Author

eloquence commented Sep 26, 2018

Per discussion with @redshiftzero, the export would not be in encrypted form for 0.1.0alpha. If/when we support YubiKey/NitroKey type devices for journalists' private keys, we may want to use that key as well for secure export functionality.

The user experience here still looks pretty complicated (show dialog asking user to insert device and attach it to VM; attempt to access device; if successful, copy files; ask user to detach the device). Are there ways we could simplify that experience, e.g., by having the VM request permission to access an inserted device, rather than the user having to manually grant it?

@eloquence
Copy link
Member Author

Preliminary prototype by @ninavizz for what the export wizard could look like:

https://projects.invisionapp.com/share/B5OKY9YRN7H#/screens/325612328

The first test we've run of this workflow suggests that users may not intuitively understand that this is a wizard with multiple steps. They may attempt to complete the process by clicking "Drive attached" before they've stepped through all the required instructions.

Some ideas for how this could be re-worked:

  • Remove the "Drive attached" button from the wizard until the final step
  • When the user clicks the "Drive attached" button, it would take you to a screen something like this:
    "Attempting to detect safe USB drive :spinner.gif:"

If this times out, we show a warning/error and invite the user to try again by following the steps.

If the user clicks the "Don't show instructions" checkbox, it would immediately go to that screen.

Does that seem workable? Are there other ways we could make this simpler for the user?

@ninavizz
Copy link
Member

The wireframes (in the prototype) show literally my first stab at sketching-out the workflow. Totally open to more ideas! Also looking forward to refining it as things progress. :)

@ninavizz
Copy link
Member

@eloquence eloquence modified the milestones: 0.1.0alpha, 0.1.0beta Oct 31, 2018
@eloquence
Copy link
Member Author

We've decided to remove this from the alpha goals. For the purposes of the audit, we will merely document the intended workflow for export, so the auditors can give us feedback on whether this seems architecturally sound.

@eloquence
Copy link
Member Author

Per discussion in freedomofpress/securedrop-workstation#84 we're increasingly thinking that this should take the form of a disposable export VM.

The workflow could be similar to a shopping basket, where the client lets you collect an arbitrary number of documents which then can be exported into a USB-connected disposable VM.

This could include optional pre-processing steps such as conversion of PDF files to trusted PDFs (see #235).

@eloquence
Copy link
Member Author

See freedomofpress/securedrop-ux#57 (comment) for the agreed upon export flow.

@eloquence eloquence added this to Nominated for next sprint in SecureDrop Team Board Jul 9, 2019
@eloquence eloquence moved this from Nominated for next sprint to Current Sprint - 7/10-7/24 in SecureDrop Team Board Jul 10, 2019
@eloquence eloquence changed the title Add support for exporting documents/messages associated with a source Add support for exporting documents Jul 17, 2019
@eloquence eloquence changed the title Add support for exporting documents Add support for exporting documents/messages Jul 17, 2019
@eloquence eloquence moved this from Current Sprint - 7/10-7/24 to Nominated for next sprint in SecureDrop Team Board Jul 23, 2019
@eloquence eloquence moved this from Nominated for next sprint to Near Term Backlog in SecureDrop Team Board Jul 24, 2019
@eloquence eloquence moved this from Near Term Backlog to Nominated for next sprint in SecureDrop Team Board Aug 5, 2019
@eloquence
Copy link
Member Author

Closing in favor of more clearly scoped #526 and follow-up issues.

SecureDrop Team Board automation moved this from Nominated for next sprint to Done Aug 7, 2019
@eloquence eloquence removed this from Done in SecureDrop Team Board Aug 7, 2019
legoktm pushed a commit that referenced this issue Dec 11, 2023
Fresh wheels's sha256sums from the s3 bucket
legoktm pushed a commit that referenced this issue Dec 11, 2023
Uses new reproducible wheels from our builds
legoktm pushed a commit that referenced this issue Dec 15, 2023
Adds APIProxy class to use securedrop-proxy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants