2.1 KiB
2.1 KiB
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.