Aurograf
On this page
- Sekilas
- Peran saya sebagai solution architect
- Tantangannya
- Yang dikerjakannya
- A. Masuk dengan akun milik kota
- B. Membuktikan identitas sebelum sertifikat terbit
- C. Menandatangani PDF dengan tanda tangan yang tetap bisa diverifikasi
- D. Membuka verifikasi untuk siapa saja
- E. Melayani organisasi dan sistem lain
- Standar yang dipatuhi
- Bagaimana ia dibangun
- Bagaimana ia dirilis dan dioperasikan
- Keputusan kunci
- Riwayat
- Status
- Istilah
Aurograf adalah platform tanda tangan digital Pemerintah Kota Tangerang Selatan. ASN menandatangani dokumen PDF langsung dari browser memakai sertifikat yang diterbitkan certificate authority milik platform itu sendiri, setiap tanda tangan membawa stempel waktu tepercaya, dan siapa pun bisa memverifikasi dokumen bertanda tangan tanpa akun. Platform ini berjalan di aurograf.tangerangselatankota.go.id.
Versi 2 dibangun ulang dari nol. Saya merancangnya sebagai solution architect dan memimpin tim yang membangun serta menjalankannya, dan intinya saya tulis sendiri: root certificate authority dan PDF signer yang menjadi jantung setiap tanda tangan.
Sekilas
| Klien | Diskominfo Kota Tangerang Selatan (Dinas Komunikasi dan Informatika) |
|---|---|
| Peran | Solution architect yang memimpin tim — quality assurance, backend developer, UI developer, DevOps, dan DevSecOps — sekaligus backend developer utama yang mengerjakan sendiri module intinya: certificate authority PKI (root, document signing, dan timestamp) serta PDF signer |
| Periode | Versi 2 sejak 15 September 2025; versi 1 September 2022 sampai Februari 2023 |
| Versi | 2 |
| Status | Stabil, berjalan di production |
| Stack | Laravel dan PHP, Vue dan TypeScript, Rust, Python; PostgreSQL, Redis, storage kompatibel S3; OpenTelemetry, Elasticsearch, dan Kibana; Docker, dengan autoscaling Kubernetes yang sedang diuji di staging |
| Situs | aurograf.tangerangselatankota.go.id |
Peran saya sebagai solution architect
Di Aurograf, peran pertama saya adalah solution architect. Di kota ini, domain master untuk tanda tangan digital adalah Bidang Persandian, jadi dari sanalah pekerjaannya dimulai: saya mempelajari cara kerja dan aturan yang mereka pegang, mendengarkan kebutuhan serta keluhan mereka hari ini, lalu menerjemahkannya menjadi arsitektur.
- Memilih teknologi yang menjadi dasar platform.
- Merancang arsitektur modular dan memecah fungsinya ke beberapa module terpisah.
- Merancang cara ia berjalan: stack Docker Compose di production hari ini, dan arsitektur Kubernetes dengan autoscaling yang sedang diuji di staging.
- Membagi pekerjaan ke tim: quality assurance, backend developer, UI developer, DevOps, dan DevSecOps.
- Meninjau temuan quality assurance dan DevSecOps, lalu memasukkan perbaikannya ke arsitektur dan ke alur kerja tim.
Selain itu, saya juga bagian dari tim sebagai backend engineer, di module yang paling mahal bila salah: certificate authority PKI — root CA, document signing CA, dan timestamp authority — serta PDF signer.
Tantangannya
Pemerintah kota menandatangani dokumen dalam jumlah besar, dan tanda tangan di atas kertas tak bisa berpindah semudah PDF. Kota butuh tanda tangan elektronik yang bisa dipakai pegawainya setiap hari dari browser mana pun, dan tetap membuktikan siapa yang menandatangani dan kapan, bahkan lama sesudah sertifikat penanda tangan kedaluwarsa.
Syarat terakhir itulah yang membentuk seluruh rancangan. Tanda tangan yang hanya bisa diperiksa selama sertifikatnya masih berlaku nyaris tak bernilai untuk arsip resmi. Karena itu platform harus menanamkan bukti keabsahan ke dalam dokumen itu sendiri, lengkap dengan waktu tepercaya, dan memegang sendiri otoritas yang menjamin bukti tersebut.
Yang dikerjakannya
A. Masuk dengan akun milik kota
Pegawai masuk memakai akun SSO Tangerang Selatan — akun yang sama untuk aplikasi pemkot lainnya — atau lewat Google dan alamat email. Autentikasi dua faktor bekerja dengan aplikasi authenticator apa pun.
B. Membuktikan identitas sebelum sertifikat terbit
Sebelum memegang sertifikat penanda tangan, seseorang melengkapi data identitasnya dan menjalani tantangan wajah langsung: menghadap kamera lalu menoleh, untuk menunjukkan bahwa yang hadir orang sungguhan, bukan foto. Peninjau manusia menyetujui permohonannya, dan baru sesudah itu certificate authority platform menerbitkan sertifikat X.509 yang dilindungi passphrase yang hanya diketahui penanda tangan.
C. Menandatangani PDF dengan tanda tangan yang tetap bisa diverifikasi
Dokumen di-upload, diberi penanda tangan dalam tahap berurutan, lalu ditandatangani satu per satu. Penanda tangan meletakkan stempel — QR code yang unik untuk tiap tanda tangan, atau tanda tangan yang digambar maupun di-upload sendiri — tepat di posisinya pada halaman. Hasilnya tanda tangan PAdES B-LTA: sertifikat, bukti pencabutan, dan stempel waktu arsip tertanam di dalam PDF, sehingga ia tetap bisa diverifikasi lama sesudah sertifikatnya kedaluwarsa.
D. Membuka verifikasi untuk siapa saja
Halaman verifikasi publik menerima PDF bertanda tangan apa pun tanpa akun, lalu melaporkan setiap tanda tangan dan stempel waktu di dalamnya, sah atau tidaknya masing-masing, serta apakah dokumen itu memenuhi syarat PAdES, B-LTA, dan validasi jangka panjang.
E. Melayani organisasi dan sistem lain
Organisasi memuat unit dan anggota, dan satu penanda tangan boleh menjadi anggota beberapa organisasi. Aplikasi pemerintah lain bisa mengintegrasikan tanda tangan lewat client API dengan kredensial sendiri, izin per client, dan origin yang diizinkan, lalu menerima callback saat dokumen selesai ditandatangani. Akses bagi sistem client diberikan oleh administrator platform.
Standar yang dipatuhi
| Standar | Yang dijaminnya di sini | Tempatnya |
|---|---|---|
| X.509 v3 | setiap penanda tangan memegang sertifikat dari rantai kepercayaan milik platform sendiri | Document Signing CA, Root CA Publisher |
| PAdES B-LTA | tanda tangan tetap bisa diverifikasi lama sesudah sertifikatnya kedaluwarsa | PDF Signer |
| RFC 3161 | setiap tanda tangan membawa waktu tepercaya | Timestamp Authority |
| OCSP (RFC 6960) dan CRL (RFC 5280) | siapa pun bisa memeriksa apakah sertifikat sudah dicabut | Document Signing CA, Timestamp Authority, Root CA Publisher |
| PKCS#12 | key penanda tangan berpindah sebagai satu bundel yang hanya bisa dibuka passphrase miliknya | Document Signing CA, PDF Signer |
| OAuth 2.0 dan OpenID Connect | masuk lewat SSO Tangerang Selatan dan Google | Core API, Web App |
| JSON Web Token (RFC 7519) | satu format token yang bisa diverifikasi tiap service secara mandiri | Core API |
| TOTP (RFC 6238) | autentikasi dua faktor dengan aplikasi authenticator apa pun | Core API, Web App |
Bagaimana ia dibangun
Aurograf bukan satu aplikasi. Core API memegang aturan dan data platform lalu mengatur service-service khusus, masing-masing dengan versi dan siklus rilisnya sendiri: infrastruktur kunci publik berisi tiga otoritas, signer, tantangan wajah, perender, storage file, dan data wilayah. Beberapa di antaranya module yang juga saya pakai di project lain.
Core API: user, organisasi, sistem client, dokumen, stempel, dan sertifikat, plus pengaturan setiap service di bawahnya.
Aplikasi web tempat penanda tangan dan administrator bekerja.
Certificate authority penerbit yang memberi tiap penanda tangan sertifikatnya dan menjawab pemeriksaan pencabutan.
Timestamp authority di balik tanggal setiap tanda tangan.
Penerbit akar kepercayaan, yang key-nya tak pernah meninggalkan host offline.
Signer yang menghasilkan setiap tanda tangan PAdES B-LTA.
Tantangan wajah langsung yang dipakai saat verifikasi identitas.
Perender yang memberi thumbnail untuk setiap dokumen yang di-upload.
Service storage yang dilewati setiap dokumen dan stempel.
Service data wilayah di balik setiap alamat di platform.
Bagaimana ia dirilis dan dioperasikan
Platform ini berjalan di tiga environment yang terpisah penuh: development di laptop, serta staging dan production di server. Setiap stack service-nya lahir dari template saya sendiri, bukan disalin dari project terdahulu, dan setiap rilis menempuh jalur yang sama dari development ke production, digladi dulu di staging dengan data production yang dipulihkan.
Production saat ini berjalan di atas Docker Compose. Langkah berikutnya sudah dimulai: memindahkan platform ke Kubernetes dengan autoscaling, supaya service seperti penandatanganan bisa bertambah sendiri saat dokumen datang bergelombang. Cluster Kubernetes dengan horizontal pod autoscaling sedang diuji lebih dulu di staging; belum ada service production yang pindah.
Cara setiap stack baru platform ini disiapkan dari template.
Cara setiap rilis berpindah dari development ke production.
Di sekitar jalur itu ada tools yang saya tulis supaya setiap langkah bisa diulang dan aman.
Membuktikan storage dan login siap sebelum aplikasi bergantung padanya.
Membangun dan memberi versi setiap image, serta membuat salinan penuh production untuk tiap rilis.
Mempromosikan rilis yang sudah teruji ke production, dan menjaga alamat tiap environment tetap terpisah.
Mem-backup platform yang sedang berjalan, dan merotasi kredensialnya.
Memindahkan data platform dari susunan lama ke susunan baru melintasi versi mayor, dan menjaga dokumentasi operasional tetap terbaca secara offline.
Keputusan kunci
Platform memegang rantai kepercayaannya sendiri. Ketimbang bergantung pada penyedia sertifikat luar untuk setiap tanda tangan, Aurograf menjalankan root, otoritas penerbit, dan timestamp authority miliknya sendiri. Key root tinggal di host offline, dan yang diterbitkan hanya sertifikat serta daftar pencabutannya, sehingga key paling berharga di sistem ini tak pernah terjangkau dari jaringan.
Setiap tanggung jawab adalah service tersendiri. Menandatangani, memberi stempel waktu, menerbitkan sertifikat, memeriksa wajah, merender, dan menyimpan masing-masing milik service yang dibangun untuk tugas itu, dengan siklus rilisnya sendiri. Mengubah cara dokumen ditandatangani tak pernah menuntut antarmuka di-deploy ulang, dan otoritas-otoritasnya bisa di-backup, dirotasi, dan di-upgrade menurut jadwalnya sendiri.
File tak pernah melewati inti. Browser meng-upload langsung ke storage lewat link berumur pendek, dan service-service membaca serta menulis dokumen dengan cara yang sama. Inti memutuskan siapa boleh berbuat apa; ia tidak mengangkut byte-nya.
Menandatangani tak pernah membuat orang menunggu. Setiap tanda tangan berjalan sebagai background job, jadi permintaan langsung diterima dan kerja kriptografinya berlangsung di belakang. Web server dan worker antreannya dikirim dalam satu image container, sehingga keduanya selalu menjalankan code yang sama.
Orang membuktikan kehadirannya, dan orang pula yang memutuskan. Tantangan wajah memastikan bahwa orang hidup ikut serta; peninjau manusia tetap menyetujui setiap identitas sebelum sertifikat diterbitkan.
Setiap permintaan bisa dilacak dari ujung ke ujung. Satu trace mengikuti tanda tangan dari klik user, melewati inti, signer, dan otoritas-otoritasnya, lalu terkumpul di satu tempat, sehingga pertanyaan tentang dokumen apa pun bisa dijawab dari bukti.
Riwayat
Versi pertama, dibangun antara September 2022 dan Februari 2023, melayani tujuan yang sama dalam bentuk lebih sederhana: satu aplikasi monolitik. Versi 2, yang saya bangun bersama tim sejak 15 September 2025, membangun ulang setiap bagian dari nol sebagai service-service terpisah — infrastruktur kunci publik sendiri, PDF signer jangka panjang, inti Laravel, antarmuka Vue, dan module yang bisa dipakai ulang bersama pekerjaan saya yang lain.
Status
Aurograf berjalan di production dan dirawat secara aktif, dengan rilis baru yang selalu menempuh jalur teruji yang sama dari development ke production.
Istilah
- Certificate authority
- Service yang menerbitkan dan menjamin sertifikat digital, yang menunjukkan siapa pembuat tanda tangan.
- Timestamp authority
- Service yang menandatangani waktu keberadaan dokumen, sehingga tanda tangan bisa dibuktikan lebih dulu ada ketimbang perubahan atau kedaluwarsa apa pun sesudahnya.
- Infrastruktur kunci publik
- Himpunan certificate authority, sertifikat, dan daftar pencabutan yang bersama-sama membuat tanda tangan digital bisa diverifikasi.
- PAdES B-LTA
- Level arsip jangka panjang dari standar tanda tangan PDF, yang menanamkan semua yang dibutuhkan untuk memverifikasi tanda tangan bertahun-tahun kemudian.
- Single sign-on
- Satu akun yang membuat orang bisa masuk ke banyak aplikasi tanpa password terpisah untuk masing-masing.
Technologies covered
- Python
- Rust
- Laravel
- Vue
- Docker
- Kubernetes
- OCSP
- PAdES
- X.509