Aplikasi Google Apps Script untuk dokumentasi digital KPU Kabupaten Aceh Selatan. File disimpan dalam subfolder kategori di Google Drive; metadata, pengguna, kategori, dan audit aktivitas disimpan di Google Spreadsheet.
- Buat Google Spreadsheet kosong. Langkah ini opsional karena
setupApplication()juga dapat membuat spreadsheet otomatis. - Buka
script.google.com, buat project baru, lalu tambahkan seluruh file.gsdan.htmldari folder ini dengan nama yang sama. - Aktifkan tampilan manifest melalui Project Settings → Show appsscript.json, lalu salin isi
appsscript.jsonbila ingin memakai scope eksplisit. - Jika memakai spreadsheet yang sudah dibuat, isi
SPREADSHEET_IDpadaConfig.gs. Jika dikosongkan, setup membuat database baru. - Jika memakai folder Drive yang sudah ada, isi
ROOT_FOLDER_IDpadaConfig.gs. Jika dikosongkan, setup mencari atau membuat folderDOKUMENTASI DOKUMEN. - Pilih fungsi
setupApplication()di editor dan klik Run. Setujui izin Spreadsheet, Drive, dan identitas pengguna. - Buka Executions atau log hasil run. Fungsi setup mengembalikan
spreadsheetId,folderId, danadminEmail. ID juga disimpan aman di Script Properties.
setupApplication() otomatis menambahkan akun yang menjalankan setup sebagai Admin. Jika email tidak tersedia, buka sheet Pengguna dan tambahkan baris dengan kolom:
email@domain.go.id | Nama Admin | Admin | Aktif | tanggal
Email harus sama persis dengan akun yang membuka Web App (perbandingan tidak peka huruf besar/kecil).
- Klik Deploy → New deployment → Web app.
- Pilih Execute as: User accessing the web app agar pemeriksaan
Session.getActiveUser()dan izin Drive mengikuti pengguna. Untuk lingkungan yang seluruh file-nya dikelola satu akun layanan,Execute as: Medapat dipakai, tetapi uji visibilitas email dan akses file dengan teliti. - Pada Google Workspace internal, pilih Who has access: Anyone within [organisasi/domain]. Jangan gunakan akses publik bila arsip bersifat internal.
- Klik Deploy, setujui izin, lalu buka URL deployment.
- Setelah perubahan kode, gunakan Deploy → Manage deployments → Edit → New version.
Default akses diatur melalui halaman Pengaturan atau properti DEFAULT_SHARING_ACCESS:
PRIVATE: hanya akun yang diberi akses Drive.ANYONE_WITH_LINK: siapa saja yang memiliki link dapat melihat.
Dokumen berstatus Rahasia selalu dipaksa tetap pribadi. Google Workspace dapat memblokir ANYONE_WITH_LINK; pada kondisi itu aplikasi tetap menyimpan file, tetapi administrator Workspace perlu menyesuaikan kebijakan atau membagikan file kepada akun/domain tertentu.
- Login sebagai Admin dan tambahkan kategori. Pastikan subfolder muncul di folder utama Drive.
- Upload satu PDF atau gambar, lalu cek baris baru di sheet
Dokumen. - Uji pencarian judul, filter kategori/status/tanggal, pagination, dan reset filter.
- Buka menu aksi: Detail, Preview, Buka di Drive, Salin Link, dan Unduh.
- Setelah Salin Link, pastikan sheet
Log_AktivitasmemuatSALIN_LINKtanpa tab baru terbuka. - Uji Edit, Ganti File, dan Hapus sebagai Admin; pastikan menu tersebut tidak tampil untuk role
Pengguna. - Nonaktifkan akun uji di halaman Pengguna dan pastikan aksesnya ditolak.
Session.getActiveUser().getEmail() dapat kosong untuk akun konsumen, deployment publik, atau kebijakan domain tertentu. Gunakan akun Google Workspace pada domain yang sama, deploy untuk pengguna dalam organisasi, dan pilih Execute as: User accessing the web app. Administrator Workspace mungkin perlu mengizinkan scope profil/email. Setelah mengubah deployment, buat versi baru dan login ulang dengan akun yang sudah tercatat di sheet Pengguna.
- Cara awal: isi
CONFIG.SPREADSHEET_IDdanCONFIG.ROOT_FOLDER_ID, lalu jalankansetupApplication(). - Jika aplikasi sudah pernah disiapkan, nilai Script Properties lebih diutamakan. Buka Project Settings → Script Properties, ubah
SPREADSHEET_IDatauROOT_FOLDER_ID, lalu jalankansetupApplication()lagi. - Spreadsheet tujuan harus memiliki atau dapat dibuatkan empat sheet:
Dokumen,Kategori,Pengguna, danLog_Aktivitas. - Folder tujuan harus dapat ditulis oleh identitas yang mengeksekusi Web App.
- Batas upload Apps Script dan durasi eksekusi tetap mengikuti kuota akun Google Workspace.
- Tombol keluar menjelaskan bahwa sesi aplikasi mengikuti sesi Google; logout dilakukan pada akun Google/browser.
- Jangan menghapus atau mengubah urutan header sheet secara manual.