Framework
Overview
Apa itu donisgo, apa yang disertakan, dan apa yang sengaja tidak disertakan.
Ringkasan
donisgo (sebelumnya go_framework) adalah framework web Go minimalist & plugin-based untuk backend services. Inti framework hanya menyediakan infrastruktur penting (DB, routing, plugin system); fitur diimplementasikan lewat plugin atau kode custom.
Dua binary utama:
cmd/server/main.go— HTTP servercmd/console/main.go— CLI (migrasi, generator plugin, seed)
Filosofi inti
- Berikan infrastruktur esensial, biarkan fitur jadi plugin.
- Tidak ada auth / user management bawaan — implementasikan lewat plugin (disarankan) atau middleware custom.
- Bootstrap & wiring dependency ada di
internal/app/bootstrap.go. - Extensible lewat plugin system (middleware, routes, services, migrations, console commands).
What’s included
- Database connectivity (GORM — PostgreSQL, MySQL, MariaDB)
- Sistem migrasi (up/down, core + plugin)
- Plugin architecture
- Plugin generator CLI (
plugin new) - JWT utilities
- CORS configuration
- Console commands (migrations, plugin generator, user management stub)
- KeyDB/Redis client (untuk flash messages)
- Mailer utilities
- Transaction helpers
- Swagger documentation support
What’s NOT included (implement via plugin)
- Authentication service & middleware
- User/Admin models
- Authorization/permission system
- Built-in CRUD endpoints
- Session management
- Password hashing/verification utilities
Disarankan: buat plugin
authpakai generator untuk implementasi fitur autentikasi.
Main components
| Komponen | Path |
|---|---|
| Bootstrap & wiring | internal/app/bootstrap.go |
| Business services | internal/admin/services |
| Database (GORM) | internal/db/gorm.go |
| Auth utilities (JWT) | internal/auth |
| Plugin system | internal/pluginloader, internal/plugins |
| CLI / migrations | internal/console |
| Mailer | internal/mail |
| KeyDB/Redis | internal/keydb |
| Storage | internal/storage |
| Events | internal/events |
| UUID v7 | internal/uuid |