Memuat Dokumen via Daftar Tautan (link.md)

Memuat Dokumen via Daftar Tautan (link.md)

URL: /ingest/sambung/linkmd

Pelengkap, bukan metode sambung tersendiri. Halaman ini menjelaskan cara memasukkan dokumen ke folder yang sudah tersambung (via WebDAV, SFTP, atau Google Drive) tanpa harus upload berkas satu per satu — cukup menunjuk URL dokumen yang sudah online di portal resmi instansi.

Cocok bila: dokumen SAKIP Anda sudah tersedia online sebagai berkas (PDF/DOCX/dst) di portal resmi instansi — mis. bappeda.{instansi}.go.id, jdih.{instansi}.go.id, ppid.{instansi}.go.id, atau penyimpanan cloud publik. Anda cukup menyiapkan daftar tautan langsung ke berkas; sistem akan mengunduhnya. Bila dokumen masih di disk internal dan belum punya URL publik, tetap pakai cara upload langsung sesuai metode sambung yang Anda pilih.


Tujuan & Sifat

Mekanisme daftar tautan (link.md) menyediakan cara paling ringan untuk menambah dokumen ke folder yang sudah tersambung — tanpa harus mengunggah berkas satu per satu ke kambing.gov3.id.

Instansi cukup menulis satu file teks berisi daftar URL dokumen mereka. Sistem akan:

  • membaca file link.md,
  • memeriksa setiap URL (jenis berkas, ukuran, keamanan),
  • mengunduh berkas dari URL,
  • menyimpan ke folder instansi di kambing.gov3.id sebagai berkas reguler — sama seperti hasil upload manual.

Setelah unduh selesai, berkas masuk pipeline standar (kumpul → baca → simpan → telusur) bersamaan dengan berkas yang Anda upload langsung.

Catatan kedaulatan data. URL adalah milik instansi; sistem hanya mengambil snapshot saat fetch. Sumber tetap di portal resmi instansi (single source of truth). Berkas di kambing.gov3.id adalah salinan arsip untuk audit.


Karakteristik

  • Effort instansi paling minim — tidak butuh setup teknis tambahan. Cukup tulis file teks berisi daftar URL.
  • Cocok untuk dokumen yang sudah online — RPJMD/Renstra/PK/LKjIP yang sudah dipublikasikan di portal Bappeda/JDIH/PPID instansi.
  • Tautan harus langsung ke berkas, bukan halaman web — sistem hanya mengunduh berkas; navigasi halaman tidak didukung (lihat Aturan Tautan).
  • Fetch on-demand, bukan otomatis berkala — tim penyelenggara men-trigger fetch ulang ketika link.md diperbarui. Belum ada scan periodik (rencana iterasi berikutnya).
  • Non-destruktif — fetch tidak menghapus berkas yang sudah ada. Bila berkas dengan nama sama sudah ada, fetch baru di-skip (kecuali admin explicit minta overwrite).
  • Audit trail — setiap fetch dicatat (URL → berkas → waktu → hash) untuk traceability evaluasi.

Aturan Tautan

1. Tautan WAJIB langsung ke berkas

Boleh — tautan langsung ke berkas PDF/DOCX/dst:

https://bappeda.{instansi}.go.id/dokumen/rpjmd-2025-2030.pdf
https://{instansi}.go.id/files/lkjip-2024-final.pdf

Tidak boleh — tautan ke halaman web indeks/landing:

https://bappeda.{instansi}.go.id/dokumen-perencanaan   (halaman indeks)
https://{instansi}.go.id/                              (homepage)
https://drive.google.com/drive/folders/abc123         (folder browse)

Cara cek cepat: buka tautan di browser. Bila langsung memunculkan dialog unduh PDF/DOCX/dst → benar. Bila membuka halaman web dengan daftar/menu → bukan tautan yang dimaksud.

2. Jenis berkas yang didukung

Dokumen modern (OOXML/PDF):

Tipe Ekstensi
PDF .pdf
Microsoft Word (modern) .docx
Microsoft Excel (modern) .xlsx
Microsoft PowerPoint (modern) .pptx

