
Hari 56: Laporan Audit PDF dengan Pandoc dan Typst
Menyusun laporan audit jadi PDF profesional pakai Pandoc dan Typst tanpa LaTeX. 7 halaman, tabel rapi, dan angka yang berbicara.
Hari ke-56 dari challenge 60 Days DevSecOps. Kemarin saya baru selesai mengumpulkan data scan dan bikin draf laporan audit. Hari ini tugasnya: ubah draf itu jadi dokumen eksekutif resmi dan ekspor ke PDF.
Kedengarannya sepele? Ternyata di baliknya ada keputusan menarik: gimana cara bikin PDF dengan tabel yang rapi TANPA ribet install LaTeX. Jawabannya: Pandoc + Typst. Mari saya ceritakan.
Dari Draf ke Dokumen Formal
Kemarin (Day 55) saya punya draft-q3.md — semacam draf eksekutif berisi angka dan poin-poin. Tapi dokumen yang mau dibawa ke manajemen harus lebih dari itu. Ia harus bercerita.
Jadi hari ini saya susun dokumen baru: laporan-audit-q3.md dengan 7 bagian:
- Executive Summary — penilaian risiko keseluruhan. Jawaban: MEDIUM, dengan 6 temuan aktif (0 Critical, 1 High, 2 Medium, 2 Low, 1 Info).
- Ruang Lingkup & Metodologi — 11 lapis tools yang dipakai dan cara pendekatannya.
- Key Findings (Baseline) — temuan sebelum remediasi, dari F-01 sampai F-10.
- Mitigation Evidence (After) — bukti perbaikan lengkap dengan angkanya.
- Residual Risk — risiko yang masih tersisa, plus risiko yang sengaja diterima (dengan alasannya).
- Rekomendasi & Roadmap — apa yang harus dikerjakan segera dan jangka menengah.
- Konklusi — closing yang jujur.
Dokumen ini bedanya dengan draf: ia berbicara ke pembaca non-teknis. Bukan daftar CVE panjang, tapi dampak dan bukti.
Rahasia Halaman Judul: YAML Front Matter
Supaya PDF-nya punya halaman judul rapi (judul, subtitle, penulis, tanggal), saya tambahkan metadata di paling atas file:
---
title: "Laporan Audit Keamanan Q3"
subtitle: "SecureBank API — 60 Days DevSecOps Mastery Challenge"
author: "DevSecOps Engineer"
date: "6 Agustus 2026"
---
Pandoc membaca metadata ini dan otomatis membuat halaman judul. Tanpa front matter, judul cuma diambil dari heading pertama.
Export PDF: Pandoc + Typst (Tanpa LaTeX)
Cara klasik bikin PDF dari Markdown adalah pakai LaTeX — tapi install-nya besar dan lama. Pandoc versi baru punya jalan pintas: engine Typst.
pandoc laporan-audit-q3.md --pdf-engine=typst -o laporan-audit-q3.pdf
Satu baris. Hasilnya? PDF 7 halaman yang valid, dengan semua tabel ter-render rapi secara native. Typst lebih ringan dari LaTeX dan dipasang cukup lewat Homebrew.
Verifikasi hasilnya tanpa perlu buka aplikasi PDF:
file laporan-audit-q3.pdf
# PDF document, version 1.7, 7 pages
Kenapa Angka-angka Ini Penting
Yang saya suka dari dokumen ini: semua angkanya bukan karangan — hasil scan ulang kemarin. Contoh tren yang saya tulis di tabel "Sebelum vs Sesudah":
| Layer | Sebelum | Sesudah |
|---|---|---|
| Dependensi Go | 4 CVE (1 Critical) | 0 Critical/High (1 Info) |
| IaC (Trivy) | 14 temuan | 2 Low |
| K8s manifest | 16 misconfig | 0 |
| Cloud (Prowler) | 132 FAIL / 4 Critical | 106 FAIL |
Inilah yang membuat laporan eksekutif bisa dipercaya: setiap klaim perbaikan ada buktinya — dari catatan hari tertentu (Day 07, 10, 23, 33, 51, 52–54).
Jujur soal Risiko yang Tersisa
Bagian paling penting justru di "Residual Risk". Di sini saya menulis apa yang BELUM beres dan alasannya:
- CVE-2026-39822 (High) di stdlib image — solusinya rebuild image dengan Go lebih baru.
- API tanpa TLS — perlu terminasi TLS.
- Risiko yang sengaja diterima: belum ada WAF (dijadwalkan Q4), node lab yang NotReady, artefak red team di repo (khusus lab).
Dokumen profesional tidak menyembunyikan sisa risiko. Ia mendokumentasikannya dengan jujur dan kasih rencana tindak. Itu justru membangun kepercayaan.
Kesimpulan
Pelajaran hari ini:
- Draf ≠ dokumen final. Dokumen eksekutif harus bercerita dengan dampak, bukan daftar kerentanan.
- Pandoc + Typst = PDF tanpa sakit kepala. Tabel rapi, 7 halaman, satu baris perintah, tanpa LaTeX.
- Angka yang berbicara lebih kuat dari narasi. Setiap klaim perbaikan di laporan saya bersumber dari scan ulang yang terverifikasi.
- Jujur tentang sisa risiko justru bikin laporan kredibel.
Dokumen final ada di repo: chalange-devsecops — lihat securebank-api/security/audit-reports/laporan-audit-q3.pdf.
Besok: minta AI mereview nada bahasa dokumen ini supaya makin pas dibaca CISO/CTO.
Diskusi & Komentar
Artikel Terkait
Hari 20: Terraform + Checkov, 15 Celah IaC Ketahuan
Bikin infrastructure as code pakai Terraform, lalu scan dengan Checkov. Hasilnya 15 celah keamanan ketahuan — S3 tanpa enkripsi, security group terbuka ke dunia.
Hari 22: Pipeline IaC, Dua Scanner Barengan Gagal
Bikin workflow GitHub Actions khusus infrastructure security. Checkov dan Trivy IaC scan Terraform barengan. Hasilnya pipeline MERAH — security gate bekerja!
Hari 22 Bonus: Perbaikan Pipeline Gitleaks yang Merah Diam-diam
Pipeline Gitleaks merah sejak Day 14 karena flag --no-gitignore tidak pernah ada. Gitleaks detect scan git history, bukan working directory. Fix: hapus flag.