Skip to content

Async media download, TimerService hardening, SSRF protection#20

Open
hermesj wants to merge 1 commit into
mainfrom
feature/async-media-download
Open

Async media download, TimerService hardening, SSRF protection#20
hermesj wants to merge 1 commit into
mainfrom
feature/async-media-download

Conversation

@hermesj

@hermesj hermesj commented Mar 14, 2026

Copy link
Copy Markdown
Owner

Replace synchronous image download during import with async MediaDownloadService that downloads images in the background with retry logic, size limits (10 MB BoundedInputStream), and SSRF protection (HTTPS-only, private IP blocking).

Overhaul TimerService: use ConcurrentHashMap for thread safety, add SLF4J logging, media publish retry (30 attempts), fix scheduling guard that dropped near-due tasks, add graceful shutdown.

Fix ServerService domain being overwritten by Mastodon self-reported domain. Add LoadStatus enum to MediaEntity. UI shows download progress with auto-refresh. Enable button disabled while media loads.

Replace synchronous image download during import with async
MediaDownloadService that downloads images in the background with
retry logic, size limits (10 MB BoundedInputStream), and SSRF
protection (HTTPS-only, private IP blocking).

Overhaul TimerService: use ConcurrentHashMap for thread safety,
add SLF4J logging, media publish retry (30 attempts), fix
scheduling guard that dropped near-due tasks, add graceful shutdown.

Fix ServerService domain being overwritten by Mastodon self-reported
domain. Add LoadStatus enum to MediaEntity. UI shows download
progress with auto-refresh. Enable button disabled while media loads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant