User Workflows
SecuFile — User Workflows
User Workflows
User Workflows
Registration and First Use
SaaS Registration Flow
- The user navigates to the registration page (
/signup) - Step 1: Enter email and password
- Step 2: Company information (name, address)
- Step 3: Plan selection (Free, Pro, Business)
- For paid plans, a Stripe CardElement form is displayed
- Payment uses a Stripe SetupIntent with a 14-day free trial
- Step 4: Confirmation and account creation
What the backend does automatically during registration:
- Creates the user with the
client_adminrole - Creates the associated organization
- Creates the Stripe customer
- Provisions a dedicated OVH S3 bucket
- Generates the organization's RSA-4096 key pair
- Creates default folders (uploads, transfert, Data)
- Assigns the selected plan and creates the subscription
- Sends a welcome email
MFA Activation
- The user navigates to their profile (
/profile) - Clicks "Enable two-factor authentication"
- The API generates a TOTP secret and QR code
- The user scans the QR code with a TOTP app (Google Authenticator, etc.)
- Confirms with a 6-digit code
- MFA is activated for subsequent logins
File Management
File Upload
The React frontend handles two upload modes:
Mode 1: Client-side encryption (E2E)
- The user selects one or more files
- The browser generates a random AES-256 key
- The file is encrypted in chunks in the browser (Web Crypto API)
- The AES key is encrypted with the organization's RSA public key
- The encrypted file + encrypted key are sent to the server
- The server stores directly in S3 (streaming, no buffering)
Mode 2: Server-side encryption
- The user selects a file
- The file is sent in plaintext to the server (TLS in transit)
- The server encrypts with AES-256-GCM and stores in S3
- The encryption key is managed by the server
File Download
- The user clicks on a file in the list
- If client-side encrypted (
uses_custom_key=true):- The encrypted file is downloaded
- The browser decrypts using the organization's RSA private key
- The plaintext file is offered for download
- If server-side encrypted:
- The server decrypts and returns the plaintext file
Folder Management
- Creation: Click "New folder" with hierarchical navigation
- Rename: Via the context menu (three dots)
- Move: Via the context menu or batch (select + "Move" button)
- Delete: Recursive (deletes subfolders and files)
- Navigation: Clickable breadcrumb with navigable folder tree
Batch Operations
- Select multiple files/folders via checkboxes
- The batch action bar appears at the bottom of the page
- Available actions:
- Delete: Batch deletion
- Move: Opens the folder tree picker to choose a destination
File Sharing (Share Links)
Creating a Download Link
- Context menu on a file > "Share"
- Link configuration:
- Link name
- Password protection (optional)
- Expiration date
- Maximum number of downloads
- The generated token is displayed and copyable
- Public URL:
https://secufile.secuaas.dev/s/{token}
Creating an Upload Link
- Dashboard > "Create upload link"
- Navigate the folder tree to choose a destination
- Configuration similar to download links
- Files uploaded by third parties are stored in a named subfolder
Using a Share Link (external perspective)
- The external user accesses the public URL
- If a Loi 25 consent text is configured:
- The text is displayed with a checkbox
- Acceptance is traced in the audit trail
- If password protected: password entry required
- For a download link: The file is downloaded
- For an upload link: The file deposit form is displayed
Secure Transfers
Sending a Transfer
- Transfers page > "New Transfer"
- Navigate folders to select files
- Configuration:
- Name and description (TinyMCE editor)
- Recipient email (automatic notification)
- Expiration date (max 30 days)
- Agreement required (optional)
- Selected files are copied to a dedicated transfer folder
Receiving a Transfer
- The recipient receives an email with the link
- Accesses the public transfer page
- If agreement required: accepts the terms
- Downloads the files
- The
viewed_attracking is recorded on first consultation