Format teks & data:

Tipe Ekstensi
Markdown .md
Plain text .txt
Comma-separated .csv
JSON .json
XML .xml
YAML .yaml, .yml

Tidak didukung — file binary lama (.doc/.xls/.ppt), arsip terkompresi (.zip/.rar), dan halaman web (.html/.htm). Untuk dokumen lama, simpan ulang sebagai format modern (Word: Save As.docx; Excel: .xlsx).

Berkas HTML/halaman web tidak diproses — itu untuk navigasi manusia, bukan dokumen.

3. Protokol HTTPS dianjurkan

Pakai https://... bila bisa. Tautan http://... (tanpa s) diblok secara default untuk alasan keamanan transport.

4. Batas ukuran 25 MB per berkas

Bila berkas Anda lebih besar dari 25 MB, kompres terlebih dahulu (mis. via ilovepdf.com) atau pecah jadi beberapa berkas (mis. RPJMD per bab).

5. Google Drive — TIDAK didukung

Tautan Google Drive (drive.google.com) tidak diproses di mekanisme ini. Untuk dokumen yang disimpan di Google Drive, gunakan jalur dedicated Penyambungan via Temporary Cloud Storage (Google Drive) yang menangani autentikasi OAuth, interstitial virus-scan, dan share folder dengan benar.

Alasan teknis: link Gdrive direct-download punya banyak edge case yang sulit di-handle uniform (interstitial untuk file > 25 MB, virus-scan token, redirect chain, batas akses anonim). Lebih reliable lewat jalur Gdrive khusus.


Cara Menulis link.md

link.md adalah berkas teks biasa dengan format Markdown sederhana. Baris demi baris, satu URL per baris.

Format paling sederhana — satu URL per baris

https://bappeda.{instansi}.go.id/files/rpjmd-2025-2030.pdf
https://{instansi}.go.id/dokumen/pk-kepala-2025.pdf
https://{instansi}.go.id/dokumen/lkjip-2024.pdf

Cukup. Sistem akan mengambil setiap URL.

Format dengan label (lebih rapi)

Pakai format markdown [label](url) supaya jelas tiap tautan itu dokumen apa:

