Skip to content

Media Pipeline & Proteksi SSRF

MediaPipeline bertugas mempersiapkan dan mentransformasikan berkas media (gambar, audio, video, dokumen, stiker) untuk pengiriman keluar pada Leaves Guardian. Subsistem ini mencakup pengunduhan streaming, sniffing tipe MIME dari magic number, buffer thresholding (spill-to-disk), dan perlindungan SSRF (Server-Side Request Forgery) terhadap rentang IP privat.

IMPORTANT

MediaPipeline menyiapkan media ke dalam struktur PreparedMedia. Proses transmisi aktual dilakukan secara terpisah oleh TrafficController dan Baileys.


Batasan & Konstanta Pipeline

ParameterNilai BawaanDeskripsi
maxInputBytes100 MB (104.857.600 B)Batas ukuran maksimal stream/file input.
maxOutputBytes100 MB (104.857.600 B)Batas ukuran maksimal file output setelah transformasi.
bufferThresholdBytes10 MB (10.485.760 B)Media < 10MB disimpan di memori; media ≥ 10MB dialihkan ke file disk sementara.
fetchTimeoutMs30000 (30 detik)Batas waktu unduh media remote.
maxRedirects5Batas maksimal redirect HTTP yang diizinkan.
maxConcurrentJobs3Batas maksimal pemrosesan media konkuren.
maxWaitingJobs50Kapasitas maksimal antrean tugas media yang menunggu.
allowPrivateIpfalseProteksi SSRF: memblokir permintaan ke IP loopback, IP lokal RFC-1918, dan metadata cloud.

Penggunaan

javascript
import { LeavesClient } from 'leaves-guardian';

const client = new LeavesClient();

// MediaMessage secara otomatis memanfaatkan MediaPipeline
await client.send(
  '628123456789@s.whatsapp.net',
  client.buildMedia()
    .image('https://example.com/gambar-aman.jpg')
    .caption('Diproses dengan aman melalui MediaPipeline')
);

Released under the MIT License.