• JavaScript 59.3%
  • PowerShell 16%
  • Shell 12.9%
  • HTML 6.2%
  • CSS 5.6%
Find a file
2026-04-19 01:56:14 -05:00
docs Use Thunderbird background scripts for MV3 2026-04-19 01:56:14 -05:00
src Use Thunderbird background scripts for MV3 2026-04-19 01:56:14 -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
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 Use Thunderbird background scripts for MV3 2026-04-19 01:56:14 -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.