[RPJMD 2025-2030](https://bappeda.{instansi}.go.id/files/rpjmd-2025-2030.pdf)
[Perjanjian Kinerja Kepala Daerah 2025](https://{instansi}.go.id/dokumen/pk-kepala-2025.pdf)
[LKjIP 2024](https://{instansi}.go.id/dokumen/lkjip-2024.pdf)

Label hanya untuk dokumentasi internal Anda — sistem tetap pakai URL untuk mengambil berkas.

Pengelompokan dengan komentar

Tambahkan komentar dengan tanda # di awal baris. Sistem akan mengabaikan baris ini:

# Daftar Dokumen SAKIPAI — Instansi {instansi}
# Periode: 2024-2025
# Last update: 2026-05-13 oleh: bidang.akuntabilitas@{instansi}.go.id

## Tingkat Pemda — Perencanaan
[RPJMD 2025-2030](https://bappeda.{instansi}.go.id/files/rpjmd-2025-2030.pdf)
[PK Kepala Daerah 2025](https://{instansi}.go.id/dokumen/pk-kepala-2025.pdf)

## Tingkat Pemda — Pelaporan
[LKjIP 2024](https://{instansi}.go.id/dokumen/lkjip-2024.pdf)

## OPD — Dinas Kesehatan
[Renstra Dinkes 2025-2030](https://dinkes.{instansi}.go.id/files/renstra-2025-2030.pdf)
[Renja Dinkes 2025](https://dinkes.{instansi}.go.id/files/renja-2025.pdf)
[PK Kepala Dinas Kesehatan 2025](https://dinkes.{instansi}.go.id/files/pk-2025.pdf)

## OPD — Dinas Pendidikan
[Renstra Disdik 2025-2030](https://disdik.{instansi}.go.id/files/renstra-2025-2030.pdf)
[Renja Disdik 2025](https://disdik.{instansi}.go.id/files/renja-2025.pdf)

Alur Singkat

[Instansi]                                          [Tim Penyelenggara]                   [kambing.gov3.id]
   │                                                       │                                       │
   │  1. Tulis link.md (daftar URL dokumen)                │                                       │
   │     dan kirim ke tim penyelenggara                    │                                       │
   │ ────────────────────────────────────────────────────►│                                       │
   │                                                       │                                       │
   │                                                       │  2. Tim taruh link.md di              │
   │                                                       │     folder instansi di kambing ─────►│
   │                                                       │     (mis. docget/{slug-instansi}/    │
   │                                                       │            link.md)                  │
   │                                                       │                                       │
   │                                                       │  3. Trigger docfetch:                 │
   │                                                       │     - baca link.md                    │
   │                                                       │     - periksa tiap URL (jenis, ukuran)│
   │                                                       │     - unduh setiap berkas             │
   │                                                       │     - simpan ke folder instansi ────►│
   │                                                       │                                       │
   │                                                       │                                       │  4. Berkas siap untuk
   │                                                       │                                       │     tahap kumpul → baca
   │                                                       │                                       │     → simpan → telusur
   │                                                       │                                       │
   │  5. (Update) Edit link.md lalu kirim ulang            │                                       │
   │     ketika dokumen di portal diperbarui               │                                       │
   │ ────────────────────────────────────────────────────►│                                       │

Manual Sisi Pengguna Instansi

1. Siapkan daftar URL dokumen SAKIP Anda

Kumpulkan tautan langsung ke seluruh dokumen SAKIP yang sudah tersedia di portal instansi (atau penyimpanan publik). Pastikan setiap tautan memenuhi aturan di Aturan Tautan.

2. Tulis berkas link.md

Buka editor teks (Notepad, VS Code, atau bahkan Catatan di smartphone). Tulis berkas dengan nama link.md berisi daftar tautan, mengikuti salah satu format di Cara Menulis link.md.

3. Periksa setiap tautan

Sebelum mengirim, buka setiap tautan di browser. Pastikan masing-masing langsung mengunduh berkas (bukan menampilkan halaman web). Bila ada yang gagal, perbaiki URL atau hapus dari daftar.

4. Kirim link.md ke tim penyelenggara

Kirim berkas via email (atau channel komunikasi yang disepakati) dengan keterangan:

  • nama instansi,
  • singkatan instansi (mengikuti subdomain portal gov3 — misal palembangkota, jabarprov, kemenpanrb),
  • tanggal pengiriman,
  • alamat email PIC SAKIP Anda untuk umpan balik.

5. Tunggu konfirmasi dan hasil fetch

Tim penyelenggara akan:

  • memvalidasi bahwa folder instansi sudah ada di kambing.gov3.id,
  • menaruh berkas link.md ke folder tersebut,
  • men-trigger proses fetch ke seluruh URL di daftar,
  • mengabarkan hasil — URL mana yang berhasil diunduh, yang gagal (404, ukuran terlalu besar, format tidak didukung, dll), dan saran perbaikan.

6. Perbarui link.md ketika dokumen diperbarui

Bila dokumen di portal instansi diperbarui (mis. LKjIP versi final menggantikan draft), edit berkas link.md Anda (tambah URL baru atau ganti URL lama dengan versi terbaru), lalu kirim ulang ke tim penyelenggara. Sistem akan fetch ulang.


Manual Sisi Admin Tim Penyelenggara

Dari sisi tim penyelenggara yang menerima link.md:

1. Verifikasi folder instansi di kambing.gov3.id

Pastikan folder docget/{singkatan-instansi}/ sudah ada. Bila belum, buat terlebih dahulu (atau koordinasikan dengan admin sistem). Folder tidak otomatis dibuat oleh docfetch — sengaja sebagai safety guard.

2. Letakkan link.md di folder instansi

Upload link.md yang dikirim instansi ke docget/{singkatan-instansi}/link.md. Bila instansi sudah memiliki link.md sebelumnya, overwrite — versi baru menggantikan versi lama.

3. Jalankan docfetch.read_link_md (mode dry-run)

Sebelum eksekusi, panggil docfetch.read_link_md(instansi_slug) untuk memvalidasi parsing — pastikan semua URL terdeteksi, format markdown terbaca dengan benar, jumlah URL sesuai ekspektasi.

4. Jalankan docfetch.fetch_from_link_md dengan dry_run=True

Mode dry-run akan menjalankan HEAD ke setiap URL — preview ukuran, content-type, status — tanpa benar-benar mengunduh berkas. Periksa preview ini:

  • apakah content-type valid (PDF/DOCX/dst, bukan text/html)?
  • apakah ukuran berkas wajar (tidak melebihi batas 25 MB)?
  • apakah status HEAD adalah 200 OK (bukan 404/403)?

5. Jalankan docfetch.fetch_from_link_md dengan dry_run=False

Bila preview aman, eksekusi unduh sebenarnya. Sistem akan:

  • mengunduh tiap URL,
  • memvalidasi content-type + ukuran saat streaming,
  • mengunggah berkas ke docget/{singkatan-instansi}/{nama-berkas},
  • mencatat audit log (URL → berkas → SHA256 → waktu),
  • mengembalikan ringkasan: total / sukses / dilewati / gagal beserta alasan.

6. Konfirmasi balik ke PIC instansi

Sampaikan hasil ke PIC instansi:

  • daftar URL yang berhasil unduh,
  • daftar URL yang gagal beserta alasan (HTTP 404, ukuran berlebih, content-type tidak didukung, SSRF block, dll),
  • saran perbaikan untuk URL yang gagal.

Berkas yang berhasil diunduh akan otomatis muncul di Pengumpulan Dokumen dan masuk pipeline standar.


Catatan Teknis: Validasi & Keamanan

Mekanisme docfetch menerapkan beberapa lapisan validasi sebelum dan selama unduh:

  • Block IP privat & metadata cloud — URL yang resolve ke 10.x.x.x, 172.16-31.x.x, 192.168.x.x, 127.x.x.x, 169.254.x.x, atau alamat loopback IPv6 ditolak. Mencegah serangan SSRF (Server-Side Request Forgery).
  • Content-Type whitelist — hanya tipe MIME dokumen umum (PDF, DOCX, XLSX, ZIP, dll). Halaman web text/html ditolak otomatis.
  • Batas ukuran 100 MBstreaming download dipotong bila berkas melebihi batas. Mencegah pengisian disk kambing.gov3.id yang tidak terkontrol.
  • Rate limit 1 req/detik per host — sopan terhadap server instansi, mencegah dianggap scraper agresif.
  • User-Agent identifiableSAKIPAI-DocFetch/{versi} (+https://sakip.cybergl.co.id). Admin server instansi yang ingin whitelist / blacklist dapat mengenali request kami dengan mudah.

Bantuan Teknis

Bila instansi atau tim penyelenggara mengalami kendala dalam penyiapan link.md — URL tidak terdeteksi, format salah, atau berkas gagal unduh — jangan lewatkan kunjungan tim teknis dari UI-CSGAR yang mendampingi Ditjen RB Kunwas KemenPAN-RB. Tim akan membantu memeriksa link list dan troubleshoot langsung.


Tips Praktis

  • Mulai kecil — kirim batch pertama berisi 3–5 URL dokumen induk (RPJMD, PK Pemda, LKjIP Pemda). Setelah konfirmasi sukses, lanjutkan dengan dokumen OPD.
  • Sertakan tahun di label — sistem akan lebih mudah membedakan dokumen yang sama tipe tapi beda tahun (RPJMD 2020 vs RPJMD 2025).
  • Simpan salinan link.md di drive lokal Anda — sebagai backup dan untuk diperbarui lain waktu.
  • Bisa digunakan bersamaan dengan jalur lain — instansi yang sudah punya WebDAV/SFTP/Google Drive tetap boleh memakai link.md untuk menambah dokumen dari URL eksternal (mis. dokumen di portal kementerian, JDIH pusat, atau cloud terpisah).