Berkas Alat dan Perbaikan
Berkas Alat dan Perbaikan
Section titled “Berkas Alat dan Perbaikan”Kumpulan berkas yang dipakai untuk mengaudit dan memperbaiki materi hari 3. Setiap berkas punya halamannya sendiri, dan isinya ditampilkan utuh sehingga bisa disalin.
Semuanya berjalan dengan Node.js biasa, tanpa dependensi tambahan.
Praktik 6
Section titled “Praktik 6”| Berkas | Isi |
|---|---|
Praktik 6/sql/00_reset.sql |
Drop tabel untuk mulai dari nol. Destruktif. |
Praktik 6/sql/00_diagnosa.sql |
Cari sebab kegagalan constraint sebelum memperbaiki apa pun. |
Praktik 6/sql/03_perbaikan-email.sql |
Bersihkan email kembar dan kosong, pasang constraint dengan penjagaan. |
Praktik 6/sql/04_perbaikan-katalog-2d.sql |
Alihkan author yang tidak punya induk, lalu pasang foreign key. |
Praktik 6/sql/05_skema-siap-import.sql |
Buat tabel dan isi penulis lebih dahulu, sehingga CSV bisa diimport tanpa dihapus. |
Praktik 6/sql/06_periksa-constraint.sql |
Sebutkan nama constraint yang hilang, tanpa mengandalkan tampilan DBeaver. |
Praktik 6/sql/01_schema_users_katalog.sql |
Tiga tabel, primary key, foreign key, dan CHECK constraint. |
Praktik 6/sql/02_seed_super_admin.sql |
Menolak jalan bila nilainya bukan hash bcrypt. |
Praktik 6/tools/perbaiki-csv.mjs |
Ubah pemisah pipa menjadi koma, validasi UUID dan baris kembar. |
Praktik 6/data/katalog_data_2d.bersih.csv |
Berkas Praktik 6 dengan pemisah koma, siap diimpor. |
Praktik 6/data/katalog_data_3d.bersih.csv |
Berkas Praktik 8 dengan pemisah koma, siap diimpor. |
Praktik 7
Section titled “Praktik 7”| Berkas | Isi |
|---|---|
Praktik 7/sql/01_peran_geoserver.sql |
Peran baca-saja dan baca-tulis, bukan super user. |
Praktik 7/tools/periksa-geoserver.mjs |
Login, workspace, store, layer, akses publik, dan CORS. |
Praktik 8
Section titled “Praktik 8”| Berkas | Isi |
|---|---|
Praktik 8/sql/01_perbaikan-grant-postgis.sql |
Cabut hak dari PUBLIC dan anon, kunci search_path. |
Praktik 8/tools/periksa-koneksi.mjs |
Periksa .env, DATABASE_URL, jangkauan TCP, dan daftar tabel. |
Praktik 9
Section titled “Praktik 9”| Berkas | Isi |
|---|---|
Praktik 9/perbaikan/verifyBearerToken.js |
Token hanya dari header, pesan galat seragam. |
Praktik 9/perbaikan/roles.js |
Satu sumber daftar role, tahan nilai tak dikenal. |
Praktik 9/perbaikan/create-route.js |
Validasi, hash asinkron, select tanpa password. |
Praktik 9/perbaikan/update-route.js |
Hanya mengubah field yang benar-benar dikirim. |
Praktik 9/tools/audit-api.mjs |
Menangkap impor hilang, token di query string, dan kolom bocor. |
Praktik 9/tools/uji-api.mjs |
Uji alur login dan otorisasi pada aplikasi yang berjalan. |
Praktik 9/tools/hash-password.mjs |
Prompt tersembunyi, cost 12, ada mode pemeriksaan. |
Praktik 10
Section titled “Praktik 10”| Berkas | Isi |
|---|---|
Praktik 10/perbaikan/route.js |
Impor lengkap, sesi JWT yang benar, token tetap di server. |
Praktik 10/tools/periksa-konfigurasi.mjs |
proxy.js, basePath, .env, dan dependensi. |
Praktik 11
Section titled “Praktik 11”| Berkas | Isi |
|---|---|
Praktik 11/perbaikan/nginx.conf |
Ditambah location ACME, include TLS, dan server block 443. |
Praktik 11/perbaikan/docker-compose.yml |
Port 443 dipublikasikan, tiga volume HTTPS ditambahkan. |
Praktik 11/perbaikan/tls-aktifkan.conf.md |
Perintah siap tempel untuk mengaktifkan HTTPS. |
Praktik 11/perbaikan/vm-sa.md |
Bentuk alamat Service Account yang benar, dan cara memeriksanya. |
Praktik 11/perbaikan/blok-identitas.sh |
Slug diturunkan dari email, menolak jalan bila bentrok. |
Praktik 11/tools/periksa-deploy.mjs |
Keterkaitan compose, nginx, dan cloudbuild. |
Praktik 11/tools/periksa-yaml.mjs |
Pengganti check-config.mjs tanpa paket yaml. |
Praktik 11/tools/periksa-nginx.mjs |
Struktur directive, kurung, dan resolver. |
Praktik 11/tools/periksa-variabel.mjs |
Variabel tak terdeklarasi, variabel mati, VM_SA, dan firewall. |
Praktik 11/tools/uji-subdomain.mjs |
DNS, jalur ACME, dan sertifikat, berurutan. |
Praktik 11/tools/pra-terbang.mjs |
Periksa slug sebelum menyentuh Tahap 4. |
Praktik 11/tools/audit-tabrakan.mjs |
Model nama resource dan skenario pesimistis. |
Praktik 11/data/daftar-peserta.contoh.csv |
Contoh daftar email, slug, dan project. |
| Berkas | Isi |
|---|---|
package.json |
Hanya bcryptjs, dipakai hash-password.mjs. Skrip lain tanpa dependensi. |
jalankan-semua.mjs |
Menjalankan sepuluh pemeriksa sekaligus lalu merangkum hasilnya. |
Cara menjalankan
Section titled “Cara menjalankan”Dari akar repository:
cd "alat/hari-3"node jalankan-semua.mjsPemeriksa yang menguji layanan berjalan dijalankan terpisah, karena butuh layanan yang sudah hidup.