#155 · Wire MinIO + PeerTube + ClamAV auto-archive into SimpleX !save
+240 pts awarded
View on GitLab
Description
Context
SimpleX !save/!archive extracts and dedups URLs but does not upload files to MinIO, mirror videos to PeerTube, or virus-scan attachments. MinIO/PeerTube/Shlink are already in compose.yml, just unwired.
Acceptance criteria
- [ ]
!save <url>of a file uploads to MinIO and returns a presigned link (dual-client: internal endpoint for ops, public endpoint for signed URLs). - [ ]
!save <url>of a video archives to PeerTube whenisPeertubeConfigured(). - [ ] Received attachments are ClamAV-scanned before any upload; infected files are rejected with a clear message.
- [ ] Every integration gated by its
is*Configured()guard; cleanfeatureDisabled()fallback when off. - [ ] Long URLs auto-shorten via Shlink when
isShortlinkConfigured()(fallback to long URL).
Technical hints
- Signal reference:
!save/!archive+handleVirusScaninsignal-messenger/src/src/bot/command-handler.ts; auto-scan/archive insignal-bot-v2.ts. - SimpleX target:
simplex/src/src/bot/commands/utility/save.command.ts+src/src/utils/attachment-utils.ts. - Reuse the MinIO/PeerTube/Shlink/ClamAV clients in
packages/shared-utils/src/bot-utils/. - Dual-client MinIO trap: generate presigned URLs against the public endpoint or signatures mismatch.
--- Submit a merge request that says Closes #<this issue iid> in the description. On merge to main, the GitLab webhook auto-awards feature_bounty_<tier> + the standard merge_pr (40 pts) to your scoreboard account. Your commit email must match your Authentik email. Backlog context: docs/simplex-parity-bounties.md.
Relevant files
No relevant files linked yet.
Hints
No hints yet.
Activity
No points have been awarded for this bounty yet.
Comments
Sign in to join the discussion.
No comments yet. Be the first to weigh in.