• JavaScript 59.3%
  • PowerShell 16%
  • Shell 12.9%
  • HTML 6.2%
  • CSS 5.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
wagesj45 fbfdab048b Add storage permission for account persistence
Include the Thunderbird storage permission required for browser.storage.local and make AccountStore fail fast when storage.local is unavailable.
2026-04-19 18:55:38 -05:00
docs Use Thunderbird background scripts for MV3 2026-04-19 01:56:14 -05:00
src Add storage permission for account persistence 2026-04-19 18:55:38 -05:00
ui Add initial PsiTransfer Filelink provider scaffold 2026-04-19 01:26:45 -05:00
vendor Add initial PsiTransfer Filelink provider scaffold 2026-04-19 01:26:45 -05:00
.gitignore Add initial PsiTransfer Filelink provider scaffold 2026-04-19 01:26:45 -05:00
AGENTS.md Add Thunderbird conventions note to AGENTS.md 2026-04-19 18:54:31 -05:00
build-xpi.ps1 Add initial PsiTransfer Filelink provider scaffold 2026-04-19 01:26:45 -05:00
build-xpi.sh Add initial PsiTransfer Filelink provider scaffold 2026-04-19 01:26:45 -05:00
LICENSE Initial commit 2026-04-18 23:33:39 -05:00
manifest.json Add storage permission for account persistence 2026-04-19 18:55:38 -05:00
README.md Add initial PsiTransfer Filelink provider scaffold 2026-04-19 01:26:45 -05:00

FileLink-PsiTransfer

Thunderbird Manifest V3 Filelink/cloudFile provider for PsiTransfer.

Current status: minimal v1 upload path implemented. The extension now performs a source-informed tus upload, locks the PsiTransfer bucket, and returns the bucket share URL to Thunderbird. Delete, rename, and upload reuse remain intentionally unimplemented until the PsiTransfer source proves a stable provider-facing contract.

The real integration contract must be derived from:

This repository already includes:

  • manifest.json for a Thunderbird MV3 cloud_file provider
  • background and provider scaffolding under src/
  • a minimal account management UI under ui/
  • a vendored local copy of tus-js-client at vendor/tus.js
  • implementation notes in docs/psitransfer-notes.md
  • agent workflow guidance in AGENTS.md

Current provider behavior:

  1. Read GET /config.json from the configured base URL with the optional x-passwd header.
  2. Upload one Thunderbird attachment to one PsiTransfer bucket using the vendored tus client.
  3. Lock the bucket with PATCH /files/:sid?lock=yes.
  4. Return the bucket share URL /<sid> to Thunderbird.

Configuration notes:

  • baseUrl should point at the PsiTransfer download/share root.
  • uploadAppPath is optional and defaults to /. Use it only when the server mounts uploads under a subpath relative to baseUrl, because config.json does not expose uploadAppPath.
  • The provider validates retention values and max file size against config.json.
  • If the PsiTransfer server requires bucket passwords, the provider currently stops with an explicit error because bucket-password UI is not implemented yet.

Building:

  • Run ./build-xpi.sh on Unix-like systems or powershell ./build-xpi.ps1 on Windows.
  • The scripts read the version from manifest.json and write release/psitransfer-filelink-<version>.xpi.

Do not assume PsiTransfer exposes a polished external API. This scaffold is intentionally conservative and keeps unresolved behavior as explicit TODOs.