automation
Catatan teknis seputar web development, DevOps, dan integrasi AI.
50 artikel
- 03.20backend
Menyusun Pilot Ingest Sinyal Harian dari Registri Publik
Dua registri publik lolos probe: susun scraper atas satu seam, paksa idempotensi lewat content hash, dan jadwalkan ingest harian pukul lima pagi.
TL;DR: Jadi intinya pilot ini ngambil data harian dari daftar hitam LKPP sama daftar perkara pailit/PKPU pengadilan, semua scraper lewat satu antarmuka yang sama. Biar nggak dobel, tiap sinyal dikasih hash, database nolak kalau udah masuk, jadi aman dijalan ulang kapan aja. Ingestnya sekali sehari jam lima pagi, sopan dikit, dikasih jeda antar request biar servernya nggak keberatan.
#scraping#open-data#automation - 02.35devops
Satu perintah cek status gate
Cek status gate Plane yang dulu butuh empat round trip MCP dan payload 86KB, sekarang cukup satu skrip read-only dengan exit code semantik.
TL;DR: Dulu cek status ribet banget harus empat kali panggilan MCP cuma buat baca data 86KB yang loadingnya lama. Sempat kepikiran pakai cache tapi malah bikin pusing, akhirnya bikin skrip plane status yang baca langsung tanpa cache dan ngecek empat bagian secara paralel. Sekarang cukup satu perintah udah ketahuan beres atau nggak lewat kode exit-nya, jadi nggak males lagi ngecek gate.
#python#plane#devops - 14.19ai
Mendesain Init Rules Skill: Layered Pack dan Idempotensi
Spec 199 baris buat skill init-rules: layered pack universal + per-stack, CLAUDE.md jadi indeks, re-run idempoten ala konvensi Go dan Copier.
TL;DR: Awalnya kirain cukup taruh semua aturan di satu file gede di root, ternyata bikin ribet dan susah di-maintain. Akhirnya dibikin sistem layered, file root jadi indeks aja dan aturan dipisah per path plus per stack biar kepake seperlunya. Generatornya juga dibikin idempoten ala Go biar rerun nggak nimpa perubahan lokal sembarangan.
#ai-agents#tooling#automation - 06.14devops
Onboard Server KTM ke Ansible dan Swap Image 9router
Host KTM resmi dikelola Ansible: playbook upgrade 9router berlaku lagi setelah Docker Hub mengejar versi, dan swap ke image vendor 0.5.86 berjalan mulus.
TL;DR: Gue sempat mikir playbook error pas upgrade KTM ke 0586, ternyata registry Docker Hub aja yang ketinggalan di 0575. Makanya sempat build manual 0581, tapi akhirnya image vendor terbaru udah nongol dan playbook jalan mulus. Image custom lama masih nyangkut di disk dan tinggal dihapus manual nanti.
#docker#ansible#automation - 22.08tooling
Selektor Otomasi Tiba-tiba Gagal Saat UI Berubah Bahasa
Profil browser ber-locale id-ID merender Tanya Qwen dan Salin, dan selector exact match langsung gagal. Pola regex alternation plus penguncian locale menyelesaikannya.
TL;DR: Skrip otomasi gua error gara-gara profil browser kebetulan pakai locale id-ID, jadi tombolnya dirender "Tanya Qwen" bukan "Ask Qwen", dan selector exact match langsung gagal. Solusinya pakai regex alternation kayak (?:Ask|Tanya) biar dua bahasa kecakup, plus kunci locale browser. Tambah juga tes assert sederhana biar tahu cepat kalau polanya pecah lagi.
#automation#playwright#regex - 20.52devops
Dua Konstanta, Satu Kebohongan Diam: Deteksi Drift Pakai ast Tanpa Import
Konstanta turunan drift di hari sumbernya berubah. ast.parse membandingkannya tanpa mengeksekusi satu baris pun.
TL;DR: Tambah satu nilai di CLOSE_ACTIONS ternyata bikin job lama masih dianggap aktif, soalnya STATE_ACTIONS di kernel nggak kebagi update, dua konstanta itu drift diam-diam. Solusinya skrip check-close-actions-drift.sh yang baca dua file sebagai teks pakai ast Python, tanpa import. Skrip ngitung proyeksi STATE_ACTIONS minus EXTRACT_TIME dan NONSTATE, lalu bandingin sebagai set; beda dikit aja langsung exit 1.
#python#testing#debugging - 20.39devops
Launcher Dua Kali Bayar: Tiga Lapis Penjaga Sebelum Skrip Delegasi Menyala
Skrip delegasi yang diluncurkan dua kali menghabiskan budget dua kali. Guard flock, cek artefak, dan pgrep menolak sebelum mulai.
TL;DR: Ceritanya session Claude Code kelihatan macet padahal lagi mikir, jadi gue jalankan ulang dan dua proses makan budget bareng. Solusinya flock -n via file descriptor, plus cek result JSON lama dan pgrep -f buat deteksi proses kembar. Alasan penolakan dibedain lewat exit code 42, 43, 44 biar gampang debug.
#bash#devops#automation - 03.53devops
Event Log Verifikasi Integritas Ala Git di Pipeline Ingest
Cara sidecar content-addressed, event log append-only, dan re-hash dari disk bikin state pipeline bisa diverifikasi dan dipulihkan tanpa perbaikan tangan.
TL;DR: File frame yang di-tamper nggak bikin planner crash, malah nge-emit action quarantine, soalnya state dibangun ulang dari event log. Caption disimpan sebagai sidecar yang namanya pakai prefix sha256, jadi teks sama dapet dedup gratis. Tapi hash chain cuma kasih tamper-evidence bukan authenticity, makanya verifikasi tetap baca ulang meta.json langsung dari disk.
#git#event-sourcing#automation - 18.14devops
Ketika Custom Docker Image Membuat Playbook Upgrade Tidak Berlaku
Fleet-wide custom Docker image membuat playbook upgrade berbasis digest tidak berlaku; verifikasi bergeser ke endpoint aplikasi, upgrade path jadi clone→build→transfer.
TL;DR: Gara-gara build image 9router-custom sendiri, playbook lama yang bandingin digest Docker Hub jadi nggak berguna karena digestnya nggak akan pernah ada. Sekarang verifikasi lewat endpoint /api/version, upgrade-nya manual: build lokal, kirim via scp, terus docker load di server tujuan. Downtime cuma 15 detik per host, data aman.
#docker#ansible#automation