Appearance
Sprint 01: Penyesuaian Bot AI Search & Citations
1. Ringkasan & Tujuan Sprint
Sprint 01 difokuskan pada penyesuaian filter bot di middleware BlockBotnet untuk membedakan antara AI Search & Citations Bot (yang memberikan timbal balik trafik dan referensi/sitasi kepada situs) dengan AI Pre-training / Scraper Bot (yang hanya menyedot data tanpa memberikan sitasi atau referral pengunjung).
Tujuan
- Mengizinkan bot pencari AI modern (seperti Perplexity, SearchGPT/OAI-SearchBot, dan ChatGPT User browsing) untuk mengindeks halaman dracin.
- Mempertahankan perlindungan server terhadap bot scraper massal pre-training dan botnet berbahaya guna menjaga kestabilan resource server dan efisiensi bandwidth.
- Memastikan seluruh skenario bot tercakup dalam automated testing dengan tingkat kelulusan 100%.
Outcome
- AI search engine dapat mengakses konten drama dan menghasilkan rujukan URL (citations) langsung ke dracin.
- Scraper tanpa timbal balik trafik tetap diblokir secara tegas dengan status
HTTP 403 Forbidden. - Dokumentasi sprint lengkap dan tersimpan sebagai source of truth di repository.
2. Keputusan Product Owner (PO)
Berdasarkan kesepakatan pada Sprint Planning:
- Whitelist AI Search & Citations:
- Bot pencarian dan referensi AI berikut di-whitelist untuk mengembalikan respon
HTTP 200 OK:PerplexityBot(keyword token:perplexity)OAI-SearchBot(keyword token:oai-searchbot)ChatGPT-User(keyword token:chatgpt-user)
- Bot pencarian dan referensi AI berikut di-whitelist untuk mengembalikan respon
- Blacklist Scraper Pre-training:
- Tetap memblokir bot pengumpul data pre-training LLM tanpa sitasi/referral dengan respon
HTTP 403 Forbidden:GPTBotBytespiderCCBotShapBotmeta-externalagentExaSearchBotAmazonbotClaudeBot
- Tetap memblokir bot pengumpul data pre-training LLM tanpa sitasi/referral dengan respon
- Pembersihan Konflik Blacklist:
- Menghapus entri
PerplexityBotdariisBlockedBot()dan$globalBlacklistdi middlewareBlockBotnetagar tidak terjadi tumpang tindih aturan.
- Menghapus entri
3. Alur Evaluasi Botnet Middleware
Berikut diagram alur evaluasi request pada middleware BlockBotnet:
4. Backlog Task & Urutan Pelaksanaan
| No | Task ID | Nama Task | Deskripsi & Scope | Dependency | Status |
|---|---|---|---|---|---|
| 1 | #GONDO (gondomgsocqqzlyifhtifplh) | Code & Automated Test | - Buat dokumentasi sprint di docs/sprints/S01.md- Perbarui BlockBotnet.php (whitelist perplexity, oai-searchbot, chatgpt-user; hapus dari blacklist)- Update BotBusterTest.php (assertion 200 OK untuk AI search & 403 Forbidden untuk scraper)- Verifikasi Pint dan Pest tests 100% pass - Commit ke branch main | - | Done |
| 2 | #OOGKD (oogkdzbluzeqwdpfutydziga) | Deploy & Live Probe | - Deploy kode dari main ke lingkungan Laravel Cloud- Jalankan live probe cURL dengan User-Agent target - Verifikasi respons HTTP di production | Task 1 | Done |
5. Definition of Done (DoD)
DoD Task 1: Code & Automated Test (#GONDO)
- [x] Dokumen sprint
docs/sprints/S01.mddibuat mencakup tujuan, outcome, backlog, keputusan PO, dan DoD. - [x] Middleware
app/Http/Middleware/BlockBotnet.phpdiperbarui:- Whitelist
isSearchEngine()mencakupperplexity,oai-searchbot, danchatgpt-user. - Blacklist
isBlockedBot()dan$globalBlacklisttidak lagi memuatPerplexityBot. - Blacklist scraper pre-training (
GPTBot,Bytespider,CCBot,ClaudeBot,Amazonbot, dll.) tetap aktif.
- Whitelist
- [x] Test suite
tests/Feature/BotBusterTest.phpdiperbarui:- Assert HTTP 200 OK untuk PerplexityBot, OAI-SearchBot, dan ChatGPT-User.
- Assert HTTP 403 Forbidden untuk GPTBot, Bytespider, CCBot, ShapBot, meta-externalagent, ExaSearchBot, ClaudeBot, Amazonbot.
- Assert HTTP 200 OK untuk browser normal dan search engine konvensional.
- [x] Seluruh test pada
BotBusterTestlulus 100% (php artisan test --filter=BotBusterTest). - [x] Standar kode lolos Laravel Pint (
vendor/bin/pint --dirty). - [x] Perubahan di-commit ke branch
maindengan authorBuchin <buchin@dropsugar.com>.
DoD Task 2: Deploy & Live Probe (#OOGKD)
- [x] Pipeline deployment Laravel Cloud berhasil tanpa error (Deployment ID:
depl-a2b9a9e8-3580-4b83-9f9a-ae9508d70688, status:deployment.succeeded, commit:d6e9062). - [x] Live HTTP probe terhadap endpoint publik
https://lelungan.net:PerplexityBot: HTTP 200 OKOAI-SearchBot: HTTP 200 OKChatGPT-User: HTTP 200 OKGooglebot: HTTP 200 OKGPTBot: HTTP 403 ForbiddenBytespider: HTTP 403 ForbiddenNormal Chrome: HTTP 200 OK
- [x] Sampel live access log Laravel Cloud (
dracin/main) terverifikasi: 0 error 5xx / 504, pemblokiran scraper instan (rata-rata 247ms), server sehat dan stabil.
6. Risiko, Batasan, dan Mitigasi
- Risiko Peningkatan Beban Server: Bot AI search cenderung melakukan crawling mendalam ketika menemukan link baru.Mitigasi: Respons halaman telah memanfaatkan cache layer Laravel dan CDN Cloudflare sehingga beban origin server minimal.
- Risiko User-Agent Spoofing: Penyerang dapat menyamar menggunakan User-Agent bot AI search.Mitigasi: Lapisan pertahanan botnet lanjutan (inspeksi headless Chromium, pemeriksaan payload offensive/scanner, deteksi token botnet berbasis referer Windows, dan cookie verdict client-side) tetap aktif.
- Batasan: Sprint ini tidak mengubah robots.txt statis maupun skema rate limiting per IP.
7. Out of Scope
- Modifikasi robots.txt atau konfigurasi sitemap.
- Modifikasi scraping engine internal untuk drama atau sumber video eksternal.
- Perubahan tampilan UI/UX frontend atau pemutar video.
- Penambahan otentikasi bot berbasis reverse DNS lookup (ptr lookup).
8. Deployment & Production Gate
- Deployment Platform: Laravel Cloud
- Branch Target:
main - Gate Persyaratan Deploy:
- Automated test
BotBusterTest100% passing pada commit branchmain. - Pint linting lolos tanpa peringatan.
- Konfirmasi kesiapan live probe pasca deployment.
- Automated test