FileLink adapter for Thunderbird
https://addons.thunderbird.net/en-US/thunderbird/addon/psitransfer-filelink/
- JavaScript 59.3%
- PowerShell 16%
- Shell 12.9%
- HTML 6.2%
- CSS 5.6%
Include the Thunderbird storage permission required for browser.storage.local and make AccountStore fail fast when storage.local is unavailable. |
||
|---|---|---|
| docs | ||
| src | ||
| ui | ||
| vendor | ||
| .gitignore | ||
| AGENTS.md | ||
| build-xpi.ps1 | ||
| build-xpi.sh | ||
| LICENSE | ||
| manifest.json | ||
| README.md | ||
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:
/tmp/psitransfer- https://webextension-api.thunderbird.net/en/mv3/cloudFile.html
This repository already includes:
manifest.jsonfor a Thunderbird MV3cloud_fileprovider- background and provider scaffolding under
src/ - a minimal account management UI under
ui/ - a vendored local copy of
tus-js-clientatvendor/tus.js - implementation notes in
docs/psitransfer-notes.md - agent workflow guidance in
AGENTS.md
Current provider behavior:
- Read
GET /config.jsonfrom the configured base URL with the optionalx-passwdheader. - Upload one Thunderbird attachment to one PsiTransfer bucket using the vendored tus client.
- Lock the bucket with
PATCH /files/:sid?lock=yes. - Return the bucket share URL
/<sid>to Thunderbird.
Configuration notes:
baseUrlshould point at the PsiTransfer download/share root.uploadAppPathis optional and defaults to/. Use it only when the server mounts uploads under a subpath relative tobaseUrl, becauseconfig.jsondoes not exposeuploadAppPath.- 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.shon Unix-like systems orpowershell ./build-xpi.ps1on Windows. - The scripts read the version from
manifest.jsonand writerelease/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.