Tanggal: 11 April 2026 Status: ✅ Stabil & Siap Masuk Tahap Testing Lanjutan
- Keamanan Password: Implementasi hashing menggunakan Argon2id (standard industri) untuk proteksi data pengguna.
- JWT System: Pengaturan sistem token (Access & Refresh Token) sudah stabil, termasuk mekanisme validasi middleware untuk route yang diproteksi.
- Super Admin: Penambahan route pendaftaran Super Admin khusus untuk inisialisasi sistem.
- Schema Consistency: Sinkronisasi model Blog dengan database, terutama pada bagian
user_idsebagai author dan fieldkategoriyang kini menggunakan format text array. - Multipart Upload: Perbaikan penanganan upload thumbnail blog menggunakan Multipart Form-Data yang terintegrasi dengan MinIO.
- Filter & Search: Pengoptimalan query pencarian blog berdasarkan kategori.
- MinIO Decoupling: Memperbaiki logika upload agar tidak crash saat menangani file besar dengan memutus ketergantungan konteks request yang terlalu ketat.
- Auto-Naming: Implementasi sistem penamaan file unik (UUID + Timestamp) untuk mencegah penumpukan file dengan nama yang sama di MinIO.
- Cascade Delete: Menangani penghapusan data Gallery agar tidak melanggar constraint foreign key pada tabel lain (Work/Blog).
- Service Layer Refactoring: Migrasi total ke pola Service Layer untuk memisahkan logika bisnis dan handler (sejalan dengan best practice Go).
- Safe Insertion: Menambahkan pre-check validasi untuk memastikan ID Gallery dan ID Pengurus tersedia sebelum data disimpan.
- Migration Cleanup: Konsolidasi file migration (000004 hingga 000013) untuk menghilangkan tabel redundan (
worksvswork) dan memperbaiki tipe data kolom. - API Testing Suite: Penyediaan file
api_testing.httpyang mencakup seluruh endpoint (Login -> Pengurus -> Gallery -> Blog -> Work) untuk mempermudah tim QA. - Docker Stability: Optimasi
Dockerfiledengan pinning version (Alpine 3.20 & Go 1.25) guna meminimalisir kegagalan build akibat masalah jaringan.
| Fitur | Status | Keterangan |
|---|---|---|
| Auth | ✅ Done | Stabil |
| Blog | ✅ Done | Stabil |
| Gallery | ✅ Done | Support MinIO |
| Work | ✅ Done | Refactored |
| Storage | ✅ Done | MinIO Ready |
docker compose exec -T db psql -U postgres -d dbdoscom <<-'EOSQL' INSERT INTO users (username, email, password, role, full_name, created_at, updated_at) VALUES ( 'admin', 'admin@doscom.org', '$argon2id$v=19$m=65536,t=1,p=4$6it7jP6Yx3YshN2A2V3n8Q$Y9fF/D0+O+u6p9k7l0O2P3u5P6q7R8s9T0u1V2W3X4Y', 'SuperAdmin', 'Administrator', NOW(), NOW() ) ON CONFLICT (username) DO UPDATE SET password = EXCLUDED.password, email = EXCLUDED.email; EOSQL
Jika Anda sudah memiliki akses SuperAdmin, Anda bisa membuat admin baru melalui API:
POST http://localhost:3000/api/v1/user/admin
Headers:
Authorization:Bearer <token_anda>Content-Type:application/json
Body (JSON):
{
"username": "admin_baru",
"email": "admin2@doscom.org",
"password": "password123",
"role": "SuperAdmin",
"fullname": "Administrator Kedua"
}Tip
Endpoint /user/admin akan otomatis memberikan role SuperAdmin ke user baru tersebut. Jika ingin membuat role lain (Pemro, Jaringan, dsb), gunakan endpoint POST /api/v1/user.
Laporan ini mencakup seluruh rangkaian perbaikan kritis dan pengembangan fitur baru sejak fase stabilisasi backend dimulai.