Package
Ganadev Shield terbagi menjadi dua package Composer terpisah (monorepo di-split menjadi dua repo GitHub):
| Package | Repo | Tanggung jawab |
|---|---|---|
ganadev/shield-core |
GanaDev-Com/shield-core | Inti framework-agnostik — normalisasi, mesin aturan, deteksi perilaku, skor risiko, decision engine, kebijakan ban, kontrak. Nol dependensi selain PHP ^8.2. |
ganadev/laravel-shield |
GanaDev-Com/laravel-shield | Adapter Laravel — middleware, repository Eloquent, cache adapter, halaman challenge, trusted cookie, perintah CLI/Admin. Meng-require ganadev/shield-core: ^1.0. |
shield-core
Section titled “shield-core”- Framework-agnostik: tidak memanggil Laravel sama sekali.
- Pipeline lengkap: normalisasi → signature → perilaku → skor → keputusan → persist.
- Definisi aturan data-driven (
DefaultRules) + pack injection dan WordPress. - Kontrak (interface) untuk penyimpanan, cache, challenge, trusted cookie — dipakai adapter framework lain.
composer require ganadev/shield-corelaravel-shield
Section titled “laravel-shield”- Middleware global
SecurityFirewallMiddlewareyang menempati jalur request sebelum controller. - Migrasi
security_ip_bans&security_events; repository Eloquent; cache hot-path untuk ban aktif. - Driver challenge: Cloudflare Turnstile, Google reCAPTCHA, dan
null(offline test). - Perintah CLI:
shield:report,shield:rules:list,shield:release,shield:prune,shield:health,shield:replay. - Admin API opsional (default nonaktif) dengan authorization gate.
composer require ganadev/laravel-shieldRilis terbaru adalah 1.2.2. Nomor 1.1.0 dilewati karena tidak pernah diberi tag Git, jadi tidak pernah terbit
dan tidak perlu di-deprecate.
| Package | Tag sebelum 1.2.0 |
Tag sebelum 1.2.2 |
|---|---|---|
ganadev/shield-core |
1.0.1 |
1.2.0 |
ganadev/laravel-shield |
1.0.0 |
1.2.0 |
laravel-shield meng-require ganadev/shield-core: ^1.2.1. Constraint itu sudah ada di metadata sejak 1.2.2
karena adapter memakai API config yang diperkenalkan core pada rilis 1.2.1, yaitu rules.skip_paths,
api.paths, dan logging.level. Tanpa constraint itu, composer bisa memenuhi permintaan dengan core 1.2.0
yang belum punya properti tersebut dan adapter gagal saat runtime. Core dan adapter harus naik versi
bersamaan.
Untuk aplikasi yang sudah terpasang, naikkan kedua package sekaligus:
composer require ganadev/laravel-shield:^1.2.2 ganadev/shield-core:^1.2.2Baca Upgrade ke v1.2.2 sebelum melakukan upgrade.
Adapter masa depan
Section titled “Adapter masa depan”Core mendefinisikan kontrak yang sama untuk semua framework. Adapter CodeIgniter 4, Symfony, atau PSR-15 cukup mengimplementasikan kontrak tersebut tanpa mengubah logika core (lihat Arsitektur).
Powered by PT Ganadev Multi Solusi